Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nodejs-electron for openSUSE:Factory checked in at 2024-09-17 18:18:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old) and /work/SRC/openSUSE:Factory/.nodejs-electron.new.29891 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs-electron" Tue Sep 17 18:18:07 2024 rev:132 rq:1201467 version:31.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes 2024-09-15 12:41:23.365019306 +0200 +++ /work/SRC/openSUSE:Factory/.nodejs-electron.new.29891/nodejs-electron.changes 2024-09-17 18:18:53.400721976 +0200 @@ -1,0 +2,52 @@ +Mon Sep 16 17:40:09 UTC 2024 - Bruno Pitrus <brunopit...@hotmail.com> + +- Update to 31.6.0 + * ABI break: NODE_MODULE_VERSION is now 125 + * Chromium 126.0.6478.234 + * Node 20.17.0 + * V8 12.6 + * Breaking change: Remove WebSQL support + * Breaking change: nativeImage.toDataURL will preserve PNG colorspace + * Added options parameter to Session.clearData API. + * Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow. + * clearData method added to Session + * Extended WebContentsView to accept pre-existing webContents object. + * see https://www.electronjs.org/blog/electron-31-0 and https://github.com/electron/electron/releases/tag/v31.0.0 for more +- Drop no longer needed patches + * electron-13-fix-use-thin-lto.patch + * remove-openscreen.patch + * system-yuv.patch + * chromium-122-abseil-shims.patch + * electron-16-std-vector-non-const.patch + * fake_ssl_socket_client-Wlto-type-mismatch.patch + * angle-FramebufferVk-powf.patch + * span_reader-missing-optional.patch + * bitset-missing-uint8_t-memcpy.patch + * temporal_scalability_id_extractor-missing-bitset.patch + * gpu_adapter_info-missing-optional.patch + * first_party_sets_handler_database_helper-missing-optional.patch + * async_iterable-forwarding.patch + * script_streamer-atomic-include.patch +- Add patches to fix build + * fix-build-without-safebrowsing.patch + * fix-build-without-supervised-users.patch + * Cr126-abseil-shims.patch + * absl-base-dynamic_annotations.patch + * webp-no-sharpyuv.patch + * http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch + * angle-State-constexpr.patch + * color_provider-incomplete-ColorProviderInternal.patch + * run_segmenter-missing-optional.patch + * page_popup_controller-missing-optional.patch + * native_css_paint_definition-expected-unqualified-id.patch + * text_decoder-missing-optional.patch + * real_time_reporting_bindings-forward-declaration.patch + * blink-platform-INSIDE_BLINK-Wodr.patch + * quiche-QuicIntervalDeque-no-match-for-operator-mm.patch + * ConsumeRadii-linker-error.patch +- Conditionally revert upstreamed ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch on old ffmpeg +- Revert upstream changes to build with system abseil (quiche-absl-HexStringToBytes.patch) +- Refresh bad-font-gc patches from Debian +- aarch64: disable LTO also on Fedora 39 due to OOM + +------------------------------------------------------------------- Old: ---- angle-FramebufferVk-powf.patch async_iterable-forwarding.patch bitset-missing-uint8_t-memcpy.patch chromium-122-abseil-shims.patch electron-13-fix-use-thin-lto.patch electron-16-std-vector-non-const.patch electron-30.5.1.tar.zst fake_ssl_socket_client-Wlto-type-mismatch.patch first_party_sets_handler_database_helper-missing-optional.patch gpu_adapter_info-missing-optional.patch remove-openscreen.patch script_streamer-atomic-include.patch span_reader-missing-optional.patch system-yuv.patch temporal_scalability_id_extractor-missing-bitset.patch New: ---- ConsumeRadii-linker-error.patch Cr126-abseil-shims.patch absl-base-dynamic_annotations.patch angle-State-constexpr.patch blink-platform-INSIDE_BLINK-Wodr.patch color_provider-incomplete-ColorProviderInternal.patch electron-31.6.0.tar.zst fix-build-without-safebrowsing.patch fix-build-without-supervised-users.patch http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch native_css_paint_definition-expected-unqualified-id.patch page_popup_controller-missing-optional.patch quiche-QuicIntervalDeque-no-match-for-operator-mm.patch quiche-absl-HexStringToBytes.patch real_time_reporting_bindings-forward-declaration.patch run_segmenter-missing-optional.patch text_decoder-missing-optional.patch webp-no-sharpyuv.patch BETA DEBUG BEGIN: Old: * fake_ssl_socket_client-Wlto-type-mismatch.patch * angle-FramebufferVk-powf.patch * span_reader-missing-optional.patch Old: * first_party_sets_handler_database_helper-missing-optional.patch * async_iterable-forwarding.patch * script_streamer-atomic-include.patch Old: * span_reader-missing-optional.patch * bitset-missing-uint8_t-memcpy.patch * temporal_scalability_id_extractor-missing-bitset.patch Old: * system-yuv.patch * chromium-122-abseil-shims.patch * electron-16-std-vector-non-const.patch Old:- Drop no longer needed patches * electron-13-fix-use-thin-lto.patch * remove-openscreen.patch Old: * chromium-122-abseil-shims.patch * electron-16-std-vector-non-const.patch * fake_ssl_socket_client-Wlto-type-mismatch.patch Old: * electron-16-std-vector-non-const.patch * fake_ssl_socket_client-Wlto-type-mismatch.patch * angle-FramebufferVk-powf.patch Old: * gpu_adapter_info-missing-optional.patch * first_party_sets_handler_database_helper-missing-optional.patch * async_iterable-forwarding.patch Old: * temporal_scalability_id_extractor-missing-bitset.patch * gpu_adapter_info-missing-optional.patch * first_party_sets_handler_database_helper-missing-optional.patch Old: * electron-13-fix-use-thin-lto.patch * remove-openscreen.patch * system-yuv.patch Old: * async_iterable-forwarding.patch * script_streamer-atomic-include.patch - Add patches to fix build Old: * angle-FramebufferVk-powf.patch * span_reader-missing-optional.patch * bitset-missing-uint8_t-memcpy.patch Old: * remove-openscreen.patch * system-yuv.patch * chromium-122-abseil-shims.patch Old: * bitset-missing-uint8_t-memcpy.patch * temporal_scalability_id_extractor-missing-bitset.patch * gpu_adapter_info-missing-optional.patch BETA DEBUG END: BETA DEBUG BEGIN: New: * quiche-QuicIntervalDeque-no-match-for-operator-mm.patch * ConsumeRadii-linker-error.patch - Conditionally revert upstreamed ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch on old ffmpeg New: * fix-build-without-supervised-users.patch * Cr126-abseil-shims.patch * absl-base-dynamic_annotations.patch New: * Cr126-abseil-shims.patch * absl-base-dynamic_annotations.patch * webp-no-sharpyuv.patch New: * http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch * angle-State-constexpr.patch * color_provider-incomplete-ColorProviderInternal.patch New: * real_time_reporting_bindings-forward-declaration.patch * blink-platform-INSIDE_BLINK-Wodr.patch * quiche-QuicIntervalDeque-no-match-for-operator-mm.patch New: * angle-State-constexpr.patch * color_provider-incomplete-ColorProviderInternal.patch * run_segmenter-missing-optional.patch New:- Add patches to fix build * fix-build-without-safebrowsing.patch * fix-build-without-supervised-users.patch New: * fix-build-without-safebrowsing.patch * fix-build-without-supervised-users.patch * Cr126-abseil-shims.patch New: * webp-no-sharpyuv.patch * http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch * angle-State-constexpr.patch New: * page_popup_controller-missing-optional.patch * native_css_paint_definition-expected-unqualified-id.patch * text_decoder-missing-optional.patch New: * run_segmenter-missing-optional.patch * page_popup_controller-missing-optional.patch * native_css_paint_definition-expected-unqualified-id.patch New: * blink-platform-INSIDE_BLINK-Wodr.patch * quiche-QuicIntervalDeque-no-match-for-operator-mm.patch * ConsumeRadii-linker-error.patch New:- Conditionally revert upstreamed ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch on old ffmpeg - Revert upstream changes to build with system abseil (quiche-absl-HexStringToBytes.patch) - Refresh bad-font-gc patches from Debian New: * text_decoder-missing-optional.patch * real_time_reporting_bindings-forward-declaration.patch * blink-platform-INSIDE_BLINK-Wodr.patch New: * color_provider-incomplete-ColorProviderInternal.patch * run_segmenter-missing-optional.patch * page_popup_controller-missing-optional.patch New: * native_css_paint_definition-expected-unqualified-id.patch * text_decoder-missing-optional.patch * real_time_reporting_bindings-forward-declaration.patch New: * absl-base-dynamic_annotations.patch * webp-no-sharpyuv.patch * http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nodejs-electron.spec ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.589272334 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.593272501 +0200 @@ -22,7 +22,7 @@ %define mod_name electron # https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json -%define abi_version 123 +%define abi_version 125 # Do not provide libEGL.so, etc⦠%define __provides_exclude ^lib.*\\.so.*$ @@ -95,11 +95,7 @@ %endif %ifarch aarch64 -%if 0%{?suse_version} || 0%{?fedora} >= 40 %bcond_with lto -%else -%bcond_without lto -%endif %endif %ifarch aarch64 @@ -233,7 +229,7 @@ Name: nodejs-electron -Version: 30.5.1 +Version: 31.6.0 %global tag_version %version Release: 0 Summary: Build cross platform desktop apps with JavaScript, HTML, and CSS @@ -250,11 +246,15 @@ Source400: ffmpeg-new-channel-layout.patch Source401: audio_file_reader-ffmpeg-AVFrame-duration.patch Source402: Cr122-ffmpeg-new-channel-layout.patch +Source403: ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch # and against harfbuzz 4 Source415: harfbuzz-replace-chromium-scoped-type.patch Source416: harfbuzz-replace-HbScopedPointer.patch # and wayland 1.31 Source450: wayland-proto-31-cursor-shape.patch +# and abseil 2401 +Source460: quiche-absl-HexStringToBytes.patch + # PATCHES for openSUSE-specific things (compiler flags, paths, etc.) @@ -263,8 +263,6 @@ Patch2: common.gypi-compiler.patch Patch3: gcc-enable-lto.patch Patch7: chromium-91-java-only-allowed-in-android-builds.patch -# Always disable use_thin_lto which is an lld feature -Patch21: electron-13-fix-use-thin-lto.patch # Fix common.gypi to include /usr/include/electron Patch25: electron-16-system-node-headers.patch # https://sources.debian.org/patches/chromium/102.0.5005.115-1/debianization/support-i386.patch/ @@ -295,10 +293,11 @@ Patch583: remove-rust.patch Patch585: remove-dawn.patch Patch586: aom-vpx-no-thread-wrapper.patch -Patch587: remove-openscreen.patch Patch588: remove-password-manager-and-policy.patch Patch589: remove-puffin.patch Patch590: remove-sync.patch +Patch591: fix-build-without-safebrowsing.patch +Patch592: fix-build-without-supervised-users.patch @@ -328,9 +327,10 @@ Patch1077: system-wayland.patch Patch1078: system-simdutf.patch Patch1079: system-libm.patch -Patch1080: system-yuv.patch -Patch1081: chromium-122-abseil-shims.patch Patch1082: chromium-124-shims.patch +Patch1083: Cr126-abseil-shims.patch +Patch1084: absl-base-dynamic_annotations.patch +Patch1085: webp-no-sharpyuv.patch # PATCHES to fix interaction with third-party software @@ -348,7 +348,7 @@ # See https://reviews.llvm.org/D92800 Patch2022: electron-13-fix-base-check-nomerge.patch # Fix electron patched code -Patch2024: electron-16-std-vector-non-const.patch +#Patch2024: electron-16-std-vector-non-const.patch Patch2029: electron-16-webpack-fix-openssl-3.patch Patch2031: partition_alloc-no-lto.patch Patch2032: seccomp_bpf-no-lto.patch @@ -402,19 +402,20 @@ Patch3144: mt21_util-flax-vector-conversions.patch Patch3149: boringssl-internal-addc-cxx.patch Patch3151: distributed_point_functions-evaluate_prg_hwy-signature.patch -Patch3152: fake_ssl_socket_client-Wlto-type-mismatch.patch -Patch3153: angle-FramebufferVk-powf.patch Patch3154: licenses.py-FileNotFoundError.patch -Patch3155: span_reader-missing-optional.patch -Patch3156: bitset-missing-uint8_t-memcpy.patch -Patch3157: temporal_scalability_id_extractor-missing-bitset.patch -Patch3158: gpu_adapter_info-missing-optional.patch -Patch3159: first_party_sets_handler_database_helper-missing-optional.patch -Patch3160: async_iterable-forwarding.patch Patch3161: preview_cancel_reason-missing-string.patch -Patch3162: script_streamer-atomic-include.patch Patch3163: DesktopNativeWidgetAura-HandleActivationChanged-crash.patch -Patch3164: ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch +Patch3165: http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch +Patch3166: angle-State-constexpr.patch +Patch3167: color_provider-incomplete-ColorProviderInternal.patch +Patch3168: run_segmenter-missing-optional.patch +Patch3169: page_popup_controller-missing-optional.patch +Patch3170: native_css_paint_definition-expected-unqualified-id.patch +Patch3171: text_decoder-missing-optional.patch +Patch3172: real_time_reporting_bindings-forward-declaration.patch +Patch3173: blink-platform-INSIDE_BLINK-Wodr.patch +Patch3174: quiche-QuicIntervalDeque-no-match-for-operator-mm.patch +Patch3175: ConsumeRadii-linker-error.patch # Patches to re-enable upstream force disabled features. # There's no sense in submitting them but they may be reused as-is by other packagers. @@ -762,7 +763,6 @@ - # Sanity check if macro corresponds to the actual ABI test $(grep ^node_module_version electron/build/args/all.gn | sed 's/.* = //') = %abi_version @@ -774,7 +774,7 @@ %if %{with ffmpeg_6} patch -R -p1 < %PATCH2012 %else -patch -R -p1 < %PATCH3164 +patch -R -p1 < %SOURCE403 patch -R -p1 < %SOURCE402 patch -R -p1 < %SOURCE400 patch -R -p1 < %SOURCE401 @@ -795,6 +795,9 @@ +# This one depends on an abseil nightly, reverting unconditionally. +patch -R -p1 < %SOURCE460 + # Link system wayland-protocols-devel into where chrome expects them mkdir -p third_party/wayland/src mkdir -p third_party/wayland-protocols/kde/src @@ -1039,7 +1042,7 @@ %ifarch %ix86 %arm #try to reduce memory -export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" +export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %endif #ifarch ix86 arm @@ -1174,9 +1177,7 @@ myconf_gn+=" enable_pdf_viewer=false" myconf_gn+=" enable_print_preview=false" myconf_gn+=" enable_printing=false" -myconf_gn+=" enable_basic_printing=false" myconf_gn+=' use_cups=false' -myconf_gn+=' enable_print_content_analysis=false' #we don't build PDF support, so disabling the below: #myconf_gn+=" use_system_lcms2=true" #myconf_gn+=" use_system_libopenjpeg2=true" @@ -1269,21 +1270,23 @@ myconf_gn+=' enable_compose=false' myconf_gn+=' enterprise_cloud_content_analysis=false' myconf_gn+=' enterprise_local_content_analysis=false' -myconf_gn+=' enterprise_data_controls=false' myconf_gn+=' enterprise_watermark=false' -myconf_gn+=' enterprise_content_analysis=false' +myconf_gn+=' enterprise_content_analysis=true' myconf_gn+=' enable_video_effects=false' myconf_gn+=' use_fake_screen_ai=true' myconf_gn+=' webnn_use_tflite=false' +myconf_gn+=' structured_metrics_enabled=false' +myconf_gn+=' structured_metrics_debug_enabled=false' #FIXME: possibly enable this when skia gets built with rust code by default. #Need to patch in optflags and possibly FFI LTO hacks (see signal-desktop package for how it's done) myconf_gn+=' enable_rust=false' myconf_gn+=' enable_chromium_prelude=false' - +myconf_gn+=' enable_cxx=false' myconf_gn+=' chrome_certificate_policies_supported=false' +myconf_gn+=' chrome_root_store_cert_management_ui=false' myconf_gn+=' use_kerberos=false' myconf_gn+=' disable_histogram_support=true' ++++++ ConsumeRadii-linker-error.patch ++++++ --- src/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc.orig +++ src/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc @@ -7654,6 +7654,12 @@ template bool ConsumeRadii(CSSValue* hor const CSSParserContext& context, bool use_legacy_parsing); +template bool ConsumeRadii(CSSValue* horizontal_radii[4], + CSSValue* vertical_radii[4], + CSSParserTokenRange& stream, + const CSSParserContext& context, + bool use_legacy_parsing); + template <class T = CSSParserTokenRange> requires std::is_same_v<T, CSSParserTokenStream> || std::is_same_v<T, CSSParserTokenRange> ++++++ Cr122-ffmpeg-new-channel-layout.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.685276340 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.689276507 +0200 @@ -178,7 +178,7 @@ - smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance); - } - -- // TODO(https://crbug.com/1446302): Consider rejecting metadata that +- // TODO(crbug.com/40268540): Consider rejecting metadata that - // does not specify all values. - if (mdcv->has_primaries || mdcv->has_luminance) { - hdr_metadata.smpte_st_2086 = smpte_st_2086; @@ -221,7 +221,7 @@ + smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance); + } + -+ // TODO(https://crbug.com/1446302): Consider rejecting metadata that ++ // TODO(crbug.com/40268540): Consider rejecting metadata that + // does not specify all values. + if (mdcv->has_primaries || mdcv->has_luminance) { + hdr_metadata.smpte_st_2086 = smpte_st_2086; ++++++ Cr126-abseil-shims.patch ++++++ >From b90d7410221d30c40a0d5ac1ff0041667fd8db0e Mon Sep 17 00:00:00 2001 From: "lauren n. liberda" <lauren@selfisekai.rocks> Date: Wed, 26 Jun 2024 00:56:57 +0000 Subject: [PATCH] unbundle: update absl shims Change-Id: I6fca3a8fd333c027fe48d8871073c79e7d8c3cd6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5657110 Reviewed-by: Lei Zhang <thes...@chromium.org> Reviewed-by: Thomas Anderson <thomasander...@chromium.org> Commit-Queue: Thomas Anderson <thomasander...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1319524} --- build/linux/unbundle/absl_debugging.gn | 2 ++ build/linux/unbundle/absl_random.gn | 5 +++++ build/linux/unbundle/absl_status.gn | 2 ++ build/linux/unbundle/absl_types.gn | 2 ++ 4 files changed, 11 insertions(+) diff --git a/build/linux/unbundle/absl_debugging.gn b/build/linux/unbundle/absl_debugging.gn index 5fbd34abbc96ae..b59a45b0913116 100644 --- a/build/linux/unbundle/absl_debugging.gn +++ b/build/linux/unbundle/absl_debugging.gn @@ -46,5 +46,7 @@ source_set("symbolize") { public_configs = [ ":system_absl_symbolize" ] } +source_set("demangle_rust_test") { +} source_set("stacktrace_test") { } diff --git a/build/linux/unbundle/absl_random.gn b/build/linux/unbundle/absl_random.gn index 7bb70241ad1f8d..eae95345e491d1 100644 --- a/build/linux/unbundle/absl_random.gn +++ b/build/linux/unbundle/absl_random.gn @@ -57,3 +57,8 @@ source_set("random") { deps = [ ":random_shim" ] public_configs = [ ":system_absl_random_random" ] } + +group("distributions_test") { +} +group("mock_distributions_test") { +} diff --git a/build/linux/unbundle/absl_status.gn b/build/linux/unbundle/absl_status.gn index 5f1e73a6d4d133..1905485814986e 100644 --- a/build/linux/unbundle/absl_status.gn +++ b/build/linux/unbundle/absl_status.gn @@ -38,3 +38,5 @@ source_set("status_test") { } source_set("statusor_test") { } +source_set("status_matchers_test") { +} diff --git a/build/linux/unbundle/absl_types.gn b/build/linux/unbundle/absl_types.gn index 4bb77f1b631cbd..8d2b1314558f2c 100644 --- a/build/linux/unbundle/absl_types.gn +++ b/build/linux/unbundle/absl_types.gn @@ -93,5 +93,7 @@ source_set("variant") { source_set("optional_test") { } +source_set("span_test") { +} source_set("variant_test") { } ++++++ RenderFrameHostImpl-use-after-free.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.733278343 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.737278510 +0200 @@ -6,8 +6,8 @@ #include <memory> +#include <new> #include <optional> + #include <string_view> #include <tuple> - #include <unordered_map> @@ -1818,7 +1819,12 @@ RenderFrameHostImpl::~RenderFrameHostImp // `DocumentService` and `RenderFrameHostUserData` subclasses are still valid // when their destructors run. ++++++ absl-base-dynamic_annotations.patch ++++++ >From 91a8dd6bff0c3965ab324b5c2a3c19c0a2931831 Mon Sep 17 00:00:00 2001 From: "lauren n. liberda" <lauren@selfisekai.rocks> Date: Sat, 29 Jun 2024 00:26:40 +0000 Subject: [PATCH] unbundle: add missing absl_base header Change-Id: Ie4edda0ec8661437652b2c4c324ac82137bfcfed Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5659519 Reviewed-by: Thomas Anderson <thomasander...@chromium.org> Reviewed-by: Lei Zhang <thes...@chromium.org> Commit-Queue: Thomas Anderson <thomasander...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1321266} --- build/linux/unbundle/absl_base.gn | 1 + 1 file changed, 1 insertion(+) diff --git a/build/linux/unbundle/absl_base.gn b/build/linux/unbundle/absl_base.gn index 7da86e46147bdd..b5ce0863e6fde7 100644 --- a/build/linux/unbundle/absl_base.gn +++ b/build/linux/unbundle/absl_base.gn @@ -27,6 +27,7 @@ shim_headers("base_shim") { headers = [ "call_once.h", "casts.h", + "dynamic_annotations.h", ] } ++++++ angle-State-constexpr.patch ++++++ >From 0508fc9b920b001115f80790e4942ff69d3f5de1 Mon Sep 17 00:00:00 2001 From: Roman Lavrov <rom...@google.com> Date: Tue, 23 Apr 2024 15:32:52 -0400 Subject: [PATCH] Reland "Cleanup: replace DirtyObjectType check with constexpr generator" Avoid using lambdas with member function pointers which caused issues on MSVC C++17. This is a reland of commit 89caa0e1d99e45f3d6f355f6e14c147f8de3e0e5 Original change's description: > Cleanup: replace DirtyObjectType check with constexpr generator > > Static assert was meant to avoid kDirtyObjectHandlers getting out of > sync, but it doesn't achieve that goal as it's just comparing values > with ints which is confusing. > > Replacing with constexpr generated std::array. C++20 allows to easily > validate that all values are set by _not_ default-initializing > `handlers`. C++17 makes it trickier, addeded static_assert on an > additional static constexpr bool (silly but I can't find a more concise > way) > > Bug: angleproject:8666 > Bug: b/335295728 > Change-Id: Idf9bbd087d09d5ba253a7587ce0503cae3fcf3a7 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5478231 > Reviewed-by: Shahbaz Youssefi <syouss...@chromium.org> > Commit-Queue: Roman Lavrov <rom...@google.com> Bug: angleproject:8666 Bug: b/335295728 Change-Id: I62e66b700512e072ef10cc57a17e8837a534c0d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5589285 Commit-Queue: Roman Lavrov <rom...@google.com> Reviewed-by: Shahbaz Youssefi <syouss...@chromium.org> --- src/libANGLE/State.cpp | 2 -- src/libANGLE/State.h | 67 +++++++++++++++++++++++++----------------- 2 files changed, 40 insertions(+), 29 deletions(-) diff --git a/src/libANGLE/State.h b/src/libANGLE/State.h index b2aa6749060..38a219f489d 100644 --- src/third_party/angle/src/libANGLE/State.h.orig 2024-07-24 12:51:20.205804675 +0200 +++ src/third_party/angle/src/libANGLE/State.h 2024-07-26 14:11:54.188991370 +0200 @@ -1447,41 +1447,46 @@ class State : angle::NonCopyable angle::Result syncProgramPipelineObject(const Context *context, Command command); using DirtyObjectHandler = angle::Result (State::*)(const Context *context, Command command); + using DirtyObjectHandlerArray = std::array<DirtyObjectHandler, state::DIRTY_OBJECT_MAX>; - static constexpr std::array<DirtyObjectHandler, state::DIRTY_OBJECT_MAX> kDirtyObjectHandlers = - []() { - // Work around C++'s lack of array element support in designated initializers - std::array<DirtyObjectHandler, state::DIRTY_OBJECT_MAX> handlers{}; - - handlers[state::DIRTY_OBJECT_ACTIVE_TEXTURES] = &State::syncActiveTextures; - handlers[state::DIRTY_OBJECT_TEXTURES_INIT] = &State::syncTexturesInit; - handlers[state::DIRTY_OBJECT_IMAGES_INIT] = &State::syncImagesInit; - handlers[state::DIRTY_OBJECT_READ_ATTACHMENTS] = &State::syncReadAttachments; - handlers[state::DIRTY_OBJECT_DRAW_ATTACHMENTS] = &State::syncDrawAttachments; - handlers[state::DIRTY_OBJECT_READ_FRAMEBUFFER] = &State::syncReadFramebuffer; - handlers[state::DIRTY_OBJECT_DRAW_FRAMEBUFFER] = &State::syncDrawFramebuffer; - handlers[state::DIRTY_OBJECT_VERTEX_ARRAY] = &State::syncVertexArray; - handlers[state::DIRTY_OBJECT_TEXTURES] = &State::syncTextures; - handlers[state::DIRTY_OBJECT_IMAGES] = &State::syncImages; - handlers[state::DIRTY_OBJECT_SAMPLERS] = &State::syncSamplers; - handlers[state::DIRTY_OBJECT_PROGRAM_PIPELINE_OBJECT] = - &State::syncProgramPipelineObject; - - return handlers; - }(); - - static_assert( - []() { - for (auto handler : kDirtyObjectHandlers) + static constexpr DirtyObjectHandlerArray MakeDirtyObjectHandlers() + { + // Work around C++'s lack of array element support in designated initializers + // This function cannot be a lambda due to MSVC C++17 limitations b/330910097#comment5 + DirtyObjectHandlerArray handlers{}; + + handlers[state::DIRTY_OBJECT_ACTIVE_TEXTURES] = &State::syncActiveTextures; + handlers[state::DIRTY_OBJECT_TEXTURES_INIT] = &State::syncTexturesInit; + handlers[state::DIRTY_OBJECT_IMAGES_INIT] = &State::syncImagesInit; + handlers[state::DIRTY_OBJECT_READ_ATTACHMENTS] = &State::syncReadAttachments; + handlers[state::DIRTY_OBJECT_DRAW_ATTACHMENTS] = &State::syncDrawAttachments; + handlers[state::DIRTY_OBJECT_READ_FRAMEBUFFER] = &State::syncReadFramebuffer; + handlers[state::DIRTY_OBJECT_DRAW_FRAMEBUFFER] = &State::syncDrawFramebuffer; + handlers[state::DIRTY_OBJECT_VERTEX_ARRAY] = &State::syncVertexArray; + handlers[state::DIRTY_OBJECT_TEXTURES] = &State::syncTextures; + handlers[state::DIRTY_OBJECT_IMAGES] = &State::syncImages; + handlers[state::DIRTY_OBJECT_SAMPLERS] = &State::syncSamplers; + handlers[state::DIRTY_OBJECT_PROGRAM_PIPELINE_OBJECT] = &State::syncProgramPipelineObject; + + // If a handler is missing, reset everything for ease of static_assert + for (auto handler : handlers) + { + if (handler == nullptr) { - if (handler == nullptr) - { - return false; - } + return DirtyObjectHandlerArray(); } - return true; - }(), - "kDirtyObjectHandlers missing a handler"); + } + + return handlers; + } + + angle::Result dirtyObjectHandler(size_t dirtyObject, const Context *context, Command command) + { + static constexpr DirtyObjectHandlerArray handlers = MakeDirtyObjectHandlers(); + static_assert(handlers[0] != nullptr, "MakeDirtyObjectHandlers missing a handler"); + + return (this->*handlers[dirtyObject])(context, command); + } // Robust init must happen before Framebuffer init for the Vulkan back-end. static_assert(state::DIRTY_OBJECT_ACTIVE_TEXTURES < state::DIRTY_OBJECT_TEXTURES_INIT, @@ -1606,7 +1611,7 @@ ANGLE_INLINE angle::Result State::syncDi for (size_t dirtyObject : dirtyObjects) { - ANGLE_TRY((this->*kDirtyObjectHandlers[dirtyObject])(context, command)); + ANGLE_TRY(dirtyObjectHandler(dirtyObject, context, command)); } mDirtyObjects &= ~dirtyObjects; ++++++ angle-system-xxhash.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.785280513 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.789280680 +0200 @@ -11,8 +11,8 @@ "src/common/base", - "src/common/third_party/xxhash", ] + libs = [] if (is_android) { - libs = [ "log" ] @@ -431,18 +432,12 @@ } } ++++++ bad-font-gc00.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.817281849 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.821282016 +0200 @@ -92,17 +92,17 @@ --- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc -@@ -167,7 +167,8 @@ static hb_bool_t HarfBuzzGetGlyphVertica +@@ -202,7 +202,8 @@ void* user_data) { HarfBuzzFontData* hb_font_data = reinterpret_cast<HarfBuzzFontData*>(font_data); - OpenTypeVerticalData* vertical_data = hb_font_data->VerticalData(); + scoped_refptr<OpenTypeVerticalData> vertical_data = -+ hb_font_data->VerticalData(); - if (!vertical_data) ++ hb_font_data->VerticalData(); + if (!vertical_data) { return false; - -@@ -186,7 +187,8 @@ static hb_position_t HarfBuzzGetGlyphVer + } +@@ -223,7 +223,8 @@ static hb_position_t HarfBuzzGetGlyphVer void* user_data) { HarfBuzzFontData* hb_font_data = reinterpret_cast<HarfBuzzFontData*>(font_data); ++++++ bad-font-gc11.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.845283017 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.849283184 +0200 @@ -21,8 +21,10 @@ Commit-Queue: Ian Kilpatrick <ikilpatr...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1262752} ---- a/third_party/blink/renderer/platform/fonts/font_global_context.cc -+++ b/third_party/blink/renderer/platform/fonts/font_global_context.cc +Index: chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/font_global_context.cc +=================================================================== +--- chromium-126.0.6478.8.orig/third_party/blink/renderer/platform/fonts/font_global_context.cc ++++ chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/font_global_context.cc @@ -8,6 +8,7 @@ #include "third_party/blink/renderer/platform/fonts/font_cache.h" #include "third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h" @@ -47,8 +49,10 @@ IdentifiableToken FontGlobalContext::GetOrComputeTypefaceDigest( const FontPlatformData& source) { SkTypeface* typeface = source.Typeface(); ---- a/third_party/blink/renderer/platform/fonts/font_global_context.h -+++ b/third_party/blink/renderer/platform/fonts/font_global_context.h +Index: chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/font_global_context.h +=================================================================== +--- chromium-126.0.6478.8.orig/third_party/blink/renderer/platform/fonts/font_global_context.h ++++ chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/font_global_context.h @@ -9,7 +9,6 @@ #include "base/types/pass_key.h" #include "third_party/blink/public/common/privacy_budget/identifiable_token.h" @@ -88,9 +92,11 @@ std::unique_ptr<FontUniqueNameLookup> font_unique_name_lookup_; base::HashingLRUCache<SkTypefaceID, IdentifiableToken> typeface_digest_cache_; base::HashingLRUCache<SkTypefaceID, IdentifiableToken> ---- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc -+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc -@@ -64,14 +64,20 @@ namespace blink { +Index: chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc +=================================================================== +--- chromium-126.0.6478.8.orig/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc ++++ chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc +@@ -67,14 +67,20 @@ namespace blink { HarfBuzzFace::HarfBuzzFace(const FontPlatformData* platform_data, uint64_t unique_id) @@ -115,8 +121,8 @@ - visitor->Trace(harfbuzz_font_data_); } - static hb_bool_t HarfBuzzGetGlyph(hb_font_t* hb_font, -@@ -234,17 +240,14 @@ bool HarfBuzzFace::HasSpaceInLigaturesOr + bool& GetIgnoreVariationSelectors() { +@@ -287,17 +293,14 @@ bool HarfBuzzFace::HasSpaceInLigaturesOr hb::unique_ptr<hb_set_t> glyphs(hb_set_create()); @@ -136,7 +142,7 @@ DCHECK(face); harfbuzz_font_data_->space_in_gpos_ = hb_ot_layout_has_positioning(face) && -@@ -258,11 +261,10 @@ bool HarfBuzzFace::HasSpaceInLigaturesOr +@@ -311,11 +314,10 @@ bool HarfBuzzFace::HasSpaceInLigaturesOr if (features & kLigatures && harfbuzz_font_data_->space_in_gsub_ == HarfBuzzFontData::SpaceGlyphInOpenTypeTables::kUnknown) { @@ -150,7 +156,7 @@ DCHECK(face); harfbuzz_font_data_->space_in_gsub_ = hb_ot_layout_has_substitution(face) && -@@ -280,14 +282,14 @@ bool HarfBuzzFace::HasSpaceInLigaturesOr +@@ -333,14 +335,14 @@ bool HarfBuzzFace::HasSpaceInLigaturesOr } unsigned HarfBuzzFace::UnitsPerEmFromHeadTable() { @@ -168,7 +174,16 @@ return glyph; } -@@ -444,10 +446,9 @@ static hb::unique_ptr<hb_face_t> CreateF +@@ -349,7 +351,7 @@ hb_codepoint_t HarfBuzzFace::HarfBuzzGet + UChar32 variation_selector) { + DCHECK(RuntimeEnabledFeatures::FontVariationSequencesEnabled()); + hb_codepoint_t glyph = 0; +- HarfBuzzGetGlyph(harfbuzz_font_data_->unscaled_font_.get(), ++ HarfBuzzGetGlyph(unscaled_font_, + harfbuzz_font_data_, character, variation_selector, &glyph, + nullptr); + return glyph; +@@ -511,10 +513,9 @@ static hb::unique_ptr<hb_face_t> CreateF return face; } @@ -182,7 +197,7 @@ hb::unique_ptr<hb_font_t> ot_font(hb_font_create(face)); hb_ot_font_set_funcs(ot_font.get()); -@@ -466,26 +467,25 @@ HarfBuzzFontData* CreateHarfBuzzFontData +@@ -533,26 +534,25 @@ HarfBuzzFontData* CreateHarfBuzzFontData // Creating a sub font means that non-available functions // are found from the parent. hb_font_t* const unscaled_font = hb_font_create_sub_font(ot_font.get()); @@ -218,7 +233,7 @@ } static_assert( -@@ -516,18 +516,17 @@ hb_font_t* HarfBuzzFace::GetScaledFont(s +@@ -583,18 +583,17 @@ hb_font_t* HarfBuzzFace::GetScaledFont(s vertical_layout); int scale = SkiaScalarToHarfBuzzPosition(platform_data_->size()); @@ -241,9 +256,11 @@ } hb_font_t* HarfBuzzFace::GetScaledFont() const { ---- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h -+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h -@@ -55,6 +55,7 @@ class HarfBuzzFace final : public Garbag +Index: chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h +=================================================================== +--- chromium-126.0.6478.8.orig/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h ++++ chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h +@@ -58,6 +58,7 @@ class PLATFORM_EXPORT HarfBuzzFace final HarfBuzzFace(const FontPlatformData* platform_data, uint64_t); HarfBuzzFace(const HarfBuzzFace&) = delete; HarfBuzzFace& operator=(const HarfBuzzFace&) = delete; @@ -251,7 +268,7 @@ void Trace(Visitor*) const; -@@ -90,7 +91,11 @@ class HarfBuzzFace final : public Garbag +@@ -100,7 +101,11 @@ class PLATFORM_EXPORT HarfBuzzFace final void PrepareHarfBuzzFontData(); Member<const FontPlatformData> platform_data_; @@ -263,9 +280,11 @@ + HarfBuzzFontData* harfbuzz_font_data_; }; - } // namespace blink ---- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc -+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc + inline constexpr hb_codepoint_t kUnmatchedVSGlyphId = +Index: chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc +=================================================================== +--- chromium-126.0.6478.8.orig/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc ++++ chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc @@ -8,8 +8,38 @@ namespace blink { @@ -307,8 +326,10 @@ } } // namespace blink ---- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h -+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h +Index: chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h +=================================================================== +--- chromium-126.0.6478.8.orig/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h ++++ chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h @@ -6,9 +6,12 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARFBUZZ_FONT_CACHE_H_ @@ -376,8 +397,10 @@ }; } // namespace blink ---- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h -+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h +Index: chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h +=================================================================== +--- chromium-126.0.6478.8.orig/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h ++++ chromium-126.0.6478.8/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h @@ -22,18 +22,15 @@ const unsigned kInvalidFallbackMetricsVa // The HarfBuzzFontData struct carries user-pointer data for // |hb_font_t| callback functions/operations. It contains metrics and OpenType ++++++ bad-font-gc2.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.865283852 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.869284019 +0200 @@ -1061,7 +1061,7 @@ namespace blink { -@@ -169,8 +168,7 @@ void InlineBoxState::EnsureTextMetrics(c +@@ -174,8 +173,7 @@ void InlineBoxState::EnsureTextMetrics(c void InlineBoxState::AccumulateUsedFonts(const ShapeResultView* shape_result) { const auto baseline_type = style->GetFontBaseline(); @@ -1073,7 +1073,7 @@ FontHeight fallback_metrics = --- a/third_party/blink/renderer/core/layout/inline/ruby_utils.cc +++ b/third_party/blink/renderer/core/layout/inline/ruby_utils.cc -@@ -12,7 +12,6 @@ +@@ -17,7 +17,6 @@ #include "third_party/blink/renderer/core/layout/layout_object_inlines.h" #include "third_party/blink/renderer/core/layout/physical_box_fragment.h" #include "third_party/blink/renderer/platform/fonts/font_height.h" @@ -1081,7 +1081,7 @@ namespace blink { -@@ -33,10 +32,11 @@ std::tuple<LayoutUnit, LayoutUnit> Adjus +@@ -38,10 +37,11 @@ std::tuple<LayoutUnit, LayoutUnit> Adjus primary_font_data->GetFontMetrics().FixedAscent(font_baseline); const LayoutUnit primary_descent = line_height - primary_ascent; @@ -1095,7 +1095,7 @@ shape_view.GetRunFontData(&run_fonts); const LayoutUnit kNoDiff = LayoutUnit::Max(); LayoutUnit over_diff = kNoDiff; -@@ -60,6 +60,7 @@ std::tuple<LayoutUnit, LayoutUnit> Adjus +@@ -65,6 +65,7 @@ std::tuple<LayoutUnit, LayoutUnit> Adjus over_diff = std::min(over_diff, current_over_diff); under_diff = std::min(under_diff, current_under_diff); } @@ -1103,6 +1103,16 @@ if (over_diff == kNoDiff) over_diff = LayoutUnit(); if (under_diff == kNoDiff) +@@ -85,8 +86,7 @@ FontHeight ComputeEmHeight(const Logical + FontHeight result_height; + // We don't use ShapeResultView::FallbackFonts() because we can't know if + // the primary font is actually used with FallbackFonts(). +- HeapVector<ShapeResult::RunFontData> run_fonts; +- ClearCollectionScope clear_scope(&run_fonts); ++ Vector<ShapeResult::RunFontData> run_fonts; + shape_result_view->GetRunFontData(&run_fonts); + for (const auto& run_font : run_fonts) { + const SimpleFontData* font_data = run_font.font_data_; --- a/third_party/blink/renderer/core/layout/layout_font_accessor_win.cc +++ b/third_party/blink/renderer/core/layout/layout_font_accessor_win.cc @@ -16,7 +16,6 @@ @@ -1125,7 +1135,7 @@ result.font_names.insert(font_data->PlatformData().FontFamilyName()); --- a/third_party/blink/renderer/modules/font_access/font_metadata.cc +++ b/third_party/blink/renderer/modules/font_access/font_metadata.cc -@@ -77,7 +77,7 @@ void FontMetadata::BlobImpl(ScriptPromis +@@ -75,7 +75,7 @@ void FontMetadata::BlobImpl(ScriptPromis SetUpFontUniqueLookupIfNecessary(); FontDescription description; @@ -1136,7 +1146,7 @@ if (!font_data) { --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -621,6 +621,7 @@ component("platform") { +@@ -634,6 +634,7 @@ component("platform") { "fonts/font_cache_memory_dump_provider.h", "fonts/font_custom_platform_data.cc", "fonts/font_custom_platform_data.h", @@ -1964,7 +1974,7 @@ #endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_DATA_FOR_RANGE_SET_H_ --- a/third_party/blink/renderer/platform/fonts/font_fallback_iterator.cc +++ b/third_party/blink/renderer/platform/fonts/font_fallback_iterator.cc -@@ -60,8 +60,8 @@ void FontFallbackIterator::WillUseRange( +@@ -73,8 +73,8 @@ void FontFallbackIterator::WillUseRange( selector->WillUseRange(font_description_, family, range_set); } @@ -1972,16 +1982,15 @@ - FontDataForRangeSet* candidate, +scoped_refptr<FontDataForRangeSet> FontFallbackIterator::UniqueOrNext( + scoped_refptr<FontDataForRangeSet> candidate, - const Vector<UChar32>& hint_list) { + const HintCharList& hint_list) { if (!candidate->HasFontData()) return Next(hint_list); -@@ -104,18 +104,18 @@ bool FontFallbackIterator::NeedsHintList +@@ -117,17 +117,17 @@ bool FontFallbackIterator::NeedsHintList return font_data->IsSegmented(); } --FontDataForRangeSet* FontFallbackIterator::Next( -+scoped_refptr<FontDataForRangeSet> FontFallbackIterator::Next( - const Vector<UChar32>& hint_list) { +-FontDataForRangeSet* FontFallbackIterator::Next(const HintCharList& hint_list) { ++scoped_refptr<FontDataForRangeSet> FontFallbackIterator::Next(const HintCharList& hint_list) { if (fallback_stage_ == kOutOfLuck) - return MakeGarbageCollected<FontDataForRangeSet>(); + return base::AdoptRef(new FontDataForRangeSet()); @@ -1999,7 +2008,7 @@ if (fallback_priority_font_range->HasFontData()) return UniqueOrNext(std::move(fallback_priority_font_range), hint_list); return Next(hint_list); -@@ -123,11 +123,11 @@ FontDataForRangeSet* FontFallbackIterato +@@ -135,11 +135,11 @@ FontDataForRangeSet* FontFallbackIterato if (fallback_stage_ == kSystemFonts) { // We've reached pref + system fallback. @@ -2014,7 +2023,7 @@ } // If we don't have options from the system fallback anymore or had -@@ -137,16 +137,18 @@ FontDataForRangeSet* FontFallbackIterato +@@ -149,16 +149,18 @@ FontDataForRangeSet* FontFallbackIterato // LastResort font, not just Times or Arial. FontCache& font_cache = FontCache::Get(); fallback_stage_ = kFirstCandidateForNotdefGlyph; @@ -2039,7 +2048,7 @@ } if (fallback_stage_ == kFirstCandidateForNotdefGlyph) { -@@ -177,13 +179,13 @@ FontDataForRangeSet* FontFallbackIterato +@@ -189,13 +191,13 @@ FontDataForRangeSet* FontFallbackIterato // Skip forward to the next font family for the next call to next(). current_font_data_index_++; if (!font_data->IsLoading()) { @@ -2055,7 +2064,7 @@ } return Next(hint_list); } -@@ -197,7 +199,7 @@ FontDataForRangeSet* FontFallbackIterato +@@ -209,7 +211,7 @@ FontDataForRangeSet* FontFallbackIterato } DCHECK_LT(segmented_face_index_, segmented->NumFaces()); @@ -2064,7 +2073,7 @@ segmented->FaceAt(segmented_face_index_); segmented_face_index_++; -@@ -208,7 +210,7 @@ FontDataForRangeSet* FontFallbackIterato +@@ -220,7 +222,7 @@ FontDataForRangeSet* FontFallbackIterato current_font_data_index_++; } @@ -2073,7 +2082,7 @@ const SimpleFontData* current_segmented_face_font_data = current_segmented_face->FontData(); if (const CustomFontData* current_segmented_face_custom_font_data = -@@ -222,15 +224,17 @@ FontDataForRangeSet* FontFallbackIterato +@@ -234,15 +236,17 @@ FontDataForRangeSet* FontFallbackIterato return Next(hint_list); } @@ -2097,16 +2106,16 @@ } return font_data; } -@@ -255,7 +259,7 @@ static inline unsigned ChooseHintIndex(c +@@ -268,7 +272,7 @@ static inline unsigned ChooseHintIndex( return 0; } -const SimpleFontData* FontFallbackIterator::UniqueSystemFontForHintList( +scoped_refptr<SimpleFontData> FontFallbackIterator::UniqueSystemFontForHintList( - const Vector<UChar32>& hint_list) { + const HintCharList& hint_list) { // When we're asked for a fallback for the same characters again, we give up // because the shaper must have previously tried shaping with the font -@@ -270,13 +274,13 @@ const SimpleFontData* FontFallbackIterat +@@ -283,13 +287,13 @@ const SimpleFontData* FontFallbackIterat return nullptr; previously_asked_for_hint_.insert(hint); @@ -2140,33 +2149,33 @@ namespace blink { -@@ -42,7 +43,7 @@ class FontFallbackIterator { +@@ -49,7 +50,7 @@ class PLATFORM_EXPORT FontFallbackIterat // Some system fallback APIs (Windows, Android) require a character, or a // portion of the string to be passed. On Mac and Linux, we get a list of // fonts without passing in characters. -- FontDataForRangeSet* Next(const Vector<UChar32>& hint_list); -+ scoped_refptr<FontDataForRangeSet> Next(const Vector<UChar32>& hint_list); +- FontDataForRangeSet* Next(const HintCharList& hint_list); ++ scoped_refptr<FontDataForRangeSet> Next(const HintCharList& hint_list); - private: - bool RangeSetContributesForHint(const Vector<UChar32>& hint_list, -@@ -50,11 +51,12 @@ class FontFallbackIterator { + void Reset(); + +@@ -59,11 +60,12 @@ class PLATFORM_EXPORT FontFallbackIterat bool AlreadyLoadingRangeForHintChar(UChar32 hint_char); void WillUseRange(const AtomicString& family, const FontDataForRangeSet&); - FontDataForRangeSet* UniqueOrNext(FontDataForRangeSet* candidate, -- const Vector<UChar32>& hint_list); +- const HintCharList& hint_list); + scoped_refptr<FontDataForRangeSet> UniqueOrNext( + scoped_refptr<FontDataForRangeSet> candidate, -+ const Vector<UChar32>& hint_list); ++ const HintCharList& hint_list); - const SimpleFontData* FallbackPriorityFont(UChar32 hint); - const SimpleFontData* UniqueSystemFontForHintList( + scoped_refptr<SimpleFontData> FallbackPriorityFont(UChar32 hint); + scoped_refptr<SimpleFontData> UniqueSystemFontForHintList( - const Vector<UChar32>& hint_list); + const HintCharList& hint_list); const FontDescription& font_description_; -@@ -82,8 +84,8 @@ class FontFallbackIterator { +@@ -91,8 +93,8 @@ class PLATFORM_EXPORT FontFallbackIterat // candidate to be used for rendering the .notdef glyph, and set HasNext() to // false. HashSet<uint32_t> unique_font_data_for_range_sets_returned_; @@ -2327,7 +2336,7 @@ const uint16_t generation_; --- a/third_party/blink/renderer/platform/fonts/font_platform_data.cc +++ b/third_party/blink/renderer/platform/fonts/font_platform_data.cc -@@ -158,10 +158,6 @@ FontPlatformData::FontPlatformData(sk_sp +@@ -159,10 +159,6 @@ FontPlatformData::FontPlatformData(sk_sp FontPlatformData::~FontPlatformData() = default; @@ -2338,7 +2347,7 @@ #if BUILDFLAG(IS_MAC) CTFontRef FontPlatformData::CtFont() const { return SkTypeface_GetCTFontRef(typeface_.get()); -@@ -213,10 +209,11 @@ SkTypeface* FontPlatformData::Typeface() +@@ -214,10 +210,11 @@ SkTypeface* FontPlatformData::Typeface() HarfBuzzFace* FontPlatformData::GetHarfBuzzFace() const { if (!harfbuzz_face_) { @@ -2352,7 +2361,7 @@ } bool FontPlatformData::HasSpaceInLigaturesOrKerning( -@@ -246,7 +243,7 @@ unsigned FontPlatformData::GetHash() con +@@ -247,7 +244,7 @@ unsigned FontPlatformData::GetHash() con } #if !BUILDFLAG(IS_MAC) @@ -2393,7 +2402,7 @@ #if BUILDFLAG(IS_MAC) // Returns nullptr for FreeType backed SkTypefaces, compare // FontCustomPlatformData, which are used for variable fonts on Mac OS -@@ -129,7 +126,7 @@ class PLATFORM_EXPORT FontPlatformData +@@ -130,7 +127,7 @@ class PLATFORM_EXPORT FontPlatformData bool IsHashTableDeletedValue() const { return is_hash_table_deleted_value_; } #if !BUILDFLAG(IS_MAC) @@ -2402,7 +2411,7 @@ #endif #if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_MAC) -@@ -185,7 +182,7 @@ class PLATFORM_EXPORT FontPlatformData +@@ -186,7 +183,7 @@ class PLATFORM_EXPORT FontPlatformData WebFontRenderStyle style_; #endif @@ -2756,7 +2765,7 @@ --- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc -@@ -62,8 +62,7 @@ +@@ -65,8 +65,7 @@ namespace blink { @@ -2766,18 +2775,17 @@ : platform_data_(platform_data), unique_id_(unique_id) { HbFontCacheEntry* const cache_entry = FontGlobalContext::GetHarfBuzzFontCache().RefOrNew(unique_id_, -@@ -76,10 +75,6 @@ HarfBuzzFace::~HarfBuzzFace() { +@@ -79,9 +78,6 @@ HarfBuzzFace::~HarfBuzzFace() { FontGlobalContext::GetHarfBuzzFontCache().Remove(unique_id_); } -void HarfBuzzFace::Trace(Visitor* visitor) const { - visitor->Trace(platform_data_); -} -- - static hb_bool_t HarfBuzzGetGlyph(hb_font_t* hb_font, - void* font_data, - hb_codepoint_t unicode, -@@ -426,8 +421,7 @@ static hb_blob_t* HarfBuzzSkiaGetTable(h + + bool& GetIgnoreVariationSelectors() { + DEFINE_THREAD_SAFE_STATIC_LOCAL(WTF::ThreadSpecific<bool>, +@@ -486,8 +482,7 @@ static hb_blob_t* HarfBuzzSkiaGetTable(h } // TODO(yosin): We should move |CreateFace()| to "harfbuzz_font_cache.cc". @@ -2787,7 +2795,7 @@ hb::unique_ptr<hb_face_t> face; sk_sp<SkTypeface> typeface = sk_ref_sp(platform_data->Typeface()); -@@ -475,9 +469,8 @@ static scoped_refptr<HbFontCacheEntry> C +@@ -535,9 +530,8 @@ static scoped_refptr<HbFontCacheEntry> C return cache_entry; } @@ -2801,25 +2809,27 @@ hb::unique_ptr<hb_face_t> face = CreateFace(platform_data); --- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h +++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h -@@ -34,9 +34,8 @@ +@@ -34,11 +34,10 @@ #include "third_party/blink/renderer/platform/fonts/glyph.h" #include "third_party/blink/renderer/platform/fonts/typesetting_features.h" #include "third_party/blink/renderer/platform/fonts/unicode_range_set.h" -#include "third_party/blink/renderer/platform/heap/garbage_collected.h" -#include "third_party/blink/renderer/platform/heap/member.h" + #include "third_party/blink/renderer/platform/platform_export.h" + #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" +#include "third_party/blink/renderer/platform/wtf/ref_counted.h" #include "third_party/blink/renderer/platform/wtf/text/character_names.h" #include <hb.h> -@@ -50,15 +49,19 @@ struct HarfBuzzFontData; +@@ -52,16 +51,18 @@ struct HarfBuzzFontData; // |HarfBuzzFace| is a thread specific data associated to |FontPlatformData|, // hold by |HarfBuzzFontCache|. --class HarfBuzzFace final : public GarbageCollected<HarfBuzzFace> { -+class HarfBuzzFace final : public RefCounted<HarfBuzzFace> { +-class PLATFORM_EXPORT HarfBuzzFace final +- : public GarbageCollected<HarfBuzzFace> { ++class PLATFORM_EXPORT HarfBuzzFace final : public RefCounted<HarfBuzzFace> { + USING_FAST_MALLOC(HarfBuzzFace); -+ public: - HarfBuzzFace(const FontPlatformData* platform_data, uint64_t); + static scoped_refptr<HarfBuzzFace> Create(FontPlatformData* platform_data, @@ -2836,8 +2846,8 @@ enum VerticalLayoutCallbacks { kPrepareForVerticalLayout, kNoVerticalLayout }; // In order to support the restricting effect of unicode-range optionally a -@@ -87,10 +90,11 @@ class HarfBuzzFace final : public Garbag - static void Init(); +@@ -97,10 +98,11 @@ class PLATFORM_EXPORT HarfBuzzFace final + static void SetIgnoreVariationSelectors(bool value); private: + HarfBuzzFace(FontPlatformData* platform_data, uint64_t); @@ -2862,24 +2872,24 @@ private: --- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.cc -@@ -784,7 +784,7 @@ void HarfBuzzShaper::ShapeSegment( +@@ -853,7 +853,7 @@ void HarfBuzzShaper::ShapeSegment( fallback_chars_hint.ReserveInitialCapacity(range_data->end - range_data->start); } - FontDataForRangeSet* current_font_data_for_range_set = nullptr; + scoped_refptr<FontDataForRangeSet> current_font_data_for_range_set; + FallbackFontStage fallback_stage = kIntermediate; while (!range_data->reshape_queue.empty()) { ReshapeQueueItem current_queue_item = range_data->reshape_queue.TakeFirst(); - -@@ -847,7 +847,7 @@ void HarfBuzzShaper::ShapeSegment( +@@ -934,7 +934,7 @@ void HarfBuzzShaper::ShapeSegment( if (needs_caps_handling) { case_map_intend = caps_support.NeedsCaseChange(small_caps_behavior); - if (caps_support.NeedsSyntheticFont(small_caps_behavior)) + if (caps_support.NeedsSyntheticFont(small_caps_behavior)) { - adjusted_font = font_data->SmallCapsFontData(font_description); + adjusted_font = font_data->SmallCapsFontData(font_description).get(); + } } - CaseMappingHarfBuzzBufferFiller( --- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc @@ -79,10 +79,9 @@ ASSERT_SIZE(ShapeResult::RunInfo, SameSi @@ -2905,7 +2915,7 @@ unsigned start_index, unsigned num_characters, TextDirection direction) -@@ -436,7 +435,6 @@ void ShapeResult::Trace(Visitor* visitor +@@ -432,7 +431,6 @@ void ShapeResult::Trace(Visitor* visitor visitor->Trace(deprecated_ink_bounds_); visitor->Trace(runs_); visitor->Trace(character_position_); @@ -2913,7 +2923,7 @@ } size_t ShapeResult::ByteSize() const { -@@ -736,10 +734,10 @@ bool ShapeResult::HasFallbackFonts(const +@@ -732,10 +730,10 @@ bool ShapeResult::HasFallbackFonts(const return false; } @@ -2926,7 +2936,7 @@ } } -@@ -754,7 +752,7 @@ float ShapeResult::ForEachGlyphImpl(floa +@@ -750,7 +748,7 @@ float ShapeResult::ForEachGlyphImpl(floa for (const auto& glyph_data : run.glyph_data_) { glyph_callback(context, run.start_index_ + glyph_data.character_index, glyph_data.glyph, *glyph_offsets, total_advance, @@ -2935,7 +2945,7 @@ total_advance += glyph_data.advance; ++glyph_offsets; } -@@ -789,7 +787,7 @@ float ShapeResult::ForEachGlyphImpl(floa +@@ -785,7 +783,7 @@ float ShapeResult::ForEachGlyphImpl(floa auto total_advance = initial_advance; unsigned run_start = run.start_index_ + index_offset; bool is_horizontal = HB_DIRECTION_IS_HORIZONTAL(run.direction_); @@ -2944,7 +2954,7 @@ if (run.IsLtr()) { // Left-to-right for (const auto& glyph_data : run.glyph_data_) { -@@ -1679,7 +1677,7 @@ unsigned ShapeResult::CopyRangeInternal( +@@ -1738,7 +1736,7 @@ unsigned ShapeResult::CopyRangeInternal( ShapeResult* ShapeResult::SubRange(unsigned start_offset, unsigned end_offset) const { ShapeResult* sub_range = @@ -2955,7 +2965,7 @@ } --- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.h +++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.h -@@ -139,7 +139,7 @@ typedef void (*GraphemeClusterCallback)( +@@ -136,7 +136,7 @@ typedef void (*GraphemeClusterCallback)( class PLATFORM_EXPORT ShapeResult : public GarbageCollected<ShapeResult> { public: @@ -2964,7 +2974,7 @@ unsigned start_index, unsigned num_characters, TextDirection); -@@ -152,7 +152,7 @@ class PLATFORM_EXPORT ShapeResult : publ +@@ -149,7 +149,7 @@ class PLATFORM_EXPORT ShapeResult : publ void Trace(Visitor*) const; static ShapeResult* CreateEmpty(const ShapeResult& other) { @@ -2973,7 +2983,7 @@ other.Direction()); } static const ShapeResult* CreateForTabulationCharacters( -@@ -184,7 +184,7 @@ class PLATFORM_EXPORT ShapeResult : publ +@@ -181,7 +181,7 @@ class PLATFORM_EXPORT ShapeResult : publ LayoutUnit SnappedWidth() const { return LayoutUnit::FromFloatCeil(width_); } unsigned NumCharacters() const { return num_characters_; } unsigned NumGlyphs() const { return num_glyphs_; } @@ -2982,7 +2992,7 @@ bool HasFallbackFonts(const SimpleFontData* primary_font) const; // TODO(eae): Remove start_x and return value once ShapeResultBuffer has been -@@ -350,12 +350,10 @@ class PLATFORM_EXPORT ShapeResult : publ +@@ -352,12 +352,10 @@ class PLATFORM_EXPORT ShapeResult : publ // Computes the list of fonts along with the number of glyphs for each font. struct RunFontData { @@ -2997,16 +3007,16 @@ // Iterates over, and calls the specified callback function, for all the // glyphs. Also tracks (and returns) a seeded total advance. -@@ -515,7 +513,7 @@ class PLATFORM_EXPORT ShapeResult : publ +@@ -517,7 +515,7 @@ class PLATFORM_EXPORT ShapeResult : publ // index to x-position and O(log n) time, using binary search, from // x-position to character index. mutable HeapVector<ShapeResultCharacterData> character_position_; - Member<const SimpleFontData> primary_font_; + scoped_refptr<const SimpleFontData> primary_font_; - unsigned start_index_; - unsigned num_characters_; -@@ -570,6 +568,5 @@ PLATFORM_EXPORT std::ostream& operator<< + unsigned start_index_ = 0; + unsigned num_characters_ = 0; +@@ -572,6 +570,5 @@ PLATFORM_EXPORT std::ostream& operator<< } // namespace blink WTF_ALLOW_CLEAR_UNUSED_SLOTS_WITH_MEM_FUNCTIONS(blink::ShapeResult::ShapeRange) @@ -3359,7 +3369,7 @@ } // Internal leadings can be distributed to ascent and descent. -@@ -346,7 +352,7 @@ static std::pair<int16_t, int16_t> TypoA +@@ -347,7 +353,7 @@ static std::pair<int16_t, int16_t> TypoA void SimpleFontData::ComputeNormalizedTypoAscentAndDescent() const { // Compute em height metrics from OS/2 sTypoAscender and sTypoDescender. @@ -3368,7 +3378,7 @@ auto [typo_ascender, typo_descender] = TypoAscenderAndDescender(typeface); if (typo_ascender > 0 && TrySetNormalizedTypoAscentAndDescent(typo_ascender, typo_descender)) { -@@ -433,7 +439,7 @@ const std::optional<float>& SimpleFontDa +@@ -434,7 +440,7 @@ const std::optional<float>& SimpleFontDa } // Compute vertical advance if the orientation is `kVerticalUpright`. @@ -3377,7 +3387,7 @@ const OpenTypeVerticalData& vertical_data = hb_face->VerticalData(); ideographic_inline_size_ = vertical_data.AdvanceHeight(cjk_water_glyph); }); -@@ -461,9 +467,8 @@ const HanKerning::FontData& SimpleFontDa +@@ -462,9 +468,8 @@ const HanKerning::FontData& SimpleFontDa } gfx::RectF SimpleFontData::PlatformBoundsForGlyph(Glyph glyph) const { @@ -3388,7 +3398,7 @@ static_assert(sizeof(glyph) == 2, "Glyph id should not be truncated."); -@@ -476,18 +481,16 @@ void SimpleFontData::BoundsForGlyphs(con +@@ -477,18 +482,16 @@ void SimpleFontData::BoundsForGlyphs(con Vector<SkRect, 256>* bounds) const { DCHECK_EQ(glyphs.size(), bounds->size()); ++++++ blink-platform-INSIDE_BLINK-Wodr.patch ++++++ --- src/third_party/blink/public/platform/web_crypto_algorithm.h.orig 2024-07-24 12:50:54.735798500 +0200 +++ src/third_party/blink/public/platform/web_crypto_algorithm.h 2024-08-04 16:11:13.938867200 +0200 @@ -74,18 +74,14 @@ enum WebCryptoAlgorithmId { kWebCryptoAlgorithmIdPbkdf2, kWebCryptoAlgorithmIdEd25519, kWebCryptoAlgorithmIdX25519, -#if INSIDE_BLINK kWebCryptoAlgorithmIdLast = kWebCryptoAlgorithmIdX25519, -#endif }; enum WebCryptoNamedCurve { kWebCryptoNamedCurveP256, kWebCryptoNamedCurveP384, kWebCryptoNamedCurveP521, -#if INSIDE_BLINK kWebCryptoNamedCurveLast = kWebCryptoNamedCurveP521, -#endif }; enum WebCryptoAlgorithmParamsType { @@ -153,11 +149,9 @@ class WebCryptoAlgorithmPrivate; // methods on it (other than destruction, assignment, or IsNull()). class BLINK_PLATFORM_EXPORT WebCryptoAlgorithm { public: -#if INSIDE_BLINK WebCryptoAlgorithm() = default; WebCryptoAlgorithm(WebCryptoAlgorithmId, std::unique_ptr<WebCryptoAlgorithmParams>); -#endif static WebCryptoAlgorithm CreateNull(); static WebCryptoAlgorithm AdoptParamsAndCreate(WebCryptoAlgorithmId, --- src/third_party/blink/public/platform/web_crypto_key.h.orig 2024-07-24 12:50:54.735798500 +0200 +++ src/third_party/blink/public/platform/web_crypto_key.h 2024-08-04 16:11:34.638017900 +0200 @@ -51,9 +51,7 @@ enum WebCryptoKeyUsage { kWebCryptoKeyUsageWrapKey = 1 << 5, kWebCryptoKeyUsageUnwrapKey = 1 << 6, kWebCryptoKeyUsageDeriveBits = 1 << 7, -#if INSIDE_BLINK kEndOfWebCryptoKeyUsage, -#endif }; // A bitfield of WebCryptoKeyUsage ++++++ brotli-remove-shared-dictionary.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.901285354 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.905285521 +0200 @@ -2,9 +2,9 @@ and disable dependent code. This removes `brs` from Accept-Encoding list. This feature does not build with brotli < 1.1 ---- src/net/filter/brotli_source_stream.cc.orig 2023-10-12 17:25:42.094020700 +0200 -+++ src/net/filter/brotli_source_stream.cc 2023-10-12 22:43:53.790708700 +0200 -@@ -13,7 +11,6 @@ +--- src/net/filter/brotli_source_stream.cc.orig 2024-07-24 12:50:53.542464800 +0200 ++++ src/net/filter/brotli_source_stream.cc 2024-08-04 21:07:52.674333900 +0200 +@@ -12,7 +12,6 @@ #include "base/metrics/histogram_macros.h" #include "net/base/io_buffer.h" #include "third_party/brotli/include/brotli/decode.h" @@ -12,7 +12,7 @@ namespace net { -@@ -25,21 +22,11 @@ const char kBrotli[] = "BROTLI"; +@@ -24,21 +23,11 @@ const char kBrotli[] = "BROTLI"; // Brotli format specification: http://www.ietf.org/id/draft-alakuijala-brotli. class BrotliSourceStream : public FilterSourceStream { public: @@ -36,17 +36,17 @@ } BrotliSourceStream(const BrotliSourceStream&) = delete; -@@ -176,9 +163,6 @@ class BrotliSourceStream : public Filter +@@ -174,9 +163,6 @@ class BrotliSourceStream : public Filter free(&array[-1]); } - const scoped_refptr<IOBuffer> dictionary_; - const size_t dictionary_size_; - - raw_ptr<BrotliDecoderState, DanglingUntriaged> brotli_state_; + raw_ptr<BrotliDecoderState> brotli_state_; DecodingStatus decoding_status_ = DecodingStatus::DECODING_IN_PROGRESS; -@@ -200,8 +184,7 @@ std::unique_ptr<FilterSourceStream> Crea +@@ -198,8 +184,7 @@ std::unique_ptr<FilterSourceStream> Crea std::unique_ptr<SourceStream> previous, scoped_refptr<IOBuffer> dictionary, size_t dictionary_size) { ++++++ chromium-102-compiler.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.929286523 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.933286689 +0200 @@ -25,7 +25,7 @@ index d40843b..b92f03b 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -322,9 +322,7 @@ config("compiler") { +@@ -305,9 +305,7 @@ config("compiler") { configs += [ # See the definitions below. @@ -35,7 +35,7 @@ ":compiler_codegen", ":compiler_deterministic", ] -@@ -353,7 +351,12 @@ config("compiler") { +@@ -337,7 +335,12 @@ config("compiler") { if (!is_win) { # Common POSIX compiler flags setup. # -------------------------------- @@ -49,7 +49,7 @@ # Stack protection. ShadowCallStack and Stack protector address the same # problems. Therefore, we only enable one or the other. Clang advertises SCS as -@@ -494,10 +497,6 @@ config("compiler") { +@@ -478,10 +481,6 @@ config("compiler") { # Linux/Android/Fuchsia common flags setup. # --------------------------------- if (is_linux || is_chromeos || is_android || is_fuchsia) { @@ -60,7 +60,7 @@ if (!is_clang) { # Use pipes for communicating between sub-processes. Faster. -@@ -590,55 +589,6 @@ config("compiler") { +@@ -545,55 +544,6 @@ config("compiler") { ldflags += [ "-Wl,-z,keep-text-section-prefix" ] } @@ -87,9 +87,9 @@ - } - } - -- # TODO(crbug.com/1488374): This causes binary size growth and potentially +- # TODO(crbug.com/40283598): This causes binary size growth and potentially - # other problems. -- # TODO(crbug.com/1491036): This isn't supported by Cronet's mainline llvm version. +- # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version. - if (default_toolchain != "//build/toolchain/cros:target" && - !llvm_android_mainline) { - cflags += [ @@ -105,7 +105,7 @@ - } - } - -- # TODO(crbug.com/1235145): Investigate why/if this should be needed. +- # TODO(crbug.com/40192287): Investigate why/if this should be needed. - if (is_win) { - cflags += [ "/clang:-ffp-contract=off" ] - } else { @@ -116,7 +116,7 @@ # C11/C++11 compiler flags setup. # --------------------------- if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || -@@ -1070,11 +1020,6 @@ config("compiler") { +@@ -1063,11 +1013,6 @@ config("compiler") { defines += [ "_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE" ] } @@ -128,7 +128,7 @@ } # The BUILDCONFIG file sets this config on targets by default, which means when -@@ -1140,7 +1085,8 @@ config("thinlto_optimize_max") { +@@ -1133,7 +1078,8 @@ config("thinlto_optimize_max") { # without using everything that "compiler" brings in. Options that # tweak code generation for a particular CPU do not belong here! # See "compiler_codegen", below. @@ -138,7 +138,7 @@ cflags = [] ldflags = [] defines = [] -@@ -1523,46 +1469,6 @@ config("compiler_deterministic") { +@@ -1516,46 +1462,6 @@ config("compiler_deterministic") { } } @@ -184,8 +184,8 @@ - # Tells the compiler not to use absolute paths when passing the default # paths to the tools it invokes. We don't want this because we don't - # really need it and it can mess up the goma cache entries. -@@ -1739,7 +1645,8 @@ config("treat_warnings_as_errors") { + # really need it and it can mess up the RBE cache entries. +@@ -1732,7 +1638,8 @@ config("treat_warnings_as_errors") { # Collects all warning flags that are used by default. This is used as a # subconfig of both chromium_code and no_chromium_code. This way these # flags are guaranteed to appear on the compile command line after -Wall. @@ -195,7 +195,7 @@ cflags = [] cflags_c = [] cflags_cc = [] -@@ -1983,11 +1890,7 @@ config("chromium_code") { +@@ -1982,11 +1889,7 @@ config("chromium_code") { defines = [ "_HAS_NODISCARD" ] } } else { @@ -208,7 +208,7 @@ # In Chromium code, we define __STDC_foo_MACROS in order to get the # C99 macros on Mac and Linux. -@@ -1996,24 +1899,6 @@ config("chromium_code") { +@@ -1995,24 +1898,6 @@ config("chromium_code") { "__STDC_FORMAT_MACROS", ] @@ -233,15 +233,15 @@ if (is_apple) { cflags_objc = [ "-Wimplicit-retain-self" ] cflags_objcc = [ "-Wimplicit-retain-self" ] -@@ -2159,7 +2044,6 @@ config("no_rtti") { +@@ -2158,7 +2043,6 @@ config("no_rtti") { config("export_dynamic") { - # TODO(crbug.com/1052397): Revisit after target_os flip is completed. + # TODO(crbug.com/40118868): Revisit after target_os flip is completed. if (is_linux || is_chromeos_lacros || export_libcxxabi_from_executables) { - ldflags = [ "-rdynamic" ] } } -@@ -2247,7 +2131,8 @@ config("wexit_time_destructors") { +@@ -2246,7 +2130,8 @@ config("wexit_time_destructors") { # gcc 4.9 and earlier had no way of suppressing this warning without # suppressing the rest of them. Here we centralize the identification of # the gcc 4.9 toolchains. @@ -251,7 +251,7 @@ cflags = [] if (is_clang) { cflags += [ "-Wno-incompatible-pointer-types" ] -@@ -2362,7 +2247,8 @@ if (is_win) { +@@ -2364,7 +2249,8 @@ if (is_win) { common_optimize_on_cflags += [ "-fno-math-errno" ] } @@ -261,17 +261,17 @@ if (!is_win) { if (enable_frame_pointers) { cflags = [ "-fno-omit-frame-pointer" ] -@@ -2389,7 +2275,8 @@ config("default_stack_frames") { - } - - # Default "optimization on" config. +@@ -2405,7 +2291,8 @@ config("default_stack_frames") { + # [0]: https://pinpoint-dot-chromeperf.appspot.com/job/147634a8be0000 + # [1]: https://pinpoint-dot-chromeperf.appspot.com/job/132bc772be0000 + # [2]: https://crrev.com/c/5447532 -config("optimize") { +config("optimize") { } +config("xoptimize") { if (is_win) { cflags = [ "/O2" ] + common_optimize_on_cflags -@@ -2430,7 +2317,8 @@ config("optimize") { +@@ -2446,7 +2333,8 @@ config("optimize") { } # Turn off optimizations. @@ -281,19 +281,19 @@ if (is_win) { cflags = [ "/Od", # Disable optimization. -@@ -2470,7 +2358,8 @@ config("no_optimize") { - # Turns up the optimization level. On Windows, this implies whole program - # optimization and link-time code generation which is very expensive and should - # be used sparingly. +@@ -2486,7 +2374,8 @@ config("no_optimize") { + # Turns up the optimization level. Used to explicitly enable -O2 instead of + # -Os for select targets on platforms that use optimize_for_size. No-op + # elsewhere. -config("optimize_max") { +config("optimize_max") { } +config("xoptimize_max") { if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2503,7 +2392,8 @@ config("optimize_max") { +@@ -2519,7 +2408,8 @@ config("optimize_max") { # - # TODO(crbug.com/621335) - rework how all of these configs are related + # TODO(crbug.com/41259697) - rework how all of these configs are related # so that we don't need this disclaimer. -config("optimize_speed") { +config("optimize_speed") { } @@ -301,7 +301,7 @@ if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2529,7 +2419,8 @@ config("optimize_speed") { +@@ -2548,7 +2438,8 @@ config("optimize_speed") { } } @@ -311,7 +311,7 @@ cflags = [ "-O1" ] + common_optimize_on_cflags rustflags = [ "-Copt-level=1" ] ldflags = common_optimize_on_ldflags -@@ -2662,7 +2553,8 @@ config("win_pdbaltpath") { +@@ -2681,7 +2572,8 @@ config("win_pdbaltpath") { } # Full symbols. @@ -321,7 +321,7 @@ rustflags = [] if (is_win) { if (is_clang) { -@@ -2811,7 +2703,8 @@ config("symbols") { +@@ -2831,7 +2723,8 @@ config("symbols") { # Minimal symbols. # This config guarantees to hold symbol for stack trace which are shown to user # when crash happens in unittests running on buildbot. @@ -331,7 +331,7 @@ rustflags = [] if (is_win) { # Functions, files, and line tables only. -@@ -2896,7 +2789,8 @@ config("minimal_symbols") { +@@ -2916,7 +2809,8 @@ config("minimal_symbols") { # This configuration contains function names only. That is, the compiler is # told to not generate debug information and the linker then just puts function # names in the final debug information. ++++++ chromium-124-shims.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.949287357 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.953287524 +0200 @@ -125,17 +125,6 @@ shim_headers("log_shim") { root_path = "." prefix = "absl/log/" -diff '--color=auto' -urp src/build/linux/unbundle.orig/libwebp.gn src/build/linux/unbundle/libwebp.gn ---- src/build/linux/unbundle.orig/libwebp.gn -+++ src/build/linux/unbundle/libwebp.gn -@@ -33,3 +33,7 @@ source_set("libwebp_webp") { - group("libwebp") { - deps = [ ":libwebp_webp" ] - } -+ -+source_set("libwebp_sharpyuv") { -+ # Unused in Chromium. Empty to enable building with old webp which does not have sharpyuv -+} diff '--color=auto' -urp src/build/linux/unbundle.orig/re2.gn src/build/linux/unbundle/re2.gn --- src/build/linux/unbundle.orig/re2.gn +++ src/build/linux/unbundle/re2.gn @@ -188,7 +177,7 @@ --- /dev/null +++ src/build/linux/unbundle/zstd.gn -@@ -0,0 +1,24 @@ +@@ -0,0 +1,28 @@ +import("//build/config/linux/pkg_config.gni") +import("//build/shim_headers.gni") + @@ -204,6 +193,10 @@ + ] +} + ++source_set("compress") { ++ deps = [ ":zstd_shim" ] ++ public_configs = [ ":system_zstd" ] ++} +source_set("decompress") { + deps = [ ":zstd_shim" ] + public_configs = [ ":system_zstd" ] ++++++ chromium-93-ffmpeg-4.4.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:06.965288025 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:06.969288192 +0200 @@ -54,7 +54,7 @@ packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size); @@ -461,7 +465,11 @@ void FFmpegDemuxerStream::EnqueuePacket( - packet->size - data_offset); + side_data + side_data_size); } +#if LIBAVUTIL_VERSION_MAJOR < 57 ++++++ color_provider-incomplete-ColorProviderInternal.patch ++++++ >From ef8e6beaebcfc3e143b249ba76c177fbabd3b4ea Mon Sep 17 00:00:00 2001 From: Yichen <yich...@chromium.org> Date: Thu, 23 May 2024 23:44:41 +0000 Subject: [PATCH] ui: fix gcc/libstdc++ build break Bug: 340815321 Change-Id: Ibf443f9f16dfff164e1f4d49a58582fb7a6aca1d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5565320 Reviewed-by: Xiyuan Xia <xiy...@chromium.org> Commit-Queue: Yichen Zhou <yich...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1305426} --- ui/color/color_provider.cc | 3 ++- ui/color/color_provider.h | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/color/color_provider.cc b/ui/color/color_provider.cc index 1597715de1f63c..3e0ffed9f4d4c4 100644 --- a/ui/color/color_provider.cc +++ b/ui/color/color_provider.cc @@ -118,7 +118,8 @@ class ColorProvider::ColorProviderInternal { //////////////////////////////////////////////////////////////////////////////// // ColorProvider: -ColorProvider::ColorProvider() = default; +ColorProvider::ColorProvider() + : internal_(std::make_unique<ColorProviderInternal>()) {} ColorProvider::ColorProvider(ColorProvider&&) = default; diff --git a/ui/color/color_provider.h b/ui/color/color_provider.h index 50fff33ae6ab6d..6ac6ed6938cf24 100644 --- a/ui/color/color_provider.h +++ b/ui/color/color_provider.h @@ -65,8 +65,7 @@ class COMPONENT_EXPORT(COLOR) ColorProvider { // bind to it. class ColorProviderInternal; - std::unique_ptr<ColorProviderInternal> internal_ = - std::make_unique<ColorProviderInternal>(); + std::unique_ptr<ColorProviderInternal> internal_; }; } // namespace ui ++++++ create_tarball.sh ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.029290696 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.033290863 +0200 @@ -166,7 +166,6 @@ keeplibs=( base/third_party/cityhash #Derived code, not vendored dependency. base/third_party/cityhash_v103 #Derived code, not vendored dep - base/third_party/dynamic_annotations #Derived code, not vendored dependency. base/third_party/icu #Derived code, not vendored dependency. base/third_party/superfasthash #Not a shared library. base/third_party/symbolize #Derived code, not vendored dependency. @@ -336,6 +335,8 @@ ln -srv v8/tools -t third_party/electron_node/deps/v8/ find third_party/electron_node/deps/zlib -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete +# vendored system headers +rm -rf build/linux/debian*sysroot #Some more chonkers rm -rf components/test/data #21MB ++++++ disable-catapult.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.049291530 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.053291697 +0200 @@ -166,9 +166,9 @@ "//components/vector_icons", "//components/webauthn/json", - "//content/browser/tracing:resources", + "//media/mojo/mojom:speech_recognition", + "//ui/base", ] - } - --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni @@ -190,8 +190,6 @@ template("chrome_extra_paks") { @@ -181,7 +181,7 @@ deps += [ "//chrome/browser/resources:component_extension_resources", @@ -199,7 +197,6 @@ template("chrome_extra_paks") { - "//chrome/browser/resources/lens/overlay:resources", + "//chrome/browser/resources/lens/overlay/search_bubble:resources", "//chrome/browser/resources/search_engine_choice:resources", "//content/browser/devtools:devtools_resources", - "//content/browser/tracing:resources", ++++++ disable-webspeech.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.081292866 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.081292866 +0200 @@ -26,7 +26,7 @@ index 19b45dc1268..67dcd7752d0 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -1909,11 +1909,6 @@ source_set("browser") { +@@ -1909,13 +1909,6 @@ source_set("browser") { "sms/user_consent_handler.h", "sms/webotp_service.cc", "sms/webotp_service.h", @@ -34,6 +34,8 @@ - "speech/speech_recognition_dispatcher_host.h", - "speech/speech_recognition_manager_impl.cc", - "speech/speech_recognition_manager_impl.h", +- "speech/speech_recognition_session.cc", +- "speech/speech_recognition_session.h", - "speech/speech_recognizer.h", "speech/speech_synthesis_impl.cc", "speech/speech_synthesis_impl.h", @@ -58,14 +60,17 @@ "tracing/tracing_ui.cc", "tracing/tracing_ui.h", -@@ -2995,7 +2975,6 @@ source_set("browser") { - ] - - deps += [ +@@ -2995,10 +2975,8 @@ source_set("browser") { + "//components/soda:constants", + "//components/soda:soda", + "//components/soda:utils", - "//components/speech:speech", "//components/vector_icons", "//components/webauthn/json", +- "//media/mojo/mojom:speech_recognition", + "//ui/base", ] + } @@ -3108,6 +3083,37 @@ source_set("browser") { deps += [ "//ui/compositor" ] } ++++++ electron-30.5.1.tar.zst -> electron-31.6.0.tar.zst ++++++ /work/SRC/openSUSE:Factory/nodejs-electron/electron-30.5.1.tar.zst /work/SRC/openSUSE:Factory/.nodejs-electron.new.29891/electron-31.6.0.tar.zst differ: char 7, line 1 ++++++ ffmpeg-new-channel-layout.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.165296371 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.165296371 +0200 @@ -176,33 +176,6 @@ if (frame->sample_rate != sample_rate_ || channels != channels_ || frame->format != av_sample_format_) { DLOG(ERROR) << "Unsupported midstream configuration change!" -diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc -index 2aba7927a31..1f45a50cace 100644 ---- a/media/filters/audio_file_reader_unittest.cc -+++ b/media/filters/audio_file_reader_unittest.cc -@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test { - EXPECT_FALSE(reader_->Open()); - } - -- void RunTestFailingDecode(const char* fn) { -+ void RunTestFailingDecode(const char* fn, int expect_read = 0) { - Initialize(fn); - EXPECT_TRUE(reader_->Open()); - std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets; -- EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0); -+ EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read); - } - - void RunTestPartialDecode(const char* fn) { -@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) { - } - - TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) { -- RunTestFailingDecode("midstream_config_change.mp3"); -+ RunTestFailingDecode("midstream_config_change.mp3", 42624); - } - #endif - diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc index 185819eb936..69ff508c221 100644 --- a/media/filters/audio_video_metadata_extractor.cc ++++++ fix-build-without-safebrowsing.patch ++++++ --- src/chrome/browser/ui/exclusive_access/fullscreen_controller.cc.orig 2024-07-24 13:00:13.565994500 +0200 +++ src/chrome/browser/ui/exclusive_access/fullscreen_controller.cc 2024-08-03 23:06:56.231653700 +0200 @@ -19,7 +19,6 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/safe_browsing/safe_browsing_service.h" #if 0 #include "chrome/browser/ui/blocked_content/popunder_preventer.h" #endif @@ -116,20 +115,6 @@ void RecordWebsiteStateAtApiRequest(hist void CheckUrlForAllowlistAndRecordMetric( const GURL& url, history::HistoryLastVisitResult result) { - if (!g_browser_process->safe_browsing_service() || - !g_browser_process->safe_browsing_service()->database_manager()) { - RecordWebsiteStateAtApiRequest(result, std::nullopt); - return; - } - g_browser_process->safe_browsing_service() - ->database_manager() - ->CheckUrlForHighConfidenceAllowlist( - url, "RT" /*realtime*/, - base::BindOnce( - [](history::HistoryLastVisitResult result, bool on_allowlist) { - RecordWebsiteStateAtApiRequest(result, on_allowlist); - }, - result)); } } // namespace ++++++ fix-build-without-supervised-users.patch ++++++ --- src/chrome/test/BUILD.gn.orig 2024-09-12 13:54:44.642624995 +0200 +++ src/chrome/test/BUILD.gn 2024-09-12 15:25:29.792388388 +0200 @@ -56,7 +56,6 @@ import("//v8/gni/v8.gni") assert(!is_ios, "Chromium/iOS shouldn't use anything in //chrome") assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") -assert(enable_supervised_users) if (is_android) { import("//build/config/android/rules.gni") --- src/chrome/common/BUILD.gn.orig 2024-09-12 13:46:51.785984196 +0200 +++ src/chrome/common/BUILD.gn 2024-09-12 15:27:58.398867501 +0200 @@ -22,7 +22,6 @@ import("//testing/libfuzzer/fuzzer_test. import("//third_party/widevine/cdm/widevine.gni") import("//tools/grit/grit_rule.gni") -assert(enable_supervised_users) assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") fuzzer_test("ini_parser_fuzzer") { --- src/chrome/renderer/BUILD.gn.orig 2024-09-12 13:46:51.849317526 +0200 +++ src/chrome/renderer/BUILD.gn 2024-09-12 15:29:17.915843739 +0200 @@ -18,7 +18,6 @@ import("//testing/libfuzzer/fuzzer_test. import("//third_party/widevine/cdm/widevine.gni") import("//tools/grit/grit_rule.gni") -assert(enable_supervised_users) grit("resources") { source = "resources/renderer_resources.grd" --- src/chrome/browser/BUILD.gn.orig 2024-09-12 13:54:44.639291662 +0200 +++ src/chrome/browser/BUILD.gn 2024-09-12 15:30:42.759505691 +0200 @@ -45,7 +45,6 @@ import("//third_party/widevine/cdm/widev import("//tools/grit/grit_rule.gni") import("//ui/base/ui_features.gni") -assert(enable_supervised_users) # //build/config/android/rules.gni imports //tools/grit/grit_rule.gni, which # produces a conflict for the "grit" template so we have to only include one. --- src/chrome/browser/ui/BUILD.gn.orig 2024-09-12 13:46:51.212650894 +0200 +++ src/chrome/browser/ui/BUILD.gn 2024-09-12 15:32:36.489733448 +0200 @@ -32,7 +32,6 @@ import("//third_party/protobuf/proto_lib import("//ui/base/ui_features.gni") import("//ui/views/features.gni") -assert(enable_supervised_users) assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") generate_histograms_variants_allowlist("webui_name_variants") { --- src/chrome/browser/extensions/BUILD.gn.orig 2024-09-12 13:46:50.369317607 +0200 +++ src/chrome/browser/extensions/BUILD.gn 2024-09-12 15:33:39.046452725 +0200 @@ -20,7 +20,6 @@ import("//testing/libfuzzer/fuzzer_test. import("//third_party/protobuf/proto_library.gni") assert(enable_extensions) -assert(enable_supervised_users) assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") static_library("extensions") { ++++++ harfbuzz-replace-chromium-scoped-type.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.217298541 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.221298708 +0200 @@ -110,13 +110,14 @@ index 7c7057b..d43668f1 100644 --- a/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc +++ b/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc -@@ -7,10 +7,10 @@ - // Include HarfBuzz to have a cross-platform way to retrieve table tags without +@@ -7,11 +7,11 @@ // having to rely on the platform being able to instantiate this font format. #include <hb.h> + +#include <hb-cplusplus.hh> - #include "base/sys_byteorder.h" + #include "base/containers/span.h" + #include "base/numerics/byte_conversions.h" #include "third_party/blink/renderer/platform/wtf/vector.h" -#include "third_party/harfbuzz-ng/utils/hb_scoped.h" #include "third_party/skia/include/core/SkTypeface.h" @@ -254,9 +255,9 @@ // clang-format on @@ -52,7 +53,6 @@ - #include "third_party/blink/renderer/platform/wtf/hash_map.h" - #include "third_party/blink/renderer/platform/wtf/math_extras.h" #include "third_party/blink/renderer/platform/wtf/text/character_names.h" + #include "third_party/blink/renderer/platform/wtf/thread_specific.h" + #include "third_party/blink/renderer/platform/wtf/wtf.h" -#include "third_party/harfbuzz-ng/utils/hb_scoped.h" #include "third_party/skia/include/core/SkPaint.h" #include "third_party/skia/include/core/SkPath.h" ++++++ http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch ++++++ >From d8985805ba3c963d9aabbd2c77d15dbd8d7290c5 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz <jdap...@igalia.com> Date: Wed, 15 May 2024 18:46:03 +0000 Subject: [PATCH] GCC: explicitly use base::span constructor in HttpAuthNtlmMechanism MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit base::span requires explicit construction for several of the constructors. Theoretically the constructor used here should not require that but GCC complains. Bug: 40565911 Change-Id: I452f31ee0862c3e986e15207f89baa043b016da8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5540995 Reviewed-by: Maks Orlovich <morlov...@chromium.org> Commit-Queue: José Dapena Paz <jdap...@igalia.com> Cr-Commit-Position: refs/heads/main@{#1301466} --- net/http/http_auth_ntlm_mechanism.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/http/http_auth_ntlm_mechanism.cc b/net/http/http_auth_ntlm_mechanism.cc index ddab00151cda9c..0b103303df56f7 100644 --- a/net/http/http_auth_ntlm_mechanism.cc +++ b/net/http/http_auth_ntlm_mechanism.cc @@ -149,7 +149,7 @@ int HttpAuthNtlmMechanism::GenerateAuthToken( return ERR_UNEXPECTED; uint8_t client_challenge[8]; - g_generate_random_proc(client_challenge); + g_generate_random_proc(base::span<uint8_t>(client_challenge)); auto next_token = ntlm_client_.GenerateAuthenticateMessage( domain, user, credentials->password(), hostname, channel_bindings, spn, ++++++ native_css_paint_definition-expected-unqualified-id.patch ++++++ >From bf5355ac24399cd37a7d210b1ce9586d70829ed5 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz <jdap...@igalia.com> Date: Fri, 17 May 2024 09:39:14 +0000 Subject: [PATCH] GCC: do not add template parameter in constructor of BaseKeyframe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GCC rejects adding redundantly the template parameter in the constructor. Bug: 40565911 Change-Id: Ie827f1dba5488893cb76e0e52e9c26866dff701c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5539114 Reviewed-by: Jean-Philippe Gravel <jpgra...@chromium.org> Commit-Queue: José Dapena Paz <jdap...@igalia.com> Cr-Commit-Position: refs/heads/main@{#1302481} --- .../csspaint/nativepaint/native_css_paint_definition.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/third_party/blink/renderer/modules/csspaint/nativepaint/native_css_paint_definition.h b/third_party/blink/renderer/modules/csspaint/nativepaint/native_css_paint_definition.h index 34d37ea466c632..24a676543895ac 100644 --- a/third_party/blink/renderer/modules/csspaint/nativepaint/native_css_paint_definition.h +++ b/third_party/blink/renderer/modules/csspaint/nativepaint/native_css_paint_definition.h @@ -51,9 +51,7 @@ class MODULES_EXPORT NativeCssPaintDefinition : public NativePaintDefinition { template <typename T> struct TypedKeyframe : public BaseKeyframe { - TypedKeyframe<T>(double offset, - std::unique_ptr<gfx::TimingFunction>& tf, - T v) + TypedKeyframe(double offset, std::unique_ptr<gfx::TimingFunction>& tf, T v) : BaseKeyframe(offset, tf), value(v) {} T value; }; ++++++ page_popup_controller-missing-optional.patch ++++++ >From f3fce92b27296068b4c304321b53bd1c7c4beb61 Mon Sep 17 00:00:00 2001 From: "lauren n. liberda" <lauren@selfisekai.rocks> Date: Tue, 28 May 2024 17:54:26 +0000 Subject: [PATCH] iwyu: missing <optional> in page_popup_controller.h Bug: 41455655 Change-Id: I6483b9ec9d3c4acc08fb2bce8cac409c32a06dc4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5569043 Reviewed-by: Lei Zhang <thes...@chromium.org> Commit-Queue: Lei Zhang <thes...@chromium.org> Reviewed-by: Khushal Sagar <khushalsa...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1306871} --- AUTHORS | 1 + third_party/blink/renderer/core/page/page_popup_controller.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/AUTHORS b/AUTHORS index eba1dc976d8fa0..715e108aca1c3d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -818,6 +818,7 @@ Lalit Chandivade <lalit.chandiv...@einfochips.com> Lam Lu <la...@amazon.com> Laszlo Gombos <l.gom...@samsung.com> Laszlo Radanyi <bek...@gmail.com> +lauren n. liberda <lauren@selfisekai.rocks> Lauren Yeun Kim <lauren.yeun....@gmail.com> Lauri Oherd <lauri.oh...@gmail.com> Lavar Askew <open.hyper...@gmail.com> diff --git a/third_party/blink/renderer/core/page/page_popup_controller.h b/third_party/blink/renderer/core/page/page_popup_controller.h index 5da38d0b9ab26f..c4e8e865fa96d3 100644 --- a/third_party/blink/renderer/core/page/page_popup_controller.h +++ b/third_party/blink/renderer/core/page/page_popup_controller.h @@ -31,6 +31,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_PAGE_POPUP_CONTROLLER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_PAGE_POPUP_CONTROLLER_H_ +#include <optional> + #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" ++++++ partition_alloc-no-lto.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.309302381 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.313302548 +0200 @@ -1,73 +1,70 @@ Compile files which declare functions in inline assembly without LTO due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57703 ---- src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.old 2022-10-01 13:53:03.367797474 +0200 -+++ src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn 2022-10-05 14:23:53.999860356 +0200 -@@ -90,6 +90,33 @@ if (!is_debug || partition_alloc_optimiz - _add_configs += [ "//build/config/compiler:no_optimize" ] +--- src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.orig 2024-07-24 12:50:43.409128966 +0200 ++++ src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn 2024-07-26 13:37:20.891041131 +0200 +@@ -107,6 +107,31 @@ source_set("build_config") { + ] } -+if (use_starscan) { -+ static_library("partition_alloc_asm") { -+ if (gcc_lto) { -+ configs -= [ "//build/config/compiler:gcc_lto" ] -+ } -+ if (current_cpu == "x64") { -+ assert(pcscan_stack_supported) -+ sources = [ "starscan/stack/asm/x64/push_registers_asm.cc" ] -+ } else if (current_cpu == "x86") { -+ assert(pcscan_stack_supported) -+ sources = [ "starscan/stack/asm/x86/push_registers_asm.cc" ] -+ } else if (current_cpu == "arm") { -+ assert(pcscan_stack_supported) -+ sources = [ "starscan/stack/asm/arm/push_registers_asm.cc" ] -+ } else if (current_cpu == "arm64") { -+ assert(pcscan_stack_supported) -+ sources = [ "starscan/stack/asm/arm64/push_registers_asm.cc" ] -+ } else if (current_cpu == "riscv64") { -+ assert(pcscan_stack_supported) -+ sources = [ "starscan/stack/asm/riscv64/push_registers_asm.cc" ] -+ } else { -+ assert(!pcscan_stack_supported) -+ # To support a trampoline for another arch, please refer to v8/src/heap/base. -+ } -+ } ++static_library("allocator_core_asm") { ++ if (gcc_lto) { ++ configs -= [ "//build/config/compiler:gcc_lto" ] ++ } ++ if (current_cpu == "x64") { ++ assert(stack_scan_supported) ++ sources = [ "stack/asm/x64/push_registers_asm.cc" ] ++ } else if (current_cpu == "x86") { ++ assert(stack_scan_supported) ++ sources = [ "stack/asm/x86/push_registers_asm.cc" ] ++ } else if (current_cpu == "arm") { ++ assert(stack_scan_supported) ++ sources = [ "stack/asm/arm/push_registers_asm.cc" ] ++ } else if (current_cpu == "arm64") { ++ assert(stack_scan_supported) ++ sources = [ "stack/asm/arm64/push_registers_asm.cc" ] ++ } else if (current_cpu == "riscv64") { ++ assert(stack_scan_supported) ++ sources = [ "stack/asm/riscv64/push_registers_asm.cc" ] ++ } else { ++ # To support a trampoline for another arch, please refer to v8/src/heap/base. ++ assert(!stack_scan_supported) ++ } +} + component("raw_ptr") { # `gn check` is unhappy with most `#includes` when PA isn't # actually built. -@@ -497,25 +524,10 @@ if (is_clang_or_gcc) { +@@ -522,24 +547,9 @@ if (is_clang_or_gcc) { # The Android NDK supports PR_MTE_* macros as of NDK r23. defines += [ "HAS_PR_MTE_MACROS" ] } +- if (current_cpu == "x64") { +- assert(stack_scan_supported) +- sources += [ "stack/asm/x64/push_registers_asm.cc" ] +- } else if (current_cpu == "x86") { +- assert(stack_scan_supported) +- sources += [ "stack/asm/x86/push_registers_asm.cc" ] +- } else if (current_cpu == "arm") { +- assert(stack_scan_supported) +- sources += [ "stack/asm/arm/push_registers_asm.cc" ] +- } else if (current_cpu == "arm64") { +- assert(stack_scan_supported) +- sources += [ "stack/asm/arm64/push_registers_asm.cc" ] +- } else if (current_cpu == "riscv64") { +- assert(stack_scan_supported) +- sources += [ "stack/asm/riscv64/push_registers_asm.cc" ] +- } else { +- # To support a trampoline for another arch, please refer to v8/src/heap/base. +- assert(!stack_scan_supported) + deps = [ ":allocator_base" ] - if (use_starscan) { -- if (current_cpu == "x64") { -- assert(pcscan_stack_supported) -- sources += [ "starscan/stack/asm/x64/push_registers_asm.cc" ] -- } else if (current_cpu == "x86") { -- assert(pcscan_stack_supported) -- sources += [ "starscan/stack/asm/x86/push_registers_asm.cc" ] -- } else if (current_cpu == "arm") { -- assert(pcscan_stack_supported) -- sources += [ "starscan/stack/asm/arm/push_registers_asm.cc" ] -- } else if (current_cpu == "arm64") { -- assert(pcscan_stack_supported) -- sources += [ "starscan/stack/asm/arm64/push_registers_asm.cc" ] -- } else if (current_cpu == "riscv64") { -- assert(pcscan_stack_supported) -- sources += [ "starscan/stack/asm/riscv64/push_registers_asm.cc" ] -- } else { -- # To support a trampoline for another arch, please refer to v8/src/heap/base. -- assert(!pcscan_stack_supported) -+ if (current_cpu == "x64" || current_cpu == "x86" || current_cpu == "arm" || current_cpu == "arm64" || current_cpu == "riscv64") { -+ deps += [ ":partition_alloc_asm" ] - } ++ if (current_cpu == "x64" || current_cpu == "x86" || current_cpu == "arm" || current_cpu == "arm64" || current_cpu == "riscv64") { ++ deps += [ ":allocator_core_asm" ] } - if (use_freelist_pool_offsets) { -@@ -536,7 +548,6 @@ if (is_clang_or_gcc) { + + # TODO(crbug.com/40274683): once we evaluate pool offset freelists, +@@ -563,7 +573,6 @@ if (is_clang_or_gcc) { ":memory_tagging", - "//build/config/compiler:wexit_time_destructors", + ":wexit_time_destructors", ] - deps = [ ":allocator_base" ] public_configs = [] ++++++ quiche-QuicIntervalDeque-no-match-for-operator-mm.patch ++++++ >From d3bc5ffc929b0895ae9e16774069a04ae6fe3c58 Mon Sep 17 00:00:00 2001 From: bnc <b...@google.com> Date: Mon, 13 May 2024 12:28:35 -0700 Subject: [PATCH] Add some QuicIntervalDeque::Iterator methods. GCC requires operator-=() and operator--() to be defined for std::advance for random access iterators. Also, `QUICHE_DCHECK_LE(0u, index_)` is always true as `index_` is unsigned, causing a warning that is promoted to an error in some environments. This CL verifies that the addition does not result in underflow before the it is performed, not after. PiperOrigin-RevId: 633296228 --- quiche/quic/core/quic_interval_deque.h | 19 +++++++++-- quiche/quic/core/quic_interval_deque_test.cc | 33 ++++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/quiche/quic/core/quic_interval_deque.h b/quiche/quic/core/quic_interval_deque.h index db7b2b0ac..1c6cd71a5 100644 --- a/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h +++ b/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h @@ -158,7 +158,7 @@ class QUICHE_NO_EXPORT QuicIntervalDeque { Iterator(std::size_t index, QuicIntervalDeque* deque) : index_(index), deque_(deque) {} // Only the ++ operator attempts to update the cached index. Other operators - // are used by |lower_bound| to binary search and are thus private. + // are used by |lower_bound| to binary search. Iterator& operator++() { // Don't increment when we are at the end. const std::size_t container_size = deque_->container_.size(); @@ -186,6 +186,19 @@ class QUICHE_NO_EXPORT QuicIntervalDeque { ++(*this); return copy; } + Iterator& operator--() { + if (index_ == 0) { + QUIC_BUG(quic_bug_10862_4) << "Iterator out of bounds."; + return *this; + } + index_--; + return *this; + } + Iterator operator--(int) { + Iterator copy = *this; + --(*this); + return copy; + } reference operator*() { return deque_->container_[index_]; } reference operator*() const { return deque_->container_[index_]; } pointer operator->() { return &deque_->container_[index_]; } @@ -194,11 +207,13 @@ class QUICHE_NO_EXPORT QuicIntervalDeque { } bool operator!=(const Iterator& rhs) const { return !(*this == rhs); } Iterator& operator+=(difference_type amount) { + // `amount` might be negative, check for underflow. + QUICHE_DCHECK_GE(static_cast<difference_type>(index_), -amount); index_ += amount; - QUICHE_DCHECK_LE(0u, index_); QUICHE_DCHECK_LT(index_, deque_->Size()); return *this; } + Iterator& operator-=(difference_type amount) { return operator+=(-amount); } difference_type operator-(const Iterator& rhs) const { return static_cast<difference_type>(index_) - static_cast<difference_type>(rhs.index_); ++++++ quiche-absl-HexStringToBytes.patch ++++++ >From a484a561d3d36beca0d4dc9f5d4a2c083be03e1f Mon Sep 17 00:00:00 2001 From: awillia <awil...@google.com> Date: Tue, 19 Mar 2024 17:22:54 -0700 Subject: [PATCH] Replace deprecated version of absl::HexStringToBytes in test programs and remaining quic/ tests Replaces the deprecated version of absl::HexStringToBytes that returns std::string with the version that returns bool and populates a passed in std::string. This CL isn't expected to change the behavior of any code used in production. This allows the Chrome build of QUICHE to build without the `-Wno-deprecated-declarations` clang flag. PiperOrigin-RevId: 617342915 --- .../web_transport_fingerprint_proof_verifier.cc | 12 ++++++++++-- quiche/quic/masque/masque_client_bin.cc | 7 ++++++- quiche/quic/masque/masque_server_backend.cc | 5 ++++- quiche/quic/tools/crypto_message_printer_bin.cc | 6 +++++- quiche/quic/tools/quic_packet_printer_bin.cc | 6 +++++- quiche/quic/tools/quic_toy_client.cc | 17 +++++++++-------- 6 files changed, 39 insertions(+), 14 deletions(-) diff --git a/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier.cc b/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier.cc index 167e4efc4..fc8cffd40 100644 --- a/net/third_party/quiche/src/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier.cc +++ b/net/third_party/quiche/src/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier.cc @@ -6,6 +6,8 @@ #include <cstdint> #include <memory> +#include <string> +#include <utility> #include "absl/strings/escaping.h" #include "absl/strings/match.h" @@ -18,6 +20,7 @@ #include "quiche/quic/core/quic_types.h" #include "quiche/quic/core/quic_utils.h" #include "quiche/quic/platform/api/quic_bug_tracker.h" +#include "quiche/quic/platform/api/quic_logging.h" #include "quiche/common/quiche_text_utils.h" namespace quic { @@ -83,8 +86,13 @@ bool WebTransportFingerprintProofVerifier::AddFingerprint( std::string normalized = absl::StrReplaceAll(fingerprint.fingerprint, {{":", ""}}); - hashes_.push_back(WebTransportHash{fingerprint.algorithm, - absl::HexStringToBytes(normalized)}); + std::string normalized_bytes; + if (!absl::HexStringToBytes(normalized, &normalized_bytes)) { + QUIC_DLOG(WARNING) << "Fingerprint hexadecimal is invalid"; + return false; + } + hashes_.push_back( + WebTransportHash{fingerprint.algorithm, std::move(normalized_bytes)}); return true; } diff --git a/quiche/quic/masque/masque_client_bin.cc b/quiche/quic/masque/masque_client_bin.cc index eefd002dc..06e6ed2b7 100644 --- a/net/third_party/quiche/src/quiche/quic/masque/masque_client_bin.cc +++ b/net/third_party/quiche/src/quiche/quic/masque/masque_client_bin.cc @@ -281,7 +281,12 @@ int RunMasqueClient(int argc, char* argv[]) { QUIC_LOG(ERROR) << "Signature authentication key ID cannot be empty"; return 1; } - private_key_seed = absl::HexStringToBytes(signature_auth_param_split[1]); + if (!absl::HexStringToBytes(signature_auth_param_split[1], + &private_key_seed)) { + QUIC_LOG(ERROR) << "Signature authentication key hex value is invalid"; + return 1; + } + if (private_key_seed.size() != kEd25519Rfc8032PrivateKeySize) { QUIC_LOG(ERROR) << "Invalid signature authentication private key length " diff --git a/quiche/quic/masque/masque_server_backend.cc b/quiche/quic/masque/masque_server_backend.cc index f4ff2e0ed..66ca13c96 100644 --- a/net/third_party/quiche/src/quiche/quic/masque/masque_server_backend.cc +++ b/net/third_party/quiche/src/quiche/quic/masque/masque_server_backend.cc @@ -193,7 +193,10 @@ void MasqueServerBackend::SetSignatureAuth(absl::string_view signature_auth) { quiche::QuicheTextUtils::RemoveLeadingAndTrailingWhitespace(&kv[1]); SignatureAuthCredential credential; credential.key_id = std::string(kv[0]); - std::string public_key = absl::HexStringToBytes(kv[1]); + std::string public_key; + if (!absl::HexStringToBytes(kv[1], &public_key)) { + QUIC_LOG(FATAL) << "Invalid signature auth public key hex " << kv[1]; + } if (public_key.size() != sizeof(credential.public_key)) { QUIC_LOG(FATAL) << "Invalid signature auth public key length " << public_key.size(); diff --git a/quiche/quic/tools/crypto_message_printer_bin.cc b/quiche/quic/tools/crypto_message_printer_bin.cc index eb7393d54..82850d94a 100644 --- a/net/third_party/quiche/src/quiche/quic/tools/crypto_message_printer_bin.cc +++ b/net/third_party/quiche/src/quiche/quic/tools/crypto_message_printer_bin.cc @@ -48,7 +48,11 @@ int main(int argc, char* argv[]) { quic::CryptoFramer framer; framer.set_visitor(&printer); framer.set_process_truncated_messages(true); - std::string input = absl::HexStringToBytes(messages[0]); + std::string input; + if (!absl::HexStringToBytes(messages[0], &input)) { + cerr << "Invalid hex string provided" << endl; + return 1; + } if (!framer.ProcessInput(input)) { return 1; } diff --git a/quiche/quic/tools/quic_packet_printer_bin.cc b/quiche/quic/tools/quic_packet_printer_bin.cc index 5ed77010a..314cc20ea 100644 --- a/net/third_party/quiche/src/quiche/quic/tools/quic_packet_printer_bin.cc +++ b/net/third_party/quiche/src/quiche/quic/tools/quic_packet_printer_bin.cc @@ -270,7 +270,11 @@ int main(int argc, char* argv[]) { quiche::QuichePrintCommandLineFlagHelp(usage); return 1; } - std::string hex = absl::HexStringToBytes(args[1]); + std::string hex; + if (!absl::HexStringToBytes(args[1], &hex)) { + std::cerr << "Invalid hex string" << std::endl; + return 1; + } quic::ParsedQuicVersionVector versions = quic::AllSupportedVersions(); // Fake a time since we're not actually generating acks. quic::QuicTime start(quic::QuicTime::Zero()); ++++++ real_time_reporting_bindings-forward-declaration.patch ++++++ >From fb3678b0d1084b49c5ca795200131a7c0ac01ffe Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz <jdap...@igalia.com> Date: Wed, 15 May 2024 13:59:56 +0000 Subject: [PATCH] libstdc++: real time reporting bindings vector requires full declaration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit libstdc++ implementation of std::vector requires the full declaration of the type and not a forward declaration. This breaks compilation of RealTimeReportingBindings, as it has an std::vector of RealTimeReportingContributionPtr. Bug: 41455655 Change-Id: I9ee70fbb58af36f4cfc43a5d4b1e99799f4c760c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5541055 Reviewed-by: Russ Hamilton <behamil...@google.com> Commit-Queue: José Dapena Paz <jdap...@igalia.com> Cr-Commit-Position: refs/heads/main@{#1301266} --- content/services/auction_worklet/real_time_reporting_bindings.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/services/auction_worklet/real_time_reporting_bindings.h b/content/services/auction_worklet/real_time_reporting_bindings.h index c755d5cab041ec..da4d05e96f788c 100644 --- a/content/services/auction_worklet/real_time_reporting_bindings.h +++ b/content/services/auction_worklet/real_time_reporting_bindings.h @@ -12,7 +12,7 @@ #include "content/common/content_export.h" #include "content/services/auction_worklet/auction_v8_helper.h" #include "content/services/auction_worklet/context_recycler.h" -#include "content/services/auction_worklet/public/mojom/real_time_reporting.mojom-forward.h" +#include "content/services/auction_worklet/public/mojom/real_time_reporting.mojom.h" #include "v8/include/v8-forward.h" namespace auction_worklet { ++++++ remove-dawn.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.377305218 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.381305385 +0200 @@ -46,8 +46,8 @@ #if BUILDFLAG(GOOGLE_CHROME_BRANDING) && BUILDFLAG(IS_CHROMEOS) services.Add(RunShapeDetectionService); ---- src/content/utility/utility_main.cc.old 2024-04-02 09:53:16.050958400 +0000 -+++ src/content/utility/utility_main.cc 2024-04-07 17:41:04.823696600 +0000 +--- src/content/utility/utility_main.cc.orig 2024-07-24 12:50:51.439131000 +0200 ++++ src/content/utility/utility_main.cc 2024-08-03 00:11:18.255682100 +0200 @@ -32,7 +32,6 @@ #include "sandbox/policy/mojom/sandbox.mojom.h" #include "sandbox/policy/sandbox.h" @@ -56,18 +56,17 @@ #include "services/screen_ai/buildflags/buildflags.h" #include "services/tracing/public/cpp/trace_startup.h" #include "third_party/icu/source/common/unicode/unistr.h" -@@ -202,10 +201,6 @@ int UtilityMain(MainFunctionParams param - ? base::MessagePumpType::UI - : base::MessagePumpType::DEFAULT; +@@ -246,9 +245,6 @@ int UtilityMain(MainFunctionParams param + } + } -- if (parameters.command_line->GetSwitchValueASCII(switches::kUtilitySubType) == -- on_device_model::mojom::OnDeviceModelService::Name_) { +- if (utility_sub_type == on_device_model::mojom::OnDeviceModelService::Name_) { - CHECK(on_device_model::OnDeviceModelService::PreSandboxInit()); - } - #if BUILDFLAG(IS_MAC) - auto sandbox_type = -@@ -283,11 +278,6 @@ int UtilityMain(MainFunctionParams param + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + // Thread type delegate of the process should be registered before first +@@ -283,11 +279,6 @@ int UtilityMain(MainFunctionParams param case sandbox::mojom::Sandbox::kAudio: pre_sandbox_hook = base::BindOnce(&audio::AudioPreSandboxHook); break; @@ -79,4 +78,14 @@ case sandbox::mojom::Sandbox::kSpeechRecognition: pre_sandbox_hook = base::BindOnce(&speech::SpeechRecognitionPreSandboxHook); +@@ -437,9 +428,6 @@ int UtilityMain(MainFunctionParams param + + run_loop.Run(); + +- if (utility_sub_type == on_device_model::mojom::OnDeviceModelService::Name_) { +- CHECK(on_device_model::OnDeviceModelService::Shutdown()); +- } + + #if defined(LEAK_SANITIZER) + // Invoke LeakSanitizer before shutting down the utility thread, to avoid ++++++ remove-password-manager-and-policy.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.397306053 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.401306220 +0200 @@ -22,9 +22,9 @@ --- a/components/embedder_support/user_agent_utils.cc +++ b/components/embedder_support/user_agent_utils.cc @@ -446,12 +446,14 @@ blink::UserAgentMetadata GetUserAgentMetadata(const PrefService* pref_service, - blink::UserAgentMetadata metadata; - bool enable_updated_grease_by_policy = true; + // TODO(crbug.com/40838057): Remove this after M126 which deprecates the + // policy. +#if 0 if (pref_service) { if (pref_service->HasPrefPath( @@ -78,13 +78,14 @@ if (build_with_tflite_lib) { --- src/components/embedder_support/BUILD.gn.old +++ src/components/embedder_support/BUILD.gn -@@ -24,11 +24,8 @@ static_library("browser_util") { +@@ -24,12 +24,8 @@ static_library("browser_util") { deps = [ ":embedder_support", "//build:branding_buildflags", - "//components/background_sync", - "//components/content_settings/browser", "//components/content_settings/core/browser", +- "//components/content_settings/core/browser:cookie_settings", "//components/permissions", - "//components/policy/core/common", "//components/prefs", @@ -92,15 +93,17 @@ "//content/public/browser", --- src/components/permissions/BUILD.gn.old +++ src/components/permissions/BUILD.gn -@@ -109,8 +109,6 @@ source_set("permissions") { +@@ -109,10 +109,7 @@ source_set("permissions") { deps = [ "//base", "//build:chromeos_buildflags", - "//components/back_forward_cache", - "//components/content_settings/browser", "//components/content_settings/core/browser", +- "//components/content_settings/core/browser:cookie_settings", "//components/favicon/core:core", "//components/keyed_service/content", + "//components/permissions/prediction_service", --- src/components/proxy_config/BUILD.gn.old +++ src/components/proxy_config/BUILD.gn @@ -23,9 +23,6 @@ component("proxy_config") { @@ -122,26 +125,35 @@ sources += [ "proxy_policy_handler.cc", "proxy_policy_handler.h", ---- src/components/content_settings/core/browser/BUILD.gn.old +--- src/components/content_settings/core/browser/BUILD.gn.orig +++ src/components/content_settings/core/browser/BUILD.gn -@@ -70,7 +70,7 @@ static_library("browser") { +@@ -69,7 +69,7 @@ static_library("browser") { "//url", ] - if (!is_ios) { + if (false) { sources += [ - "cookie_settings_policy_handler.cc", - "cookie_settings_policy_handler.h", -@@ -82,8 +82,6 @@ static_library("browser") { + "insecure_private_network_policy_handler.cc", + "insecure_private_network_policy_handler.h", +@@ -78,8 +78,6 @@ static_library("browser") { + if (use_blink) { deps += [ - "//components/permissions:permissions_common", - "//components/policy:generated", - "//components/policy/core/browser", "//components/privacy_sandbox:privacy_sandbox_prefs", ] } +@@ -93,7 +91,7 @@ source_set("cookie_settings") { + "cookie_settings.h", + ] + +- if (!is_ios) { ++ if (false) { + sources += [ + "cookie_settings_policy_handler.cc", + "cookie_settings_policy_handler.h", --- src/electron/chromium_src/BUILD.gn.orig +++ src/electron/chromium_src/BUILD.gn @@ -466,7 +466,7 @@ source_set("chrome_spellchecker") { @@ -179,7 +191,7 @@ "//device/vr/buildflags", ] } ---- src/components/search_engines/BUILD.gn.old +--- src/components/search_engines/BUILD.gn.orig +++ src/components/search_engines/BUILD.gn @@ -15,45 +15,23 @@ static_library("search_engines") { "choice_made_location.h", @@ -196,8 +208,8 @@ "keyword_web_data_service.h", - "search_engine_choice/search_engine_choice_service.cc", - "search_engine_choice/search_engine_choice_service.h", -- "search_engine_choice_utils.cc", -- "search_engine_choice_utils.h", +- "search_engine_choice/search_engine_choice_utils.cc", +- "search_engine_choice/search_engine_choice_utils.h", "search_engines_pref_names.h", - "search_host_to_urls_map.cc", - "search_host_to_urls_map.h", @@ -227,7 +239,7 @@ ] public_deps = [ -@@ -69,20 +47,14 @@ static_library("search_engines") { +@@ -68,21 +46,14 @@ static_library("search_engines") { "//components/sync", "//components/webdata/common", "//third_party/metrics_proto", @@ -240,6 +252,7 @@ "//components/database_utils", - "//components/infobars/core", - "//components/lens:lens", +- "//components/lens/proto/server:proto", "//components/omnibox/common", - "//components/policy:generated", - "//components/policy/core/browser", @@ -248,7 +261,7 @@ "//components/signin/public/base", "//components/strings", "//components/url_formatter", -@@ -94,7 +66,6 @@ static_library("search_engines") { +@@ -94,7 +65,6 @@ static_library("search_engines") { "//services/network/public/mojom", "//sql", "//third_party/metrics_proto", @@ -256,7 +269,16 @@ "//ui/base", "//ui/gfx", "//ui/gfx/geometry", -@@ -120,7 +91,7 @@ static_library("search_engines") { +@@ -112,7 +82,7 @@ static_library("search_engines") { + deps += [ "//components/search_engines/android:jni_headers" ] + } + +- if (!is_android) { ++ if (false) { + sources += [ "search_engine_choice/generated_marketing_snippets.cc" ] + deps += [ + ":generate_search_engine_icons", +@@ -121,7 +91,7 @@ static_library("search_engines") { ] } @@ -278,4 +300,51 @@ ] deps = [ +--- src/extensions/common/BUILD.gn.orig ++++ src/extensions/common/BUILD.gn +@@ -301,8 +301,6 @@ static_library("common") { + "extension_set.cc", + "extension_set.h", + "extension_updater_uma.h", +- "extension_urls.cc", +- "extension_urls.h", + "extension_utility_types.h", + "extensions_client.cc", + "extensions_client.h", +@@ -498,8 +496,6 @@ static_library("common") { + "//components/crash/core/common", + "//components/crx_file", + "//components/nacl/common:buildflags", +- "//components/safe_browsing/core/common", +- "//components/safe_browsing/core/common/hashprefix_realtime:hash_realtime_utils", + "//components/url_formatter", + "//components/url_matcher", + "//components/version_info", +--- src/components/password_manager/core/browser/password_manager_switches.cc.orig 2024-07-24 12:50:49.362463800 +0200 ++++ src/components/password_manager/core/browser/password_manager_switches.cc 2024-08-04 16:04:17.829459300 +0200 +@@ -10,11 +10,9 @@ namespace password_manager { + // Specifies which encryption storage backend to use. Possible values are + // kwallet, kwallet5, kwallet6, gnome-libsecret, basic. + // Any other value will lead to Chrome detecting the best backend automatically. +-const char kPasswordStore[] = "password-store"; + + // Enables the feature of allowing the user to disable the backend via a + // setting. +-const char kEnableEncryptionSelection[] = "enable-encryption-selection"; + #endif // BUILDFLAG(IS_LINUX) + + } // namespace password_manager +--- src/components/password_manager/core/browser/password_manager_switches.h.orig 2024-07-24 12:50:49.362463800 +0200 ++++ src/components/password_manager/core/browser/password_manager_switches.h 2024-08-04 16:03:48.687376900 +0200 +@@ -11,8 +11,8 @@ + namespace password_manager { + + #if BUILDFLAG(IS_LINUX) +-extern const char kPasswordStore[]; +-extern const char kEnableEncryptionSelection[]; ++inline constexpr const char kPasswordStore[] = "password-store"; ++inline constexpr const char kEnableEncryptionSelection[] = "enable-encryption-selection"; + #endif + + } // namespace password_manager ++++++ remove-rust.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.417306888 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.421307055 +0200 @@ -15,7 +15,7 @@ @@ -1972,7 +1972,6 @@ static_library("browser") { "//chrome/browser/profiling_host", - # TODO(crbug.com/1335199): break this dep when favicon is in its own target + # TODO(crbug.com/40228447): break this dep when favicon is in its own target - "//chrome/browser/share", "//chrome/browser/ui", "//chrome/browser/storage_access_api", @@ -35,7 +35,7 @@ - "//chrome/browser/share/proto:proto", "//chrome/browser/smart_card", "//chrome/browser/support_tool:support_tool_proto", - "//chrome/browser/ui/actions:actions_headers", + "//chrome/browser/themes", @@ -8407,7 +8404,6 @@ static_library("test_support") { "//build:chromeos_buildflags", "//chrome/app/theme:theme_resources", @@ -52,8 +52,8 @@ "//chrome/browser/safe_browsing", - "//chrome/browser/share", "//chrome/browser/storage_access_api", + "//chrome/browser/themes", "//chrome/browser/ui/side_panel:side_panel_enums", - "//chrome/browser/ui/webui/location_internals:mojo_bindings", @@ -591,7 +590,6 @@ static_library("ui") { "//components/privacy_sandbox:tracking_protection_settings", "//components/profile_metrics", @@ -62,9 +62,20 @@ "//components/query_parser", "//components/reading_list/core", "//components/reading_list/features:flags", +--- src/build/rust/rust_target.gni.orig ++++ src/build/rust/rust_target.gni +@@ -7,7 +7,7 @@ import("//build/rust/rust_unit_test.gni" + + # The //build directory is re-used for non-Chromium products. We do not support + # cxx bindings in such contexts, because //third_party may be missing. +-if (build_with_chromium) { ++if (false) { + import("//third_party/rust/cxx/chromium_integration/rust_cxx.gni") + } + --- src/chrome/test/BUILD.gn.orig +++ src/chrome/test/BUILD.gn -@@ -1923,7 +1923,6 @@ if (!is_android) { +@@ -1942,7 +1942,6 @@ if (!is_android) { "//components/privacy_sandbox/privacy_sandbox_attestations:test_support", "//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto", "//components/proxy_config", @@ -72,15 +83,23 @@ "//components/reading_list/core", "//components/reading_list/features:flags", "//components/resources", -@@ -6774,7 +6773,6 @@ test("unit_tests") { +@@ -5593,7 +5592,6 @@ if (!is_android) { + if (!is_chromeos) { + sources += [ "../browser/webauthn/enclave_authenticator_browsertest.cc" ] + deps += [ +- "//chrome/browser/webauthn:test_support", + "//components/os_crypt/sync:test_support", + ] + } +@@ -6867,7 +6865,6 @@ test("unit_tests") { "//chrome/browser/safe_browsing:metrics_collector", "//chrome/browser/safe_browsing:verdict_cache_manager_factory", "//chrome/browser/segmentation_platform:test_utils", - "//chrome/browser/share", "//chrome/browser/sharing/proto", "//chrome/browser/storage_access_api", - "//chrome/browser/sync_file_system/drive_backend:sync_file_system_drive_proto", -@@ -6927,7 +6925,6 @@ test("unit_tests") { + "//chrome/browser/supervised_user:test_support", +@@ -7028,7 +7025,6 @@ test("unit_tests") { "//components/privacy_sandbox/privacy_sandbox_attestations:test_support", "//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto", "//components/proxy_config", @@ -88,16 +107,21 @@ "//components/query_parser", "//components/query_tiles:unit_tests", "//components/reading_list/core", -@@ -8360,11 +8357,6 @@ test("unit_tests") { - - data += [ "//ash/components/arc/test/data/icons/" ] - -- data_deps += [ -- # enclave_manager_unittest.cc runs this binary as part of its testing -- # process. -- "//third_party/cloud_authenticator/test/local_service:cloud_authenticator_test_service", -- ] - - if (include_js2gtest_tests && is_chromeos_ash) { - data += js2gtest_js_libraries +@@ -7193,7 +7189,6 @@ test("unit_tests") { + "//third_party/metrics_proto", + "//third_party/microsoft_webauthn", + "//third_party/re2", +- "//third_party/rust/fend_core/v1/wrapper:unit_tests", + "//third_party/webrtc_overrides:webrtc_component", + "//third_party/widevine/cdm:headers", + "//third_party/zlib/google:compression_utils", +@@ -8443,8 +8438,6 @@ test("unit_tests") { + "//chrome/browser/ui/webui/side_panel/performance_controls:mojo_bindings", + "//chrome/browser/ui/webui/side_panel/user_notes:mojo_bindings", + "//chrome/browser/web_applications:web_applications_test_support", +- "//chrome/browser/webauthn:test_support", +- "//chrome/browser/webauthn/proto", + "//chrome/common/accessibility:mojo_bindings", + "//components/app_constants", + "//components/color", ++++++ remove-sync.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.437307722 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.441307889 +0200 @@ -180,38 +180,51 @@ bool is_loaded_; --- src/device/fido/BUILD.gn.orig +++ src/device/fido/BUILD.gn -@@ -148,20 +148,6 @@ component("fido") { - "device_operation.h", - "device_response_converter.cc", - "device_response_converter.h", -- "enclave/constants.cc", -- "enclave/constants.h", -- "enclave/enclave_authenticator.cc", -- "enclave/enclave_authenticator.h", -- "enclave/enclave_discovery.cc", -- "enclave/enclave_discovery.h", -- "enclave/enclave_protocol_utils.cc", -- "enclave/enclave_protocol_utils.h", -- "enclave/enclave_websocket_client.cc", -- "enclave/enclave_websocket_client.h", -- "enclave/transact.cc", -- "enclave/transact.h", -- "enclave/types.cc", -- "enclave/types.h", - "fido_authenticator.cc", - "fido_authenticator.h", - "fido_device.cc", -@@ -229,7 +215,6 @@ component("fido") { - ] - - deps += [ -- "//components/sync/protocol:protocol", - "//services/device/public/cpp/hid", - "//services/device/public/cpp/usb", - "//services/device/public/mojom", +@@ -163,33 +163,6 @@ component("fido") { + "device_operation.h", + "device_response_converter.cc", + "device_response_converter.h", +- "enclave/constants.cc", +- "enclave/constants.h", +- "enclave/enclave_authenticator.cc", +- "enclave/enclave_authenticator.h", +- "enclave/enclave_discovery.cc", +- "enclave/enclave_discovery.h", +- "enclave/enclave_protocol_utils.cc", +- "enclave/enclave_protocol_utils.h", +- "enclave/enclave_websocket_client.cc", +- "enclave/enclave_websocket_client.h", +- "enclave/metrics.cc", +- "enclave/metrics.h", +- "enclave/transact.cc", +- "enclave/transact.h", +- "enclave/types.cc", +- "enclave/types.h", +- "enclave/verify/claim.cc", +- "enclave/verify/claim.h", +- "enclave/verify/endorsement.cc", +- "enclave/verify/endorsement.h", +- "enclave/verify/hash.cc", +- "enclave/verify/hash.h", +- "enclave/verify/rekor.cc", +- "enclave/verify/rekor.h", +- "enclave/verify/utils.cc", +- "enclave/verify/utils.h", +- "enclave/verify/verify.h", + "fido_authenticator.cc", + "fido_authenticator.h", + "fido_device.cc", +@@ -256,7 +229,6 @@ component("fido") { + ] + + deps += [ +- "//components/sync/protocol:protocol", + "//services/device/public/cpp/hid", + "//services/device/public/cpp/usb", + "//services/device/public/mojom", --- src/device/fido/fido_discovery_factory.cc.orig +++ src/device/fido/fido_discovery_factory.cc -@@ -37,7 +37,7 @@ +@@ -38,7 +38,7 @@ #include "device/fido/cros/discovery.h" #endif // BUILDFLAG(IS_CHROMEOS) @@ -220,38 +233,15 @@ #include "device/fido/enclave/enclave_discovery.h" #endif -@@ -108,7 +108,7 @@ std::vector<std::unique_ptr<FidoDiscover - #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) - discoveries = MaybeCreatePlatformDiscovery(); - #endif --#if !BUILDFLAG(IS_CHROMEOS) -+#if 0 - MaybeCreateEnclaveDiscovery(discoveries); - #endif - return discoveries; -@@ -183,11 +183,13 @@ void FidoDiscoveryFactory::set_hid_ignor - hid_ignore_list_ = std::move(hid_ignore_list); - } +@@ -127,7 +127,7 @@ std::vector<std::unique_ptr<FidoDiscover + std::optional<std::unique_ptr<FidoDiscoveryBase>> + FidoDiscoveryFactory::MaybeCreateEnclaveDiscovery() { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if 0 - void FidoDiscoveryFactory::set_enclave_passkey_creation_callback( - base::RepeatingCallback<void(sync_pb::WebauthnCredentialSpecifics)> - callback) { - enclave_passkey_creation_callback_ = callback; - } -+#endif - - void FidoDiscoveryFactory::set_enclave_ui_request_stream( - std::unique_ptr<FidoDiscoveryBase::EventStream< -@@ -266,7 +268,7 @@ void FidoDiscoveryFactory:: - } - #endif - --#if !BUILDFLAG(IS_CHROMEOS) -+#if 0 - void FidoDiscoveryFactory::MaybeCreateEnclaveDiscovery( - std::vector<std::unique_ptr<FidoDiscoveryBase>>& discoveries) { if (!base::FeatureList::IsEnabled(kWebAuthnEnclaveAuthenticator) || + !enclave_ui_request_stream_ || !network_context_factory_) { + return std::nullopt; --- src/device/fido/fido_discovery_factory.h.orig +++ src/device/fido/fido_discovery_factory.h @@ -15,7 +15,6 @@ @@ -262,23 +252,4 @@ #include "device/fido/cable/cable_discovery_data.h" #include "device/fido/cable/v2_constants.h" #include "device/fido/ctap_get_assertion_request.h" -@@ -99,9 +98,6 @@ class COMPONENT_EXPORT(DEVICE_FIDO) Fido - - // Provides a callback that will be called when a passkey is created with - // the enclave authenticator in order to save the new passkey to sync data. -- void set_enclave_passkey_creation_callback( -- base::RepeatingCallback<void(sync_pb::WebauthnCredentialSpecifics)> -- callback); - - void set_enclave_ui_request_stream( - std::unique_ptr<FidoDiscoveryBase::EventStream< -@@ -192,8 +188,6 @@ class COMPONENT_EXPORT(DEVICE_FIDO) Fido - get_assertion_request_for_legacy_credential_check_; - #endif // BUILDFLAG(IS_CHROMEOS) - base::flat_set<VidPid> hid_ignore_list_; -- base::RepeatingCallback<void(sync_pb::WebauthnCredentialSpecifics)> -- enclave_passkey_creation_callback_; - std::unique_ptr<FidoDiscoveryBase::EventStream< - std::unique_ptr<enclave::CredentialRequest>>> - enclave_ui_request_stream_; ++++++ run_segmenter-missing-optional.patch ++++++ >From 42fc562599d784a8a646703ce3b7c158ce1a8466 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz <jdap...@igalia.com> Date: Wed, 15 May 2024 14:01:03 +0000 Subject: [PATCH] IWYU: missing include for usage of std::optional in run_segmenter.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: 41455655 Change-Id: If28c13730926447b1d362ecfe08ae0bc44112876 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5539811 Commit-Queue: José Dapena Paz <jdap...@igalia.com> Reviewed-by: Florin Malita <fmal...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1301267} --- .../blink/renderer/platform/fonts/shaping/run_segmenter.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h index 406c4070e91489..116f17dae944a7 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h +++ b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h @@ -6,7 +6,10 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_RUN_SEGMENTER_H_ #include <unicode/uscript.h> + #include <memory> +#include <optional> + #include "third_party/blink/renderer/platform/fonts/font_orientation.h" #include "third_party/blink/renderer/platform/fonts/orientation_iterator.h" #include "third_party/blink/renderer/platform/fonts/script_run_iterator.h" ++++++ system-six.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.513310894 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.517311061 +0200 @@ -8,7 +8,7 @@ @@ -156,7 +156,8 @@ def Run(self): parser = optparse.OptionParser() - # TODO(crbug.com/614082): Remove this once the bug is fixed. + # TODO(crbug.com/41255210): Remove this once the bug is fixed. - parser.add_option('-w', '--wrap', action="store_true", default=False, + parser.add_option('-w', '--fake-option', action="store_true", default=False) + parser.add_option('--wrap', action="store_true", default=False, ++++++ text_decoder-missing-optional.patch ++++++ >From d852bf71654ae63d5e8e6624652584a9adf1df6f Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz <jdap...@igalia.com> Date: Wed, 15 May 2024 17:35:08 +0000 Subject: [PATCH] IWYU: missing include for usage of std::optional in text_decoder.h Bug: 41455655 Change-Id: I8902831e823760d455ca274bfe45b44be9e947f5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5541275 Reviewed-by: Joshua Bell <jsb...@chromium.org> Commit-Queue: Joshua Bell <jsb...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1301397} --- third_party/blink/renderer/modules/encoding/text_decoder.h | 1 + 1 file changed, 1 insertion(+) diff --git a/third_party/blink/renderer/modules/encoding/text_decoder.h b/third_party/blink/renderer/modules/encoding/text_decoder.h index 02452acb7306b6..9a947aab21b255 100644 --- a/third_party/blink/renderer/modules/encoding/text_decoder.h +++ b/third_party/blink/renderer/modules/encoding/text_decoder.h @@ -32,6 +32,7 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_ENCODING_TEXT_DECODER_H_ #include <memory> +#include <optional> #include "third_party/blink/renderer/bindings/core/v8/v8_typedefs.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_text_decode_options.h" ++++++ wayland-proto-31-cursor-shape.patch ++++++ --- /var/tmp/diff_new_pack.ToR7Q6/_old 2024-09-17 18:19:07.553312563 +0200 +++ /var/tmp/diff_new_pack.ToR7Q6/_new 2024-09-17 18:19:07.557312730 +0200 @@ -431,121 +431,6 @@ // Translate physical pixels to DIPs. gfx::Point hotspot_in_dips = gfx::ScaleToRoundedPoint( cursor->hotspot(), 1.0f / cursor->cursor_image_scale_factor()); -diff --git a/ui/ozone/platform/wayland/host/wayland_window_unittest.cc b/ui/ozone/platform/wayland/host/wayland_window_unittest.cc -index 49dcdfed360fe..7a1640bc6f045 100644 ---- a/ui/ozone/platform/wayland/host/wayland_window_unittest.cc -+++ b/ui/ozone/platform/wayland/host/wayland_window_unittest.cc -@@ -11,6 +11,7 @@ - #include <utility> - #include <vector> - -+#include <cursor-shape-v1-client-protocol.h> - #include <cursor-shapes-unstable-v1-client-protocol.h> - #include <linux/input.h> - #include <wayland-server-core.h> -@@ -51,6 +52,7 @@ - #include "ui/ozone/platform/wayland/common/wayland_util.h" - #include "ui/ozone/platform/wayland/host/wayland_buffer_manager_host.h" - #include "ui/ozone/platform/wayland/host/wayland_connection_test_api.h" -+#include "ui/ozone/platform/wayland/host/wayland_cursor_shape.h" - #include "ui/ozone/platform/wayland/host/wayland_event_source.h" - #include "ui/ozone/platform/wayland/host/wayland_output.h" - #include "ui/ozone/platform/wayland/host/wayland_output_manager.h" -@@ -146,6 +148,16 @@ wl::ScopedWlArray MakeStateArray(const std::vector<int32_t> states) { - return wl::ScopedWlArray(states); - } - -+class MockCursorShape : public WaylandCursorShape { -+ public: -+ MockCursorShape() : WaylandCursorShape(nullptr, nullptr) {} -+ MockCursorShape(const MockCursorShape&) = delete; -+ MockCursorShape& operator=(const MockCursorShape&) = delete; -+ ~MockCursorShape() override = default; -+ -+ MOCK_METHOD(void, SetCursorShape, (uint32_t), (override)); -+}; -+ - class MockZcrCursorShapes : public WaylandZcrCursorShapes { - public: - MockZcrCursorShapes() : WaylandZcrCursorShapes(nullptr, nullptr) {} -@@ -264,6 +276,14 @@ class WaylandWindowTest : public WaylandTest { - hit_tests->push_back(static_cast<int>(HTTOPRIGHT)); - } - -+ MockCursorShape* InstallMockCursorShape() { -+ auto zcr_cursor_shapes = std::make_unique<MockCursorShape>(); -+ MockCursorShape* mock_cursor_shapes = zcr_cursor_shapes.get(); -+ WaylandConnectionTestApi test_api(connection_.get()); -+ test_api.SetCursorShape(std::move(zcr_cursor_shapes)); -+ return mock_cursor_shapes; -+ } -+ - MockZcrCursorShapes* InstallMockZcrCursorShapes() { - auto zcr_cursor_shapes = std::make_unique<MockZcrCursorShapes>(); - MockZcrCursorShapes* mock_cursor_shapes = zcr_cursor_shapes.get(); -@@ -1692,6 +1712,62 @@ TEST_P(WaylandWindowTest, CanDispatchMouseEventFocus) { - EXPECT_TRUE(window_->CanDispatchEvent(&test_mouse_event_)); - } - -+TEST_P(WaylandWindowTest, SetCursorUsesCursorShapeForCommonTypes) { -+ SetPointerFocusedWindow(window_.get()); -+ MockCursorShape* mock_cursor_shape = InstallMockCursorShape(); -+ -+ // Verify some commonly-used cursors. -+ EXPECT_CALL(*mock_cursor_shape, -+ SetCursorShape(WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_DEFAULT)); -+ auto pointer_cursor = AsPlatformCursor( -+ base::MakeRefCounted<BitmapCursor>(mojom::CursorType::kPointer)); -+ window_->SetCursor(pointer_cursor.get()); -+ -+ EXPECT_CALL(*mock_cursor_shape, -+ SetCursorShape(WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_POINTER)); -+ auto hand_cursor = AsPlatformCursor( -+ base::MakeRefCounted<BitmapCursor>(mojom::CursorType::kHand)); -+ window_->SetCursor(hand_cursor.get()); -+ -+ EXPECT_CALL(*mock_cursor_shape, -+ SetCursorShape(WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_TEXT)); -+ auto ibeam_cursor = AsPlatformCursor( -+ base::MakeRefCounted<BitmapCursor>(mojom::CursorType::kIBeam)); -+ window_->SetCursor(ibeam_cursor.get()); -+} -+ -+TEST_P(WaylandWindowTest, SetCursorCallsCursorShapeOncePerCursor) { -+ SetPointerFocusedWindow(window_.get()); -+ MockCursorShape* mock_cursor_shape = InstallMockCursorShape(); -+ auto hand_cursor = AsPlatformCursor( -+ base::MakeRefCounted<BitmapCursor>(mojom::CursorType::kHand)); -+ // Setting the same cursor twice on the client only calls the server once. -+ EXPECT_CALL(*mock_cursor_shape, SetCursorShape(_)).Times(1); -+ window_->SetCursor(hand_cursor.get()); -+ window_->SetCursor(hand_cursor.get()); -+} -+ -+TEST_P(WaylandWindowTest, SetCursorDoesNotUseCursorShapeForNoneCursor) { -+ SetPointerFocusedWindow(window_.get()); -+ MockCursorShape* mock_cursor_shape = InstallMockCursorShape(); -+ EXPECT_CALL(*mock_cursor_shape, SetCursorShape(_)).Times(0); -+ auto none_cursor = AsPlatformCursor( -+ base::MakeRefCounted<BitmapCursor>(mojom::CursorType::kNone)); -+ window_->SetCursor(none_cursor.get()); -+} -+ -+TEST_P(WaylandWindowTest, SetCursorDoesNotUseCursorShapeForCustomCursors) { -+ SetPointerFocusedWindow(window_.get()); -+ MockCursorShape* mock_cursor_shape = InstallMockCursorShape(); -+ -+ // Custom cursors require bitmaps, so they do not use server-side cursors. -+ EXPECT_CALL(*mock_cursor_shape, SetCursorShape(_)).Times(0); -+ auto custom_cursor = AsPlatformCursor( -+ base::MakeRefCounted<BitmapCursor>(mojom::CursorType::kCustom, SkBitmap(), -+ gfx::Point(), kDefaultCursorScale)); -+ window_->SetCursor(custom_cursor.get()); -+} -+ - TEST_P(WaylandWindowTest, SetCursorUsesZcrCursorShapesForCommonTypes) { - SetPointerFocusedWindow(window_.get()); - MockZcrCursorShapes* mock_cursor_shapes = InstallMockZcrCursorShapes(); diff --git a/ui/ozone/platform/wayland/host/wayland_zcr_cursor_shapes.cc b/ui/ozone/platform/wayland/host/wayland_zcr_cursor_shapes.cc index 9e3243dceea20..297c48e614087 100644 --- a/ui/ozone/platform/wayland/host/wayland_zcr_cursor_shapes.cc ++++++ webp-no-sharpyuv.patch ++++++ Electron does not actually use sharpyuv. This enables buillding it on Leap which has old webp --- src/build/linux/unbundle/libwebp.gn.orig 2024-07-24 12:50:43.685795800 +0200 +++ src/build/linux/unbundle/libwebp.gn 2024-08-04 21:34:09.357750400 +0200 @@ -13,10 +13,6 @@ pkg_config("system_libwebp") { ] } -pkg_config("system_libsharpyuv") { - packages = [ "libsharpyuv" ] -} - shim_headers("libwebp_shim") { root_path = "src/src" headers = [ @@ -44,7 +40,6 @@ source_set("libwebp_webp") { source_set("libwebp_sharpyuv") { deps = [ ":libsharpyuv_shim" ] - public_configs = [ ":system_libsharpyuv" ] } group("libwebp") {