diff --git a/ANNOTATE_CONTIGUOUS_CONTAINER-Wodr.patch b/ANNOTATE_CONTIGUOUS_CONTAINER-Wodr.patch new file mode 100644 index 0000000..b2039c5 --- /dev/null +++ b/ANNOTATE_CONTIGUOUS_CONTAINER-Wodr.patch @@ -0,0 +1,229 @@ +This collides with an abseil macro causing ODR miscompiles + +diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h src/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h +--- src.old/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h 2025-08-15 17:32:29.517405064 +0200 ++++ src/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h 2025-08-17 14:47:13.834152160 +0200 +@@ -100,9 +100,9 @@ HeapVectorBacking::~HeapVecto + const size_t length = object_size / sizeof(T); + using ByteBuffer = uint8_t*; + ByteBuffer payload = reinterpret_cast(this); +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + ANNOTATE_CHANGE_SIZE(payload, length * sizeof(T), 0, length * sizeof(T)); +-#endif // ANNOTATE_CONTIGUOUS_CONTAINER ++#endif // WTF_ANNOTATE_CONTIGUOUS_CONTAINER + // HeapVectorBacking calls finalizers for unused slots and expects them to be + // no-ops. + if (std::is_polymorphic::value) { +@@ -176,11 +176,11 @@ struct TraceInCollectionTrait::GetSize( + *reinterpret_cast(self)) / + sizeof(T); +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + // As commented above, HeapVectorBacking can trace unused slots (which are + // already zeroed out). + ANNOTATE_CHANGE_SIZE(array, length, 0, length); +-#endif // ANNOTATE_CONTIGUOUS_CONTAINER ++#endif // WTF_ANNOTATE_CONTIGUOUS_CONTAINER + if constexpr (IsTraceable::value) { + for (unsigned i = 0; i < length; ++i) { + if (!std::is_polymorphic_v || +diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/heap/test/heap_test.cc src/third_party/blink/renderer/platform/heap/test/heap_test.cc +--- src.old/third_party/blink/renderer/platform/heap/test/heap_test.cc 2025-08-15 17:32:29.517405064 +0200 ++++ src/third_party/blink/renderer/platform/heap/test/heap_test.cc 2025-08-17 14:47:13.834152160 +0200 +@@ -854,7 +854,7 @@ TEST_F(HeapTest, HeapVectorShrinkInlineC + // Vector inline buffers are disabled; that constraint should be attempted + // removed, but until that time, disable testing handling of capacities + // of inline buffers. +-#if !defined(ANNOTATE_CONTIGUOUS_CONTAINER) ++#if !defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER) + // Shrinking switches the buffer from the external one to the inline one. + vector1.Shrink(kInlineCapacity - 1); + vector1.shrink_to_fit(); +@@ -2446,7 +2446,7 @@ class InlinedVectorObjectWithVtableWrapp + + // TODO(Oilpan): when Vector.h's contiguous container support no longer disables + // Vector<>s with inline capacity, enable this test. +-#if !defined(ANNOTATE_CONTIGUOUS_CONTAINER) ++#if !defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER) + TEST_F(HeapTest, VectorDestructorsWithVtable) { + ClearOutOldGarbage(); + InlinedVectorObjectWithVtable::destructor_calls_ = 0; +diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/sparse_vector_test.cc src/third_party/blink/renderer/platform/sparse_vector_test.cc +--- src.old/third_party/blink/renderer/platform/sparse_vector_test.cc 2025-08-15 17:32:29.549405057 +0200 ++++ src/third_party/blink/renderer/platform/sparse_vector_test.cc 2025-08-17 14:47:13.846152160 +0200 +@@ -240,9 +240,9 @@ TEST(SparseVectorPtrTest, SettingToNullp + EXPECT_FALSE(sparse_vector.HasField(FieldId::kFoo)); + } + +-// WTF::Vector always uses 0 inline capacity when ANNOTATE_CONTIGUOUS_CONTAINER ++// WTF::Vector always uses 0 inline capacity when WTF_ANNOTATE_CONTIGUOUS_CONTAINER + // is defined. +-#ifndef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifndef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + TEST(SparseVectorInlineCapacityTest, Basic) { + SparseVector sparse_vector; + EXPECT_EQ(16u, sparse_vector.capacity()); +diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/wtf/container_annotations.h src/third_party/blink/renderer/platform/wtf/container_annotations.h +--- src.old/third_party/blink/renderer/platform/wtf/container_annotations.h 2025-08-15 17:32:29.573405052 +0200 ++++ src/third_party/blink/renderer/platform/wtf/container_annotations.h 2025-08-17 14:47:13.842152160 +0200 +@@ -18,7 +18,7 @@ + // documentation: + // https://github.com/llvm-mirror/compiler-rt/blob/master/include/sanitizer/common_interface_defs.h#L154 + +-#define ANNOTATE_CONTIGUOUS_CONTAINER ++#define WTF_ANNOTATE_CONTIGUOUS_CONTAINER + + #define ANNOTATE_NEW_BUFFER(buffer, capacity, newSize) \ + if (buffer) { \ +diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/wtf/size_assertions.cc src/third_party/blink/renderer/platform/wtf/size_assertions.cc +--- src.old/third_party/blink/renderer/platform/wtf/size_assertions.cc 2025-08-15 17:32:29.577405052 +0200 ++++ src/third_party/blink/renderer/platform/wtf/size_assertions.cc 2025-08-17 14:47:13.838152160 +0200 +@@ -61,7 +61,7 @@ struct SameSizeAsVectorWithInlineCapacit + template + struct SameSizeAsVectorWithInlineCapacity { + SameSizeAsVectorWithInlineCapacity base_capacity; +-#if !defined(ANNOTATE_CONTIGUOUS_CONTAINER) ++#if !defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER) + T inline_buffer[inlineCapacity]; + #endif + }; +diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/wtf/vector.h src/third_party/blink/renderer/platform/wtf/vector.h +--- src.old/third_party/blink/renderer/platform/wtf/vector.h 2025-08-15 17:32:29.581405051 +0200 ++++ src/third_party/blink/renderer/platform/wtf/vector.h 2025-08-17 14:47:13.842152160 +0200 +@@ -59,7 +59,7 @@ + + // For ASAN builds, disable inline buffers completely as they cause various + // issues. +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + #define INLINE_CAPACITY 0 + #else + #define INLINE_CAPACITY InlineCapacity +@@ -471,7 +471,7 @@ class VectorBufferBase { + } + + void CheckUnusedSlots(const T* from, const T* to) { +-#if DCHECK_IS_ON() && !defined(ANNOTATE_CONTIGUOUS_CONTAINER) ++#if DCHECK_IS_ON() && !defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER) + if constexpr (NeedsToClearUnusedSlots()) { + const unsigned char* unused_area = + reinterpret_cast(from); +@@ -606,7 +606,7 @@ class VectorBuffer : pr + DCHECK(buffer_); + DCHECK_LT(new_capacity, capacity()); + size_t size_to_allocate = AllocationSize(new_capacity); +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + ANNOTATE_DELETE_BUFFER(buffer_, capacity_, size_); + #endif + bool succeeded = false; +@@ -615,7 +615,7 @@ class VectorBuffer : pr + capacity_ = static_cast(size_to_allocate / sizeof(T)); + succeeded = true; + } +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + MARKING_AWARE_ANNOTATE_NEW_BUFFER(Allocator, buffer_, capacity_, size_); + #endif + return succeeded; +@@ -740,7 +740,7 @@ class VectorBuffer : protected VectorBuf + DCHECK_NE(buffer_, InlineBuffer()); + size_t new_size = AllocationSize(new_capacity); + bool succeeded = false; +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + ANNOTATE_DELETE_BUFFER(buffer_, capacity_, size_); + #endif + if (Allocator::ShrinkVectorBacking(buffer_, AllocationSize(capacity()), +@@ -748,7 +748,7 @@ class VectorBuffer : protected VectorBuf + capacity_ = static_cast(new_size / sizeof(T)); + succeeded = true; + } +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + MARKING_AWARE_ANNOTATE_NEW_BUFFER(Allocator, buffer_, capacity_, size_); + #endif + return succeeded; +@@ -2145,7 +2145,7 @@ void Vector 0) { +@@ -2160,7 +2160,7 @@ void Vector + ALWAYS_INLINE void Vector::UncheckedAppend( + U&& val) { +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + // Vectors in ASAN builds don't have InlineCapacity. + push_back(std::forward(val)); + #else +@@ -2460,10 +2460,10 @@ void TraceInlinedBuffer(VisitorDispatche + const T* buffer_begin, + size_t capacity) { + const T* buffer_end = buffer_begin + capacity; +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + // Vector can trace unused slots (which are already zeroed out). + ANNOTATE_CHANGE_SIZE(buffer_begin, capacity, 0, capacity); +-#endif // ANNOTATE_CONTIGUOUS_CONTAINER ++#endif // WTF_ANNOTATE_CONTIGUOUS_CONTAINER + for (const T* buffer_entry = buffer_begin; buffer_entry != buffer_end; + buffer_entry++) { + Allocator::template Trace>(visitor, *buffer_entry); +@@ -2542,7 +2542,7 @@ void Vector vector_a; + vector_a.push_back(10); +@@ -415,7 +415,7 @@ TEST(VectorTest, ContainerAnnotations) { + volatile int* int_pointer_b3 = vector_b.data(); + EXPECT_DEATH((void)int_pointer_b3[2], "container-overflow"); + } +-#endif // defined(ANNOTATE_CONTIGUOUS_CONTAINER) ++#endif // defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER) + + class Comparable {}; + bool operator==(const Comparable& a, const Comparable& b) { +--- src/third_party/blink/renderer/core/html/parser/literal_buffer.h.orig 2025-08-15 17:32:29.197405123 +0200 ++++ src/third_party/blink/renderer/core/html/parser/literal_buffer.h 2025-08-17 16:56:06.586499195 +0200 +@@ -22,7 +22,7 @@ + + // For ASAN builds, disable inline buffers completely as they cause various + // issues. +-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER ++#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER + #define BUFFER_INLINE_CAPACITY 0 + #else + #define BUFFER_INLINE_CAPACITY kInlineSize diff --git a/MakeSbixTypeface-null-pointer-call.patch b/MakeSbixTypeface-null-pointer-call.patch deleted file mode 100644 index 8017a64..0000000 --- a/MakeSbixTypeface-null-pointer-call.patch +++ /dev/null @@ -1,16 +0,0 @@ -Actually disable the fontations code flag since we don't build that library. Otherwise chromium crashes with a null dereference - ---- src/third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-04-21 18:29:28.190307211 +0200 -+++ src/third_party/blink/renderer/platform/runtime_enabled_features.json5 2025-04-21 23:33:49.257769003 +0200 -@@ -2165,11 +2165,9 @@ - }, - { - name: "FontationsFontBackend", -- status: "stable", - }, - { - name: "FontationsForSelectedFormats", -- status: "stable", - }, - { - name: "FontFamilyPostscriptMatchingCTMigration", diff --git a/angle-BlobCache-Success.patch b/angle-BlobCache-Success.patch new file mode 100644 index 0000000..c971278 --- /dev/null +++ b/angle-BlobCache-Success.patch @@ -0,0 +1,14 @@ +--- src/third_party/angle/src/common/vulkan/vk_headers.h.orig 2025-08-15 17:33:15.429396781 +0200 ++++ src/third_party/angle/src/common/vulkan/vk_headers.h 2025-08-15 21:50:06.831979165 +0200 +@@ -16,6 +16,11 @@ + # include + #endif + ++// braindead change https://chromium-review.googlesource.com/c/angle/angle/+/5273491 ++#undef Success ++#undef None ++#undef Always ++ + #if !defined(ANGLE_SHARED_LIBVULKAN) + + namespace rx diff --git a/aom3.10-AV1E_SET_AUTO_TILES.patch b/aom3.10-AV1E_SET_AUTO_TILES.patch deleted file mode 100644 index c56daf4..0000000 --- a/aom3.10-AV1E_SET_AUTO_TILES.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0b4b5b0ae81dca83d3d602e905732e2c82bd340d Mon Sep 17 00:00:00 2001 -From: Sergey Silkin -Date: Fri, 30 Aug 2024 13:37:32 +0200 -Subject: [PATCH] Use AV1E_SET_AUTO_TILES - -Delegate control over number of times to encoder using AV1E_SET_AUTO_TILES that was added in https://aomedia-review.googlesource.com/c/aom/+/191102. - -Bug: webrtc:351644568 -Change-Id: I87ed11734e907c7f6c6508ac7389c84ececf5b21 -Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361140 -Commit-Queue: Sergey Silkin -Reviewed-by: Marco Paniconi -Cr-Commit-Position: refs/heads/main@{#42903} ---- - .../codecs/av1/libaom_av1_encoder.cc | 16 +--------------- - 1 file changed, 1 insertion(+), 15 deletions(-) - -diff --git a/modules/video_coding/codecs/av1/libaom_av1_encoder.cc b/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -index db9238477d..c06792207e 100644 ---- a/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -+++ b/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -@@ -307,21 +307,7 @@ int LibaomAv1Encoder::InitEncode(const VideoCodec* codec_settings, - SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_ENABLE_PALETTE, 0); - } - -- if (cfg_.g_threads == 8) { -- // Values passed to AV1E_SET_TILE_ROWS and AV1E_SET_TILE_COLUMNS are log2() -- // based. -- // Use 4 tile columns x 2 tile rows for 8 threads. -- SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_TILE_ROWS, 1); -- SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_TILE_COLUMNS, 2); -- } else if (cfg_.g_threads == 4) { -- // Use 2 tile columns x 2 tile rows for 4 threads. -- SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_TILE_ROWS, 1); -- SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_TILE_COLUMNS, 1); -- } else { -- SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_TILE_COLUMNS, -- static_cast(log2(cfg_.g_threads))); -- } -- -+ SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_AUTO_TILES, 1); - SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_ROW_MT, 1); - SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_ENABLE_OBMC, 0); - SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_NOISE_SENSITIVITY, 0); diff --git a/aom3.10-AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.patch b/aom3.10-AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.patch deleted file mode 100644 index c2bb1d7..0000000 --- a/aom3.10-AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 84273f56d92953f15269cdb1d95d1851f83a8fe9 Mon Sep 17 00:00:00 2001 -From: Sergey Silkin -Date: Fri, 30 Aug 2024 12:32:52 +0200 -Subject: [PATCH] Specify max number of consecutive drops using time units - -AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR was added in https://aomedia-review.googlesource.com/c/aom/+/192402. It allows to configure max number of consecutive frame drops using time units. Use it instead of AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR. - -Bug: webrtc:351644568 -Change-Id: I73265d5258d681926eb5b65e32c2a61b26c310ba -Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/360842 -Commit-Queue: Sergey Silkin -Reviewed-by: Marco Paniconi -Cr-Commit-Position: refs/heads/main@{#42995} ---- - .../codecs/av1/libaom_av1_encoder.cc | 24 ++++--------------- - 1 file changed, 5 insertions(+), 19 deletions(-) - -diff --git a/modules/video_coding/codecs/av1/libaom_av1_encoder.cc b/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -index 6b71874c3f..262cb9d36b 100644 ---- a/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -+++ b/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -@@ -166,14 +166,6 @@ int32_t VerifyCodecSettings(const VideoCodec& codec_settings) { - return WEBRTC_VIDEO_CODEC_OK; - } - --int GetMaxConsecDrops(double framerate_fps) { -- // Consecutive frame drops result in a video freeze. We want to minimize the -- // max number of consecutive drops and, at the same time, keep the value high -- // enough to let encoder drain the buffer at overshoot. -- constexpr double kMaxFreezeSeconds = 0.25; -- return std::ceil(kMaxFreezeSeconds * framerate_fps); --} -- - LibaomAv1Encoder::LibaomAv1Encoder(const Environment& env, - LibaomAv1EncoderSettings settings) - : inited_(false), -@@ -339,6 +331,11 @@ int LibaomAv1Encoder::InitEncode(const VideoCodec* codec_settings, - SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_ENABLE_TX64, 0); - SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_MAX_REFERENCE_FRAMES, 3); - -+ if (adaptive_max_consec_drops_) { -+ SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR, -+ 250); -+ } -+ - return WEBRTC_VIDEO_CODEC_OK; - } - -@@ -815,17 +812,6 @@ void LibaomAv1Encoder::SetRates(const RateControlParameters& parameters) { - SetEncoderControlParameters(AV1E_SET_SVC_PARAMS, &*svc_params_); - } - -- if (adaptive_max_consec_drops_ && -- (!rates_configured_ || framerate_fps_ != parameters.framerate_fps)) { -- int max_consec_drops = GetMaxConsecDrops(parameters.framerate_fps); -- if (!SetEncoderControlParameters(AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR, -- max_consec_drops)) { -- RTC_LOG(LS_WARNING) -- << "Failed to set AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR to " -- << max_consec_drops; -- } -- } -- - framerate_fps_ = parameters.framerate_fps; - - rates_configured_ = true; diff --git a/brotli-remove-shared-dictionary.patch b/brotli-remove-shared-dictionary.patch index 95f85e0..bfd9ee7 100644 --- a/brotli-remove-shared-dictionary.patch +++ b/brotli-remove-shared-dictionary.patch @@ -2,28 +2,28 @@ Partially revert https://github.com/chromium/chromium/commit/c1dc375391403442935 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 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" +--- src/net/filter/brotli_source_stream.cc.orig 2025-08-21 17:44:48.616409315 +0200 ++++ src/net/filter/brotli_source_stream.cc 2025-08-22 18:23:03.535047458 +0200 +@@ -18,7 +18,6 @@ #include "net/base/io_buffer.h" + #include "net/filter/source_stream_type.h" #include "third_party/brotli/include/brotli/decode.h" -#include "third_party/brotli/include/brotli/shared_dictionary.h" namespace net { -@@ -24,21 +23,11 @@ const char kBrotli[] = "BROTLI"; +@@ -30,21 +29,11 @@ const char kBrotli[] = "BROTLI"; // Brotli format specification: http://www.ietf.org/id/draft-alakuijala-brotli. class BrotliSourceStream : public FilterSourceStream { public: - explicit BrotliSourceStream(std::unique_ptr upstream, - scoped_refptr dictionary = nullptr, - size_t dictionary_size = 0u) -- : FilterSourceStream(SourceStream::TYPE_BROTLI, std::move(upstream)), +- : FilterSourceStream(SourceStreamType::kBrotli, std::move(upstream)), - dictionary_(std::move(dictionary)), - dictionary_size_(dictionary_size) { + explicit BrotliSourceStream(std::unique_ptr upstream) -+ : FilterSourceStream(SourceStream::TYPE_BROTLI, std::move(upstream)) { ++ : FilterSourceStream(SourceStreamType::kBrotli, std::move(upstream)) { brotli_state_ = BrotliDecoderCreateInstance(AllocateMemory, FreeMemory, this); CHECK(brotli_state_); @@ -36,7 +36,7 @@ This feature does not build with brotli < 1.1 } BrotliSourceStream(const BrotliSourceStream&) = delete; -@@ -174,9 +163,6 @@ class BrotliSourceStream : public Filter +@@ -180,9 +169,6 @@ class BrotliSourceStream : public Filter free(&array[-1]); } @@ -46,7 +46,7 @@ This feature does not build with brotli < 1.1 raw_ptr brotli_state_; DecodingStatus decoding_status_ = DecodingStatus::DECODING_IN_PROGRESS; -@@ -198,8 +184,7 @@ std::unique_ptr Crea +@@ -204,8 +190,7 @@ std::unique_ptr Crea std::unique_ptr previous, scoped_refptr dictionary, size_t dictionary_size) { diff --git a/build-without-extensions.patch b/build-without-extensions.patch index 8ff154a..8439877 100644 --- a/build-without-extensions.patch +++ b/build-without-extensions.patch @@ -50,7 +50,7 @@ "manifest_handlers/webview_info.h", "manifest_url_handlers.cc", @@ -481,8 +467,6 @@ static_library("common") { - "user_script.h", + "user_scripts_availability.h", "utils/base_string.cc", "utils/base_string.h", - "utils/content_script_utils.cc", diff --git a/build-without-speech-service.patch b/build-without-speech-service.patch deleted file mode 100644 index d9b4dfc..0000000 --- a/build-without-speech-service.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- src/chrome/test/BUILD.gn.orig 2024-12-08 18:44:32.671357320 +0100 -+++ src/chrome/test/BUILD.gn 2025-01-01 21:35:00.776064485 +0100 -@@ -8317,7 +8317,6 @@ test("unit_tests") { - "//chrome/browser/user_annotations", - "//chrome/browser/web_applications:web_applications_test_support", - "//chrome/common/read_anything:mojo_bindings", -- "//chrome/services/speech:unit_tests", - "//components/app_constants", - "//components/color", - "//components/commerce/core:account_checker_test_support", diff --git a/chromium-102-compiler.patch b/chromium-102-compiler.patch index 4f59637..2261f4e 100644 --- a/chromium-102-compiler.patch +++ b/chromium-102-compiler.patch @@ -21,9 +21,9 @@ Subject: [PATCH] Disable various compiler configs build/config/compiler/BUILD.gn | 114 +++++---------------------------- 1 file changed, 17 insertions(+), 97 deletions(-) ---- src/build/config/compiler/BUILD.gn.orig 2025-04-21 18:29:05.106306929 +0200 -+++ src/build/config/compiler/BUILD.gn 2025-04-22 20:59:45.689108303 +0200 -@@ -308,9 +308,7 @@ config("compiler") { +--- src/build/config/compiler/BUILD.gn.orig 2025-07-19 11:32:29.581980058 +0200 ++++ src/build/config/compiler/BUILD.gn 2025-07-19 16:12:37.505818698 +0200 +@@ -310,9 +310,7 @@ config("compiler") { configs += [ # See the definitions below. @@ -32,8 +32,8 @@ Subject: [PATCH] Disable various compiler configs - ":compiler_cpu_abi", ":compiler_codegen", ":compiler_deterministic", - ] -@@ -325,7 +323,6 @@ config("compiler") { + ":clang_warning_suppression", +@@ -338,7 +336,6 @@ config("compiler") { # See: https://gcc.gnu.org/PR97913 # TODO(mpdenton): remove is_clang once GCC bug is fixed. if ((!is_nacl || is_nacl_saigo) && !is_ubsan && is_clang) { @@ -41,15 +41,15 @@ Subject: [PATCH] Disable various compiler configs } # Make signed overflow and pointer overflowdefined to wrap. -@@ -335,7 +332,6 @@ config("compiler") { +@@ -348,7 +345,6 @@ config("compiler") { if (is_win) { - cflags += [ "/clang:-fwrapv" ] + cflags += [ "/clang:-fno-strict-overflow" ] } else { -- cflags += [ "-fwrapv" ] +- cflags += [ "-fno-strict-overflow" ] } } -@@ -351,7 +347,12 @@ config("compiler") { +@@ -364,7 +360,12 @@ config("compiler") { if (!is_win) { # Common POSIX compiler flags setup. # -------------------------------- @@ -63,7 +63,7 @@ Subject: [PATCH] Disable various compiler configs # Stack protection. ShadowCallStack and Stack protector address the same # problems. Therefore, we only enable one or the other. Clang advertises SCS as -@@ -498,10 +499,6 @@ config("compiler") { +@@ -500,10 +501,6 @@ config("compiler") { # Linux/Android/Fuchsia common flags setup. # --------------------------------- if (is_linux || is_chromeos || is_android || is_fuchsia) { @@ -74,7 +74,7 @@ Subject: [PATCH] Disable various compiler configs if (!is_clang) { # Use pipes for communicating between sub-processes. Faster. -@@ -1124,11 +1121,6 @@ config("libcxx_hardening") { +@@ -1148,11 +1145,6 @@ config("libcxx_hardening") { defines = [ "_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE" ] } @@ -86,7 +86,7 @@ Subject: [PATCH] Disable various compiler configs } # The BUILDCONFIG file sets this config on targets by default, which means when -@@ -1194,7 +1186,8 @@ config("thinlto_optimize_max") { +@@ -1218,7 +1210,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. @@ -96,17 +96,17 @@ Subject: [PATCH] Disable various compiler configs cflags = [] ldflags = [] defines = [] -@@ -1824,7 +1817,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 +@@ -1994,7 +1987,8 @@ config("tot_warnings") { + # 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. -config("default_warnings") { +config("default_warnings") { } +config("xdefault_warnings") { cflags = [] - cflags_c = [] cflags_cc = [] -@@ -2071,11 +2065,7 @@ config("chromium_code") { + ldflags = [] +@@ -2262,11 +2256,7 @@ config("chromium_code") { defines = [ "_HAS_NODISCARD" ] } } else { @@ -119,7 +119,7 @@ Subject: [PATCH] Disable various compiler configs # In Chromium code, we define __STDC_foo_MACROS in order to get the # C99 macros on Mac and Linux. -@@ -2084,24 +2074,6 @@ config("chromium_code") { +@@ -2275,24 +2265,6 @@ config("chromium_code") { "__STDC_FORMAT_MACROS", ] @@ -144,15 +144,15 @@ Subject: [PATCH] Disable various compiler configs if (is_apple) { cflags_objc = [ "-Wimplicit-retain-self" ] cflags_objcc = [ "-Wimplicit-retain-self" ] -@@ -2268,7 +2240,6 @@ config("no_rtti") { +@@ -2451,7 +2423,6 @@ config("no_rtti") { + # to heap-allocated memory are passed over shared library boundaries. config("export_dynamic") { - # TODO(crbug.com/40118868): Revisit after target_os flip is completed. - if (is_linux || is_chromeos_lacros || export_libcxxabi_from_executables) { + if (is_linux || export_libcxxabi_from_executables) { - ldflags = [ "-rdynamic" ] } } -@@ -2366,7 +2337,8 @@ config("wexit_time_destructors") { +@@ -2550,7 +2521,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. @@ -162,7 +162,7 @@ Subject: [PATCH] Disable various compiler configs cflags = [] if (is_clang) { cflags += [ "-Wno-incompatible-pointer-types" ] -@@ -2483,7 +2455,8 @@ if (is_win) { +@@ -2667,7 +2639,8 @@ if (is_win) { common_optimize_on_cflags += [ "-fno-math-errno" ] } @@ -172,7 +172,7 @@ Subject: [PATCH] Disable various compiler configs if (!is_win) { if (enable_frame_pointers) { cflags = [ "-fno-omit-frame-pointer" ] -@@ -2524,7 +2497,8 @@ config("default_stack_frames") { +@@ -2708,7 +2681,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 @@ -182,7 +182,7 @@ Subject: [PATCH] Disable various compiler configs if (is_win) { # clang-cl's /O2 corresponds to clang's -O3, and really want -O2 for # consistency with the other platforms. -@@ -2573,7 +2547,8 @@ config("optimize") { +@@ -2757,7 +2731,8 @@ config("optimize") { } # Turn off optimizations. @@ -192,7 +192,7 @@ Subject: [PATCH] Disable various compiler configs if (is_win) { cflags = [ "/Od", # Disable optimization. -@@ -2613,7 +2588,8 @@ config("no_optimize") { +@@ -2792,7 +2767,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. @@ -202,7 +202,7 @@ Subject: [PATCH] Disable various compiler configs if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2646,7 +2622,8 @@ config("optimize_max") { +@@ -2825,7 +2801,8 @@ config("optimize_max") { # # TODO(crbug.com/41259697) - rework how all of these configs are related # so that we don't need this disclaimer. @@ -212,7 +212,7 @@ Subject: [PATCH] Disable various compiler configs if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2675,7 +2652,8 @@ config("optimize_speed") { +@@ -2854,7 +2831,8 @@ config("optimize_speed") { } } @@ -222,7 +222,7 @@ Subject: [PATCH] Disable various compiler configs cflags = [ "-O1" ] + common_optimize_on_cflags rustflags = [ "-Copt-level=1" ] ldflags = common_optimize_on_ldflags -@@ -2806,7 +2784,8 @@ config("win_pdbaltpath") { +@@ -2985,7 +2963,8 @@ config("win_pdbaltpath") { } # Full symbols. @@ -232,7 +232,7 @@ Subject: [PATCH] Disable various compiler configs rustflags = [] configs = [] if (is_win) { -@@ -2968,7 +2947,8 @@ config("symbols") { +@@ -3159,7 +3138,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. @@ -242,7 +242,7 @@ Subject: [PATCH] Disable various compiler configs rustflags = [] if (is_win) { # Functions, files, and line tables only. -@@ -3053,7 +3033,8 @@ config("minimal_symbols") { +@@ -3244,7 +3224,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. diff --git a/chromium-130-fontations.patch b/chromium-130-fontations.patch index 601314c..a0af593 100644 --- a/chromium-130-fontations.patch +++ b/chromium-130-fontations.patch @@ -1,5 +1,5 @@ ---- src/skia/BUILD.gn.orig 2025-04-11 12:05:22.085153891 +0200 -+++ src/skia/BUILD.gn 2025-04-11 20:35:59.999827501 +0200 +--- a/skia/BUILD.gn ++++ b/skia/BUILD.gn @@ -8,7 +8,6 @@ import("//build/config/features.gni") import("//build/config/freetype/freetype.gni") import("//build/config/rust.gni") @@ -19,13 +19,13 @@ -rust_static_library("bridge_rust_side") { - allow_unsafe = true - crate_root = skia_fontations_bridge_root -- sources = skia_fontations_bridge_sources -- cxx_bindings = skia_fontations_bridge_sources +- sources = skia_ports_fontations_bridge_rust_side_sources +- cxx_bindings = [ skia_fontations_bridge_root ] - deps = [ - ":path_bridge", - "//third_party/rust/font_types/v0_8:lib", -- "//third_party/rust/read_fonts/v0_25:lib", -- "//third_party/rust/skrifa/v0_26:lib", +- "//third_party/rust/read_fonts/v0_27:lib", +- "//third_party/rust/skrifa/v0_29:lib", - ] - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ @@ -36,7 +36,7 @@ # External-facing config for dependent code. config("skia_config") { -@@ -182,7 +160,6 @@ config("skia_library_config") { +@@ -190,7 +168,6 @@ config("skia_library_config") { if (use_blink && enable_freetype) { defines += [ "SK_TYPEFACE_FACTORY_FREETYPE", @@ -44,7 +44,7 @@ "SK_FONTMGR_FREETYPE_EMPTY_AVAILABLE", ] } -@@ -417,14 +394,6 @@ component("skia") { +@@ -428,14 +405,6 @@ component("skia") { public += skia_ports_fontmgr_empty_public } sources += skia_ports_typeface_proxy_sources @@ -59,7 +59,7 @@ } if (is_win) { -@@ -719,13 +688,7 @@ skia_source_set("skia_core_and_effects") +@@ -730,13 +699,7 @@ skia_source_set("skia_core_and_effects") # skia_core_and_effects rather than the other way around. public_deps = [ "//third_party/dawn/include/dawn:cpp_headers" ] } @@ -74,37 +74,139 @@ visibility = [ ":skia" ] } ---- src/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc.orig 2025-04-11 12:05:22.929220697 +0200 -+++ src/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc 2025-04-11 20:35:59.999827501 +0200 -@@ -13,7 +13,6 @@ +--- a/skia/ext/font_utils.cc ++++ b/skia/ext/font_utils.cc +@@ -69,13 +69,7 @@ static sk_sp fontmgr_factory( + return SkFontMgr_New_CoreText(nullptr); + #elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) + sk_sp fci(SkFontConfigInterface::RefGlobal()); +- if (base::FeatureList::IsEnabled(skia::kFontationsLinuxSystemFonts)) { +- return fci ? SkFontMgr_New_FCI(std::move(fci), +- SkFontScanner_Make_Fontations()) +- : nullptr; +- } else { +- return fci ? SkFontMgr_New_FCI(std::move(fci)) : nullptr; +- } ++ return fci ? SkFontMgr_New_FCI(std::move(fci)) : nullptr; + #elif BUILDFLAG(IS_FUCHSIA) + fuchsia::fonts::ProviderSyncPtr provider; + base::ComponentContextForProcess()->svc()->Connect(provider.NewRequest()); +--- a/third_party/blink/renderer/platform/fonts/skia/sktypeface_factory.cc ++++ b/third_party/blink/renderer/platform/fonts/skia/sktypeface_factory.cc +@@ -29,11 +29,7 @@ sk_sp SkTypeface_Factory::Fr + font_identity.fID = config_id; + font_identity.fTTCIndex = ttc_index; + +- if (base::FeatureList::IsEnabled(skia::kFontationsLinuxSystemFonts)) { +- return fci->makeTypeface(font_identity, SkFontMgr_New_Fontations_Empty()); +- } else { + return fci->makeTypeface(font_identity, skia::DefaultFontMgr()); +- } + #else + NOTREACHED(); + #endif +@@ -46,12 +42,7 @@ sk_sp SkTypeface_Factory::Fr + #if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) && \ + !BUILDFLAG(IS_APPLE) + +- if (base::FeatureList::IsEnabled(skia::kFontationsLinuxSystemFonts)) { +- return SkFontMgr_New_Fontations_Empty()->makeFromFile(filename.c_str(), +- ttc_index); +- } else { + return skia::DefaultFontMgr()->makeFromFile(filename.c_str(), ttc_index); +- } + #else + NOTREACHED(); + #endif +--- a/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc ++++ b/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc +@@ -12,7 +12,6 @@ + #include "third_party/blink/renderer/platform/fonts/opentype/font_format_check.h" #include "third_party/freetype_buildflags.h" - #include "third_party/skia/include/core/SkStream.h" #include "third_party/skia/include/core/SkTypeface.h" -#include "third_party/skia/include/ports/SkTypeface_fontations.h" #if BUILDFLAG(IS_WIN) #include "third_party/blink/renderer/platform/fonts/win/dwrite_font_format_support.h" -@@ -55,7 +54,7 @@ bool IsFreeTypeSystemRasterizer() { +@@ -38,11 +37,7 @@ bool IsWin() { + } + + bool IsFreeTypeSystemRasterizer() { +-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_APPLE) + return true; +-#else +- return false; +-#endif } sk_sp MakeTypefaceDefaultFontMgr(sk_sp data) { +@@ -50,13 +45,7 @@ sk_sp MakeTypefaceDefaultFon + return FontCache::Get().FontManager()->makeFromData(data, 0); + #endif + +-#if BUILDFLAG(IS_APPLE) + return skia::DefaultFontMgr()->makeFromData(data, 0); +-#endif +- -#if !(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE)) -+#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE)) - if (RuntimeEnabledFeatures::FontationsFontBackendEnabled()) { - std::unique_ptr stream(new SkMemoryStream(data)); - return SkTypeface_Make_Fontations(std::move(stream), SkFontArguments()); -@@ -83,10 +82,6 @@ sk_sp MakeTypefaceFallback(s +- return SkTypeface_Make_Fontations(data, SkFontArguments()); +-#endif + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) +@@ -65,10 +54,6 @@ sk_sp MakeTypefaceFallback(s } #endif -sk_sp MakeTypefaceFontations(sk_sp data) { -- std::unique_ptr stream(new SkMemoryStream(data)); -- return SkTypeface_Make_Fontations(std::move(stream), SkFontArguments()); +- return SkTypeface_Make_Fontations(data, SkFontArguments()); -} - +- sk_sp MakeVariationsTypeface( sk_sp data, -@@ -188,7 +183,6 @@ bool WebFontTypefaceFactory::CreateTypef + const WebFontTypefaceFactory::FontInstantiator& instantiator) { +@@ -88,9 +73,6 @@ sk_sp MakeSbixTypeface( + const WebFontTypefaceFactory::FontInstantiator& instantiator) { + // If we're on a OS with FreeType as backend, or on Windows, where we used to + // use FreeType for SBIX, switch to Fontations for SBIX. +- if (IsFreeTypeSystemRasterizer() || IsWin()) { +- return instantiator.make_fontations(data); +- } + + // Remaining case, on Mac, CoreText can handle creating SBIX fonts. + return instantiator.make_system(data); +@@ -99,29 +81,21 @@ sk_sp MakeSbixTypeface( + sk_sp MakeColrV0Typeface( + sk_sp data, + const WebFontTypefaceFactory::FontInstantiator& instantiator) { +- if (IsWin()) { + // On Windows Skia's DirectWrite + // backend handles COLRv0. + return instantiator.make_system(data); +- } +- return instantiator.make_fontations(data); + } + + sk_sp MakeColrV0VariationsTypeface( + sk_sp data, + const WebFontTypefaceFactory::FontInstantiator& instantiator) { +-#if BUILDFLAG(IS_WIN) +- if (DWriteVersionSupportsVariations()) { + return instantiator.make_system(data); +- } +-#endif +- return instantiator.make_fontations(data); + } + + sk_sp MakeFontationsFallbackPreferred( + sk_sp data, + const WebFontTypefaceFactory::FontInstantiator& instantiator) { +- return instantiator.make_fontations(data); ++ return instantiator.make_system(data); + } + + } // namespace +@@ -131,7 +105,6 @@ bool WebFontTypefaceFactory::CreateTypef const FontFormatCheck format_check(data); const FontInstantiator instantiator = { MakeTypefaceDefaultFontMgr, diff --git a/chromium-132-no-rust.patch b/chromium-132-no-rust.patch index e33894e..9d165fe 100644 --- a/chromium-132-no-rust.patch +++ b/chromium-132-no-rust.patch @@ -1,15 +1,44 @@ +--- a/BUILD.gn ++++ b/BUILD.gn +@@ -27,7 +27,6 @@ import("//extensions/buildflags/buildfla + import("//gpu/vulkan/features.gni") + import("//media/gpu/args.gni") + import("//media/media_options.gni") +-import("//mojo/public/rust/rust.gni") + import("//pdf/features.gni") + import("//ppapi/buildflags/buildflags.gni") + import("//printing/buildflags/buildflags.gni") +@@ -885,17 +884,10 @@ group("all_rust") { + + deps = [ + ":rust_build_tests", +- "//base:base_unittests", # There is rust stuff in here. +- "//third_party/cloud_authenticator/processor", + ] + +- # TODO(https://crbug.com/405379314): This fails to build on some iOS ASAN +- # builders. +- if (!is_ios || !is_asan) { +- deps += [ "//testing/rust_gtest_interop:rust_gtest_interop_unittests" ] +- } + +- if (enable_rust_mojo) { ++ if (false) { + deps += [ + "//mojo/public/rust:mojo_rust", + "//mojo/public/rust:mojo_rust_integration_unittests", --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -38,8 +38,6 @@ +@@ -36,8 +36,6 @@ import("//build/config/sanitizers/saniti import("//build/config/sysroot.gni") import("//build/config/ui.gni") import("//build/nocompile.gni") -import("//build/rust/rust_bindgen.gni") -import("//build/rust/rust_static_library.gni") - import("//build/timestamp.gni") import("//build/util/process_version.gni") import("//build_overrides/build.gni") -@@ -1022,11 +1020,6 @@ + import("//testing/libfuzzer/fuzzer_test.gni") +@@ -1053,11 +1051,6 @@ component("base") { # Used by metrics/crc32, except on NaCl builds. deps += [ "//third_party/zlib" ] @@ -21,7 +50,7 @@ } # `raw_ptr` cannot be made a component due to CRT symbol issues. -@@ -1063,7 +1056,7 @@ +@@ -1093,7 +1086,7 @@ component("base") { "//third_party/abseil-cpp:absl", ] @@ -30,7 +59,7 @@ sources += [ "containers/span_rust.h", "strings/string_view_rust.h", -@@ -1543,8 +1536,6 @@ +@@ -1598,8 +1591,6 @@ component("base") { "files/scoped_temp_file.h", "json/json_file_value_serializer.cc", "json/json_file_value_serializer.h", @@ -39,7 +68,7 @@ "memory/discardable_memory.cc", "memory/discardable_memory.h", "memory/discardable_memory_allocator.cc", -@@ -2447,40 +2438,6 @@ +@@ -2542,62 +2533,6 @@ component("base") { } } @@ -55,21 +84,43 @@ - deps = [ ":debugging_buildflags" ] -} - --rust_bindgen("logging_rust_log_integration_bindgen") { -- header = "logging/rust_log_integration.h" -- cpp = true -- visibility = [ ":*" ] -- -- # Transitive generated header dependency. -- deps = [ ":debugging_buildflags" ] --} -- -rust_static_library("rust_logger") { - allow_unsafe = true # Unsafe needed for FFI. - deps = [ - ":logging_log_severity_bindgen", -- ":logging_rust_log_integration_bindgen", +- ":tracing_buildflags", +- "//build:chromeos_buildflags", - "//third_party/rust/log/v0_4:lib", +- +- # Needed because of circular dependency: base depends on this target and by +- # extension the cxx-generated C++ code, but the cxx-generated code includes +- # base headers and calls base code. This seems to generally not cause +- # issues, except for partition_alloc which applies configs when depended on. +- # +- # This allows the generated C++ code to transitively include partition alloc +- # headers without issue. +- # +- # TODO(collinbaker): determine how to handle these cxx bindings-induced +- # circular dependencies more robustly. +- "//base/allocator/partition_allocator:raw_ptr", +- +- # Needed because logging/rust_logger.rs contains: +- # include!("base/logging/rust_log_integration.h"); +- # rust_log_integration.h ends up transitively #including +- # debug/debugging_buildflags.h, which is a generated header that needs to +- # be written first. +- # +- # Technically it would be more correct to depend on :base, which is the +- # target for rust_log_integration.h, but that's not possible due to circular +- # dependencies. +- # +- # Note if this is removed the build may still work by accident because +- # debug/debugging_buildflags.h still ends up being generated through a +- # dependency chain via :logging_log_severity_bindgen. But we should not +- # rely on that. +- # +- # See also https://crbug.com/406267472. +- ":debugging_buildflags", - ] - visibility = [ ":base" ] - sources = [ "logging/rust_logger.rs" ] @@ -80,7 +131,7 @@ if (is_linux || is_chromeos) { # Split out as a separate target for two reasons: -@@ -3564,7 +3521,7 @@ +@@ -3736,7 +3671,7 @@ test("base_unittests") { sources += [ "location_unittest.cc" ] } @@ -89,7 +140,7 @@ sources += [ "containers/span_rust_unittest.cc", "strings/string_piece_rust_unittest.cc", -@@ -3617,7 +3574,7 @@ +@@ -3791,7 +3726,7 @@ test("base_unittests") { deps += [ "allocator/partition_allocator/src/partition_alloc:unittests" ] } @@ -98,33 +149,67 @@ deps += [ "//build/rust:cxx_cppdeps" ] } ---- a/BUILD.gn -+++ b/BUILD.gn -@@ -28,7 +28,6 @@ - import("//gpu/vulkan/features.gni") - import("//media/gpu/args.gni") - import("//media/media_options.gni") --import("//mojo/public/rust/rust.gni") - import("//pdf/features.gni") - import("//ppapi/buildflags/buildflags.gni") - import("//printing/buildflags/buildflags.gni") -@@ -888,12 +887,9 @@ +--- a/base/json/json_reader.cc ++++ b/base/json/json_reader.cc +@@ -13,7 +13,7 @@ + #include "base/strings/string_number_conversions.h" + #include "build/build_config.h" - deps = [ - ":rust_build_tests", -- "//base:base_unittests", # There is rust stuff in here. -- "//testing/rust_gtest_interop:rust_gtest_interop_unittests", -- "//third_party/cloud_authenticator/processor", - ] +-#if BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) + #include "base/json/json_parser.h" + #else + #include "base/strings/string_view_rust.h" +@@ -23,7 +23,7 @@ -- if (enable_rust_mojo) { -+ if (false) { - deps += [ - "//mojo/public/rust:mojo_rust", - "//mojo/public/rust:mojo_rust_integration_unittests", + // TODO(crbug.com/40811643): Move the C++ parser into components/nacl to just + // run in-process there. Don't compile base::JSONReader on NaCL at all. +-#if !BUILDFLAG(IS_NACL) ++#if BUILDFLAG(IS_NACL) + + namespace { + const char kSecurityJsonParsingTime[] = "Security.JSONParser.ParsingTime"; +@@ -144,7 +144,7 @@ std::string JSONReader::Error::ToString( + std::optional JSONReader::Read(std::string_view json, + int options, + size_t max_depth) { +-#if BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) + internal::JSONParser parser(options, max_depth); + return parser.Parse(json); + #else // BUILDFLAG(IS_NACL) +@@ -185,7 +185,7 @@ std::optional JSONReader::R + JSONReader::Result JSONReader::ReadAndReturnValueWithError( + std::string_view json, + int options) { +-#if BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) + internal::JSONParser parser(options); + auto value = parser.Parse(json); + if (!value) { +--- a/base/logging.cc ++++ b/base/logging.cc +@@ -117,7 +117,7 @@ typedef FILE* FileHandle; + #include "base/fuchsia/scoped_fx_logger.h" + #endif + +-#if !BUILDFLAG(IS_NACL) ++#if BUILDFLAG(IS_NACL) + #include "base/logging/rust_logger.rs.h" + #endif + +@@ -529,7 +529,7 @@ bool BaseInitLoggingImpl(const LoggingSe + } + #endif + +-#if !BUILDFLAG(IS_NACL) ++#if BUILDFLAG(IS_NACL) + // Connects Rust logging with the //base logging functionality. + internal::init_rust_log_crate(); + #endif --- a/base/test/BUILD.gn +++ b/base/test/BUILD.gn -@@ -7,7 +7,6 @@ +@@ -6,7 +6,6 @@ import("//build/compiled_action.gni") import("//build/config/features.gni") import("//build/config/nacl/config.gni") import("//build/config/ui.gni") @@ -132,7 +217,7 @@ import("//build_overrides/build.gni") import("//third_party/protobuf/proto_library.gni") -@@ -39,16 +38,6 @@ +@@ -38,16 +37,6 @@ static_library("test_config") { ] } @@ -149,7 +234,7 @@ static_library("test_support") { testonly = true -@@ -189,7 +178,6 @@ +@@ -192,7 +181,6 @@ static_library("test_support") { public_deps = [ ":test_config", @@ -157,109 +242,36 @@ "//base", "//base:base_static", "//base:i18n", +--- a/services/on_device_model/ml/BUILD.gn ++++ b/services/on_device_model/ml/BUILD.gn +@@ -71,7 +71,6 @@ if (use_blink || (is_ios && build_with_i + ] + if (enable_constraints) { + defines += [ "ENABLE_ON_DEVICE_CONSTRAINTS" ] +- deps += [ "//third_party/rust/llguidance/v0_7:lib" ] + } + if (use_blink) { + deps += [ "//gpu/config" ] +--- a/services/on_device_model/ml/chrome_ml.cc ++++ b/services/on_device_model/ml/chrome_ml.cc +@@ -24,7 +24,6 @@ + #include "third_party/dawn/include/dawn/dawn_proc.h" + #include "third_party/dawn/include/dawn/native/DawnNative.h" + #include "third_party/dawn/include/dawn/webgpu_cpp.h" +-#include "third_party/rust/chromium_crates_io/vendor/llguidance-v0_7/llguidance.h" + + #if !BUILDFLAG(IS_IOS) + #include "gpu/config/gpu_info_collector.h" --- a/third_party/blink/common/BUILD.gn +++ b/third_party/blink/common/BUILD.gn -@@ -341,7 +341,6 @@ - "//services/metrics/public/cpp:ukm_builders", +@@ -311,7 +311,6 @@ source_set("common") { "//services/metrics/public/mojom:mojom", "//services/network/public/cpp:cpp", + "//services/network/public/mojom:mojom_permissions_policy", - "//third_party/blink/common/rust_crash", "//third_party/blink/public/common:buildflags", "//third_party/re2", "//ui/base:base", ---- a/third_party/breakpad/BUILD.gn -+++ b/third_party/breakpad/BUILD.gn -@@ -494,11 +494,6 @@ - # For breakpad/src/common/stabs_reader.h. - defines = [ "HAVE_MACH_O_NLIST_H" ] - -- # Rust demangle support. -- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ] -- defines += [ "HAVE_RUSTC_DEMANGLE" ] -- include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include" ] -- sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include/rustc_demangle.h" ] - } - test("breakpad_unittests") { - sources = [ "breakpad/src/common/module_unittest.cc" ] -@@ -742,11 +737,6 @@ - - include_dirs = [ "breakpad/src" ] - -- # Rust demangle support. -- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ] -- defines += [ "HAVE_RUSTC_DEMANGLE" ] -- include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include" ] -- sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include/rustc_demangle.h" ] - - libs = [ "z" ] - } ---- a/base/json/json_reader.cc -+++ b/base/json/json_reader.cc -@@ -13,7 +13,7 @@ - #include "base/metrics/histogram_macros.h" - #include "build/build_config.h" - --#if !BUILDFLAG(IS_NACL) -+#if BUILDFLAG(IS_NACL) - #include "base/strings/string_view_rust.h" - #include "third_party/rust/serde_json_lenient/v0_2/wrapper/functions.h" - #include "third_party/rust/serde_json_lenient/v0_2/wrapper/lib.rs.h" -@@ -23,7 +23,7 @@ - - // TODO(crbug.com/40811643): Move the C++ parser into components/nacl to just - // run in-process there. Don't compile base::JSONReader on NaCL at all. --#if !BUILDFLAG(IS_NACL) -+#if BUILDFLAG(IS_NACL) - - namespace { - using serde_json_lenient::ContextPointer; -@@ -140,7 +140,7 @@ - std::optional JSONReader::Read(std::string_view json, - int options, - size_t max_depth) { --#if BUILDFLAG(IS_NACL) -+#if !BUILDFLAG(IS_NACL) - internal::JSONParser parser(options, max_depth); - return parser.Parse(json); - #else // BUILDFLAG(IS_NACL) -@@ -173,7 +173,7 @@ - JSONReader::Result JSONReader::ReadAndReturnValueWithError( - std::string_view json, - int options) { --#if BUILDFLAG(IS_NACL) -+#if !BUILDFLAG(IS_NACL) - internal::JSONParser parser(options); - auto value = parser.Parse(json); - if (!value) { -@@ -213,7 +213,7 @@ - if (!base::FeatureList::GetInstance()) { - return false; - } --#if BUILDFLAG(IS_NACL) -+#if !BUILDFLAG(IS_NACL) - return false; - #else - return base::FeatureList::IsEnabled(base::features::kUseRustJsonParser); ---- a/base/logging.cc -+++ b/base/logging.cc -@@ -126,7 +126,7 @@ - #include "base/fuchsia/scoped_fx_logger.h" - #endif - --#if !BUILDFLAG(IS_NACL) -+#if BUILDFLAG(IS_NACL) - #include "base/logging/rust_logger.rs.h" - #endif - -@@ -526,7 +526,7 @@ - } - #endif - --#if !BUILDFLAG(IS_NACL) -+#if BUILDFLAG(IS_NACL) - // Connects Rust logging with the //base logging functionality. - internal::init_rust_log_crate(); - #endif --- a/third_party/blink/common/chrome_debug_urls.cc +++ b/third_party/blink/common/chrome_debug_urls.cc @@ -11,7 +11,6 @@ @@ -270,7 +282,7 @@ #include "url/gurl.h" #if BUILDFLAG(IS_WIN) -@@ -117,7 +116,7 @@ +@@ -117,7 +116,7 @@ NOINLINE void MaybeTriggerAsanError(cons // Ensure that ASAN works even in Rust code. LOG(ERROR) << "Intentionally causing ASAN heap overflow in Rust" << " because user navigated to " << url.spec(); @@ -279,7 +291,7 @@ } } #endif // ADDRESS_SANITIZER -@@ -137,7 +136,7 @@ +@@ -137,7 +136,7 @@ void HandleChromeDebugURL(const GURL& ur } else if (url == kChromeUICrashRustURL) { // Cause a typical crash in Rust code, so we can test that call stack // collection and symbol mangling work across the language boundary. @@ -288,3 +300,32 @@ } else if (url == kChromeUIDumpURL) { // This URL will only correctly create a crash dump file if content is // hosted in a process that has correctly called +--- a/third_party/breakpad/BUILD.gn ++++ b/third_party/breakpad/BUILD.gn +@@ -494,12 +494,7 @@ if (is_mac) { + # For breakpad/src/common/stabs_reader.h. + defines = [ "HAVE_MACH_O_NLIST_H" ] + +- # Rust demangle support. +- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ] +- defines += [ "HAVE_RUSTC_DEMANGLE" ] +- include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-v0_1/include" ] +- sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-v0_1/include/rustc_demangle.h" ] +- } ++ } + test("breakpad_unittests") { + sources = [ "breakpad/src/common/module_unittest.cc" ] + deps = [ +@@ -742,12 +737,6 @@ if (is_linux || is_chromeos || is_androi + + include_dirs = [ "breakpad/src" ] + +- # Rust demangle support. +- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ] +- defines += [ "HAVE_RUSTC_DEMANGLE" ] +- include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-v0_1/include" ] +- sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-v0_1/include/rustc_demangle.h" ] +- + libs = [ "z" ] + } + } else if (current_toolchain == default_toolchain) { diff --git a/common.gypi-compiler.patch b/common.gypi-compiler.patch index c67f1d7..0b16167 100644 --- a/common.gypi-compiler.patch +++ b/common.gypi-compiler.patch @@ -1,9 +1,9 @@ ---- src/third_party/electron_node/common.gypi.orig 2025-04-10 20:07:02.154742467 +0200 -+++ src/third_party/electron_node/common.gypi 2025-04-11 11:45:57.996110023 +0200 -@@ -514,15 +514,19 @@ +--- src/third_party/electron_node/common.gypi.orig 2025-07-19 11:44:59.181882205 +0200 ++++ src/third_party/electron_node/common.gypi 2025-07-19 16:21:44.297731896 +0200 +@@ -534,15 +534,19 @@ 'ldflags': [ '-pthread' ], }], - [ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi"', { + [ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi openharmony"', { - 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ], + # Add some useful flags which need to be specified on all modules anyway. + # `-fpic -fno-semantic-interposition` is the best relocation model for code that will live in a dlopened library @@ -23,7 +23,7 @@ 'target_conditions': [ # The 1990s toolchain on SmartOS can't handle thin archives. ['_type=="static_library" and OS=="solaris"', { -@@ -700,29 +704,7 @@ +@@ -720,29 +724,7 @@ '-Wl,--export-dynamic', ], }], diff --git a/common.gypi-remove-fno-omit-frame-pointer.patch b/common.gypi-remove-fno-omit-frame-pointer.patch index ffc063c..98b60cd 100644 --- a/common.gypi-remove-fno-omit-frame-pointer.patch +++ b/common.gypi-remove-fno-omit-frame-pointer.patch @@ -14,6 +14,6 @@ since we compile everything with -fasynchronous-unwind-tables anyway. - # frames otherwise, even with --call-graph dwarf. - 'cflags': [ '-fno-omit-frame-pointer' ], - }], - ['OS=="linux"', { + ['OS=="linux" or OS=="openharmony"', { 'conditions': [ ['enable_pgo_generate=="true"', { diff --git a/content_browser_client-incomplete-WebUIController.patch b/content_browser_client-incomplete-WebUIController.patch deleted file mode 100644 index 75e3a46..0000000 --- a/content_browser_client-incomplete-WebUIController.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- src/content/public/browser/content_browser_client.cc.orig 2025-04-16 14:45:09.657704679 +0200 -+++ src/content/public/browser/content_browser_client.cc 2025-04-17 16:18:19.395831947 +0200 -@@ -53,6 +53,7 @@ - #include "content/public/browser/vpn_service_proxy.h" - #include "content/public/browser/web_contents.h" - #include "content/public/browser/web_contents_view_delegate.h" -+#include "content/public/browser/web_ui_controller.h" - #include "content/public/common/alternative_error_page_override_info.mojom.h" - #include "content/public/common/content_features.h" - #include "content/public/common/url_utils.h" diff --git a/cr130-abseil-remove-unused-deps.patch b/cr130-abseil-remove-unused-deps.patch index 348a89a..61b3a07 100644 --- a/cr130-abseil-remove-unused-deps.patch +++ b/cr130-abseil-remove-unused-deps.patch @@ -1,6 +1,14 @@ ---- src/third_party/abseil-cpp/BUILD.gn.orig 2025-04-11 12:05:22.125274194 +0200 -+++ src/third_party/abseil-cpp/BUILD.gn 2025-04-12 14:23:17.763743696 +0200 -@@ -84,13 +84,9 @@ group("absl_component_deps") { +--- src/third_party/abseil-cpp/BUILD.gn.orig 2025-07-19 11:32:36.617980004 +0200 ++++ src/third_party/abseil-cpp/BUILD.gn 2025-08-15 17:20:46.305540851 +0200 +@@ -62,7 +62,6 @@ group("absl_component_deps") { + "//third_party/abseil-cpp/absl/base", + "//third_party/abseil-cpp/absl/base:config", + "//third_party/abseil-cpp/absl/base:core_headers", +- "//third_party/abseil-cpp/absl/base:fast_type_id", + "//third_party/abseil-cpp/absl/base:log_severity", + "//third_party/abseil-cpp/absl/base:no_destructor", + "//third_party/abseil-cpp/absl/base:nullability", +@@ -85,13 +84,9 @@ group("absl_component_deps") { "//third_party/abseil-cpp/absl/hash", "//third_party/abseil-cpp/absl/log:absl_check", "//third_party/abseil-cpp/absl/log:absl_log", @@ -14,7 +22,23 @@ "//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/meta:type_traits", "//third_party/abseil-cpp/absl/numeric:bits", -@@ -290,8 +286,6 @@ if (absl_build_tests) { +@@ -102,7 +97,6 @@ group("absl_component_deps") { + "//third_party/abseil-cpp/absl/status", + "//third_party/abseil-cpp/absl/status:statusor", + "//third_party/abseil-cpp/absl/strings", +- "//third_party/abseil-cpp/absl/strings:charset", + "//third_party/abseil-cpp/absl/strings:cord", + "//third_party/abseil-cpp/absl/strings:has_ostream_operator", + "//third_party/abseil-cpp/absl/strings:str_format", +@@ -125,7 +119,6 @@ group("absl_component_deps") { + "//third_party/abseil-cpp/absl/base:raw_logging_internal", + + # absl internal utilities used by protobuf. +- "//third_party/abseil-cpp/absl/container:layout", + ] + + if (is_component_build) { +@@ -295,8 +288,6 @@ if (absl_build_tests) { "absl/container:flat_hash_set_test", "absl/container:hash_function_defaults_test", "absl/container:inlined_vector_test", @@ -22,8 +46,8 @@ - "absl/container:node_hash_set_test", "absl/container:node_slot_policy_test", "absl/container:raw_hash_set_allocator_test", - "absl/container:raw_hash_set_test", -@@ -300,11 +294,8 @@ if (absl_build_tests) { + "absl/container:raw_hash_set_resize_impl_test", +@@ -305,11 +296,8 @@ if (absl_build_tests) { "absl/crc:crc_cord_state_test", "absl/crc:crc_memcpy_test", "absl/crc:non_temporal_memcpy_test", @@ -35,7 +59,7 @@ "absl/flags:flag_test", "absl/functional:any_invocable_test", "absl/functional:function_ref_test", -@@ -328,7 +319,6 @@ if (absl_build_tests) { +@@ -333,7 +321,6 @@ if (absl_build_tests) { "absl/log:vlog_is_on_test", "absl/log/internal:fnmatch_test", "absl/log/internal:stderr_log_sink_test", @@ -43,7 +67,7 @@ "absl/memory:memory_test", "absl/meta:type_traits_test", "absl/numeric:int128_test", -@@ -336,7 +326,6 @@ if (absl_build_tests) { +@@ -341,7 +328,6 @@ if (absl_build_tests) { "absl/profiling:periodic_sampler_test", "absl/random:distributions_test", "absl/random:mock_distributions_test", @@ -51,7 +75,7 @@ "absl/status:status_matchers_test", "absl/status:status_test", "absl/status:statusor_test", -@@ -359,7 +348,6 @@ if (absl_build_tests) { +@@ -367,7 +353,6 @@ if (absl_build_tests) { "absl/strings:has_absl_stringify_test", "absl/strings:has_ostream_operator_test", "absl/strings:match_test", @@ -59,7 +83,7 @@ "absl/strings:str_format_arg_test", "absl/strings:str_format_bind_test", "absl/strings:str_format_checker_test", -@@ -370,11 +358,7 @@ if (absl_build_tests) { +@@ -378,11 +363,7 @@ if (absl_build_tests) { "absl/strings:str_format_test", "absl/strings:str_replace_test", "absl/strings:string_view_test", @@ -70,4 +94,4 @@ - "absl/synchronization:per_thread_sem_test", "absl/synchronization:waiter_test", "absl/time:time_test", - "absl/types:optional_test", + "absl/types:span_test", diff --git a/create_tarball.sh b/create_tarball.sh index c963dbd..cb116d3 100644 --- a/create_tarball.sh +++ b/create_tarball.sh @@ -221,7 +221,6 @@ keeplibs=( third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs third_party/devtools-frontend/src/third_party/i18n #javascript - third_party/distributed_point_functions #not in any distro third_party/dom_distiller_js #javascript #third_party/eigen3 #Used only by tflite which is not used in electron third_party/electron_node #Integral part of electron @@ -234,6 +233,11 @@ keeplibs=( third_party/ipcz #not in any distro third_party/khronos #Modified to add ANGLE definitions third_party/leveldatabase #use of private headers + third_party/libaom #15.6 too old + third_party/libaom/source/libaom/third_party/fastfeat + third_party/libaom/source/libaom/third_party/SVT-AV1 + third_party/libaom/source/libaom/third_party/vector + third_party/libaom/source/libaom/third_party/x86inc third_party/libgav1 #Usage of private headers (ObuFrameHeader from utils/types.h) third_party/libsrtp #Needs to be built against boringssl, not openssl third_party/libsync #not yet in any distro @@ -271,6 +275,7 @@ keeplibs=( third_party/pffft #not in any distro, also heavily patched third_party/polymer #javascript third_party/protobuf #Heavily forked. Apparently was officially unbundlable back in the GYP days, and may be again in the future. + third_party/protobuf/third_party/utf8_range # Integral part of protobuf third_party/rapidhash #Fork third_party/re2 # fedora too old third_party/rnnoise #use of private headers @@ -297,7 +302,6 @@ keeplibs=( third_party/webrtc/modules/third_party/fft #derived code, not vendored dep third_party/webrtc/modules/third_party/g711 #Fork. Original is from spandsp. Might be debundled if upstream ever accepts WebRTC's patches. third_party/webrtc/modules/third_party/g722 #Fork. Original is from spandsp. - third_party/webrtc/rtc_base/third_party/base64 #derived code, not vendored dep third_party/webrtc/rtc_base/third_party/sigslot #derived code, not vendored dep third_party/webrtc_overrides #Integral part of chrome third_party/widevine #Integral part of chrome. Needed. diff --git a/css_shape_value-constructor.patch b/css_shape_value-constructor.patch deleted file mode 100644 index 693ebe3..0000000 --- a/css_shape_value-constructor.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/third_party/blink/renderer/core/css/css_shape_value.h.orig 2025-04-16 14:36:32.392070147 +0200 -+++ src/third_party/blink/renderer/core/css/css_shape_value.h 2025-04-16 22:22:56.896578913 +0200 -@@ -96,7 +96,7 @@ using CSSShapeControlPoint = std::pair - class CSSShapeCurveCommand : public CSSShapeCommand { - public: -- CSSShapeCurveCommand<1>(Type type, -+ CSSShapeCurveCommand(Type type, - const CSSValuePair& end_point, - const CSSShapeControlPoint control_point) - : CSSShapeCommand(type, end_point), control_points_{control_point} {} diff --git a/disable-catapult.patch b/disable-catapult.patch index 115c0e4..f30a6c5 100644 --- a/disable-catapult.patch +++ b/disable-catapult.patch @@ -167,21 +167,21 @@ author: Michael Gilbert "//media/mojo/mojom:speech_recognition", "//ui/base", ] ---- src/chrome/chrome_paks.gni.orig 2024-12-08 18:34:54.604673311 +0100 -+++ src/chrome/chrome_paks.gni 2024-12-18 12:15:07.247395616 +0100 -@@ -202,8 +202,6 @@ template("chrome_extra_paks") { +--- src/chrome/chrome_paks.gni.orig 2025-07-19 11:32:31.785979797 +0200 ++++ src/chrome/chrome_paks.gni 2025-07-19 16:32:46.337623073 +0200 +@@ -230,8 +230,6 @@ template("chrome_extra_paks") { + "$root_gen_dir/chrome/web_app_internals_resources.pak", "$root_gen_dir/chrome/webui_gallery_resources.pak", "$root_gen_dir/chrome/whats_new_resources.pak", - "$root_gen_dir/content/browser/devtools/devtools_resources.pak", - "$root_gen_dir/content/browser/tracing/tracing_resources.pak", - "$root_gen_dir/content/traces_internals_resources.pak", ] deps += [ - "//chrome/browser/resources:component_extension_resources", -@@ -215,7 +213,6 @@ template("chrome_extra_paks") { + "//chrome/browser/resources:dev_ui_paks", +@@ -241,7 +239,6 @@ template("chrome_extra_paks") { "//chrome/browser/resources/lens/shared:resources", "//chrome/browser/resources/search_engine_choice:resources", - "//content/browser/devtools:devtools_resources", + "//chrome/browser/resources/tabs/tab_group_home:resources", - "//content/browser/tracing:resources", ] if (is_chrome_branded) { @@ -313,8 +313,8 @@ author: Michael Gilbert "//third_party/perfetto/src/trace_processor:trace_processor_shell", ] data = [ ---- src/electron/electron_paks.gni.orig 2025-04-11 12:02:41.243100651 +0200 -+++ src/electron/electron_paks.gni 2025-04-11 12:28:19.897748625 +0200 +--- src/electron/build/electron_paks.gni.orig 2025-04-11 12:02:41.243100651 +0200 ++++ src/electron/build/electron_paks.gni 2025-04-11 12:28:19.897748625 +0200 @@ -57,7 +57,6 @@ template("electron_extra_paks") { "$root_gen_dir/chrome/common_resources.pak", "$root_gen_dir/components/components_resources.pak", diff --git a/disable-devtools-tests.patch b/disable-devtools-tests.patch deleted file mode 100644 index cd79eb7..0000000 --- a/disable-devtools-tests.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- src/third_party/devtools-frontend/src/BUILD.gn.orig 2024-12-08 18:36:42.531343187 +0100 -+++ src/third_party/devtools-frontend/src/BUILD.gn 2024-12-18 12:29:53.036757634 +0100 -@@ -16,7 +16,6 @@ import("./third_party/blink/public/publi - devtools_frontend_resources_deps = [ - ":favicon", - "front_end", -- "test", - ] - - group("devtools_all_files") { diff --git a/disable-webspeech.patch b/disable-webspeech.patch index 774d8a7..83434ce 100644 --- a/disable-webspeech.patch +++ b/disable-webspeech.patch @@ -101,9 +101,9 @@ Reviewed-by: Allan Sandfeld Jensen if ((is_linux || is_chromeos) && use_dbus) { deps += [ "//dbus" ] } --- src/content/browser/browser_interface_binders.cc.orig 2025-04-11 12:05:19.980351905 +0200 -+++ src/content/browser/browser_interface_binders.cc 2025-04-11 19:48:15.944587282 +0200 -@@ -61,7 +61,9 @@ +--- src/content/browser/browser_interface_binders.cc.orig 2025-07-19 11:32:34.193979827 +0200 ++++ src/content/browser/browser_interface_binders.cc 2025-07-20 14:51:05.789212478 +0200 +@@ -62,7 +62,9 @@ #include "content/browser/renderer_host/render_process_host_impl.h" #include "content/browser/service_worker/service_worker_host.h" #include "content/browser/shared_storage/shared_storage_worklet_host.h" @@ -113,7 +113,7 @@ Reviewed-by: Allan Sandfeld Jensen #include "content/browser/storage_access/storage_access_handle.h" #include "content/browser/tracing/trace_report/trace_report.mojom.h" #include "content/browser/tracing/trace_report/trace_report_internals_ui.h" -@@ -100,7 +102,9 @@ +@@ -101,7 +103,9 @@ #include "media/mojo/mojom/media_metrics_provider.mojom.h" #include "media/mojo/mojom/media_player.mojom.h" #include "media/mojo/mojom/remoting.mojom.h" @@ -123,7 +123,7 @@ Reviewed-by: Allan Sandfeld Jensen #include "media/mojo/mojom/video_decode_perf_history.mojom.h" #include "media/mojo/mojom/video_encoder_metrics_provider.mojom.h" #include "media/mojo/mojom/webrtc_video_perf.mojom.h" -@@ -206,7 +210,9 @@ +@@ -209,7 +213,9 @@ #else // BUILDFLAG(IS_ANDROID) #include "content/browser/direct_sockets/direct_sockets_service_impl.h" #include "media/mojo/mojom/renderer_extensions.mojom.h" @@ -132,7 +132,7 @@ Reviewed-by: Allan Sandfeld Jensen +#endif #include "third_party/blink/public/mojom/hid/hid.mojom.h" #include "third_party/blink/public/mojom/installedapp/installed_app_provider.mojom.h" - #include "third_party/blink/public/mojom/serial/serial.mojom.h" + #endif // BUILDFLAG(IS_ANDROID) @@ -865,11 +871,13 @@ void PopulateFrameBinders(RenderFrameHos map->Add( base::BindRepeating(&BindSharedWorkerConnector, base::Unretained(host))); @@ -147,7 +147,7 @@ Reviewed-by: Allan Sandfeld Jensen map->Add(base::BindRepeating( &RenderFrameHostImpl::GetSpeechSynthesis, base::Unretained(host))); -@@ -1197,6 +1205,7 @@ void PopulateBinderMapWithContext( +@@ -1194,6 +1202,7 @@ void PopulateBinderMapWithContext( #if !BUILDFLAG(IS_ANDROID) map->Add( base::BindRepeating(&DirectSocketsServiceImpl::CreateForFrame)); @@ -155,7 +155,7 @@ Reviewed-by: Allan Sandfeld Jensen map->Add(base::BindRepeating( &EmptyBinderForFrame)); map->Add( -@@ -1208,6 +1217,7 @@ void PopulateBinderMapWithContext( +@@ -1205,6 +1214,7 @@ void PopulateBinderMapWithContext( map->Add(base::BindRepeating( &EmptyBinderForFrame)); #endif @@ -163,13 +163,11 @@ Reviewed-by: Allan Sandfeld Jensen #if BUILDFLAG(ENABLE_UNHANDLED_TAP) map->Add(base::BindRepeating( &EmptyBinderForFrame)); -diff --git a/chromium/content/browser/browser_main_loop.cc b/chromium/content/browser/browser_main_loop.cc -index aaa752bec61..b3a1ed50d20 100644 ---- a/content/browser/browser_main_loop.cc -+++ b/content/browser/browser_main_loop.cc -@@ -87,7 +87,9 @@ - #include "content/browser/screenlock_monitor/screenlock_monitor.h" +--- src/content/browser/browser_main_loop.cc.orig 2025-07-19 11:32:34.193979827 +0200 ++++ src/content/browser/browser_main_loop.cc 2025-07-20 14:51:05.789212478 +0200 +@@ -91,7 +91,9 @@ #include "content/browser/screenlock_monitor/screenlock_monitor_device_source.h" + #include "content/browser/service_host/utility_process_host.h" #include "content/browser/sms/sms_provider.h" +#if BUILDFLAG(ENABLE_WEB_SPEECH) #include "content/browser/speech/speech_recognition_manager_impl.h" @@ -177,7 +175,7 @@ index aaa752bec61..b3a1ed50d20 100644 #include "content/browser/speech/tts_controller_impl.h" #include "content/browser/startup_data_impl.h" #include "content/browser/startup_task_runner.h" -@@ -1114,12 +1116,14 @@ void BrowserMainLoop::ShutdownThreadsAndCleanUp() { +@@ -1162,12 +1164,14 @@ void BrowserMainLoop::ShutdownThreadsAnd midi_service_->Shutdown(); } @@ -192,7 +190,7 @@ index aaa752bec61..b3a1ed50d20 100644 TtsControllerImpl::GetInstance()->Shutdown(); -@@ -1364,13 +1368,14 @@ void BrowserMainLoop::PostCreateThreadsImpl() { +@@ -1405,13 +1409,14 @@ void BrowserMainLoop::PostCreateThreadsI media_stream_manager_ = std::make_unique(audio_system_.get()); } @@ -235,18 +233,16 @@ index 3a2e713ccc3..6af5afde20e 100644 {wrf::EnableScriptedSpeechSynthesis, switches::kDisableSpeechSynthesisAPI, false}, {wrf::EnableSharedWorker, switches::kDisableSharedWorkers, false}, -diff --git a/chromium/media/BUILD.gn b/chromium/media/BUILD.gn -index 01e0910666e..6ce78127e3f 100644 ---- src/media/BUILD.gn 2025-04-11 12:05:21.244153535 +0200 -+++ src/media/BUILD.gn 2025-04-11 19:48:51.764578046 +0200 +--- src/media/BUILD.gn.orig 2025-07-19 11:32:35.633979930 +0200 ++++ src/media/BUILD.gn 2025-07-20 14:51:07.213212462 +0200 @@ -61,6 +61,7 @@ buildflag_header("media_buildflags") { "ENABLE_MSE_MPEG2TS_STREAM_PARSER=$enable_mse_mpeg2ts_stream_parser", "PLATFORM_HAS_OPTIONAL_HEVC_DECODE_SUPPORT=$platform_has_optional_hevc_decode_support", "PLATFORM_HAS_OPTIONAL_HEVC_ENCODE_SUPPORT=$platform_has_optional_hevc_encode_support", + "ENABLE_WEB_SPEECH=$enable_web_speech", "USE_ARC_PROTECTED_MEDIA=$use_arc_protected_media", - "USE_CHROMEOS_MEDIA_ACCELERATION=$use_vaapi||$use_v4l2_codec", "USE_CHROMEOS_PROTECTED_AV1=$use_chromeos_protected_av1", + "USE_CHROMEOS_PROTECTED_MEDIA=$use_chromeos_protected_media", diff --git a/chromium/media/media_options.gni b/chromium/media/media_options.gni index 5667cac61f3..48ea95a99a6 100644 --- a/media/media_options.gni diff --git a/distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch b/distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch deleted file mode 100644 index 2cc19bb..0000000 --- a/distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- src/third_party/distributed_point_functions/code/dpf/aes_128_fixed_key_hash.cc.old 2024-04-02 11:53:27.644284500 +0200 -+++ src/third_party/distributed_point_functions/code/dpf/aes_128_fixed_key_hash.cc 2024-04-02 22:24:29.350771600 +0200 -@@ -26,6 +26,7 @@ - #include "absl/numeric/int128.h" - #include "absl/status/status.h" - #include "absl/status/statusor.h" -+#include "absl/strings/str_cat.h" - #include "absl/types/span.h" - #include "openssl/err.h" - diff --git a/distributed_point_functions-evaluate_prg_hwy-signature.patch b/distributed_point_functions-evaluate_prg_hwy-signature.patch deleted file mode 100644 index 18303f6..0000000 --- a/distributed_point_functions-evaluate_prg_hwy-signature.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- src/third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc.old 2024-04-02 11:53:27.644284500 +0200 -+++ src/third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc 2024-04-02 22:35:43.377586600 +0200 -@@ -50,16 +50,18 @@ namespace hn = hwy::HWY_NAMESPACE; - #if HWY_TARGET == HWY_SCALAR - - absl::Status EvaluateSeedsHwy( -- int64_t num_seeds, int num_levels, const absl::uint128* seeds_in, -- const bool* control_bits_in, const absl::uint128* paths, -+ int64_t num_seeds, int num_levels, int num_correction_words, -+ const absl::uint128* seeds_in, const bool* control_bits_in, -+ const absl::uint128* paths, int paths_rightshift, - const absl::uint128* correction_seeds, const bool* correction_controls_left, - const bool* correction_controls_right, const Aes128FixedKeyHash& prg_left, - const Aes128FixedKeyHash& prg_right, absl::uint128* seeds_out, - bool* control_bits_out) { -- return EvaluateSeedsNoHwy(num_seeds, num_levels, seeds_in, control_bits_in, -- paths, correction_seeds, correction_controls_left, -- correction_controls_right, prg_left, prg_right, -- seeds_out, control_bits_out); -+ return EvaluateSeedsNoHwy( -+ num_seeds, num_levels, num_correction_words, seeds_in, control_bits_in, -+ paths, paths_rightshift, correction_seeds, correction_controls_left, -+ correction_controls_right, prg_left, prg_right, seeds_out, -+ control_bits_out); - } - - #else diff --git a/do-not-build-libvulkan.so.patch b/do-not-build-libvulkan.so.patch index dfb9f5c..fad66ec 100644 --- a/do-not-build-libvulkan.so.patch +++ b/do-not-build-libvulkan.so.patch @@ -3,10 +3,10 @@ Do not try to build a private copy of a DLL which is already available on every --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -1789,8 +1790,9 @@ - - deps = [ "//third_party/angle:libGLESv2" ] + deps = [ "//third_party/angle:libGLESv2" ] + } } -- if (!is_chromeos) { +- if (!is_chromeos && angle_shared_libvulkan) { + source_set("angle_libvulkan_symbols") {} + if (false) { extract_symbols("angle_libvulkan_symbols") { diff --git a/electron-13-blink-gcc-ambiguous-nodestructor.patch b/electron-13-blink-gcc-ambiguous-nodestructor.patch deleted file mode 100644 index 3828e92..0000000 --- a/electron-13-blink-gcc-ambiguous-nodestructor.patch +++ /dev/null @@ -1,17 +0,0 @@ -Index: electron-16.0.6/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc -=================================================================== ---- electron-16.0.6.orig/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc 2022-01-10 16:24:28.724461941 +0100 -+++ electron-16.0.6/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc 2022-01-13 16:04:50.310112542 +0100 -@@ -63,10 +63,10 @@ const int kUpdateBufferSizeFrequency = 3 - constexpr base::TimeDelta kSeekDelay = base::Milliseconds(20); - - std::vector* GetStreamingSchemes() { -- static base::NoDestructor> streaming_schemes({ -+ static base::NoDestructor> streaming_schemes{{ - url::kHttpsScheme, - url::kHttpScheme -- }); -+ }}; - return streaming_schemes.get(); - } - diff --git a/electron-16-system-node-headers.patch b/electron-16-system-node-headers.patch index 875fec5..9502c4f 100644 --- a/electron-16-system-node-headers.patch +++ b/electron-16-system-node-headers.patch @@ -10,6 +10,6 @@ Index: electron-17.1.0/third_party/electron_node/common.gypi + 'cflags': [ '-I/usr/include/electron' ], + 'libraries': [ '-lz' ], + }], - [ 'OS in "linux freebsd openbsd solaris aix os400"', { + [ 'OS in "linux freebsd openbsd solaris aix os400 openharmony"', { 'cflags': [ '-pthread' ], 'ldflags': [ '-pthread' ], diff --git a/electron-35.7.0.tar.zst b/electron-35.7.0.tar.zst deleted file mode 100644 index 98a2bb2..0000000 --- a/electron-35.7.0.tar.zst +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad4c8f4276ffce80db7317206ea75a846d66b6e3aab7c00220a4cd771b0b448f -size 749643533 diff --git a/electron-37.3.1.tar.zst b/electron-37.3.1.tar.zst new file mode 100644 index 0000000..e8fd572 --- /dev/null +++ b/electron-37.3.1.tar.zst @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edd5a8f5c9d5b2830aed3b564f239eed1a28c244ab0f5f870014161291a60a53 +size 1071121847 diff --git a/event_record-optional-initializer.patch b/event_record-optional-initializer.patch new file mode 100644 index 0000000..d7264f7 --- /dev/null +++ b/event_record-optional-initializer.patch @@ -0,0 +1,11 @@ +--- src/services/network/public/cpp/ad_auction/event_record.cc.orig 2025-08-15 17:32:28.601405234 +0200 ++++ src/services/network/public/cpp/ad_auction/event_record.cc 2025-08-16 10:18:19.106421517 +0200 +@@ -49,7 +49,7 @@ std::optional> + const auto it = dict.find("eligible-origins"); + if (it == dict.end()) { + // "eligible-origins" is optional, so just return an empty list. +- return {{}}; ++ return std::optional>(std::in_place); + } + const net::structured_headers::ParameterizedMember& parameterized_member = + it->second; diff --git a/exception_state-constexpr-initializer.patch b/exception_state-constexpr-initializer.patch deleted file mode 100644 index 0359f2d..0000000 --- a/exception_state-constexpr-initializer.patch +++ /dev/null @@ -1,15 +0,0 @@ -In file included from ../../third_party/blink/renderer/platform/bindings/bigint.cc:7: -../../third_party/blink/renderer/platform/bindings/exception_state.h:136:37: error: ‘constexpr’ static data member ‘kEmptyContext’ must have an initializer - 136 | static constexpr ExceptionContext kEmptyContext; - ---- src/third_party/blink/renderer/platform/bindings/exception_state.h.orig 2025-04-16 14:36:33.017070028 +0200 -+++ src/third_party/blink/renderer/platform/bindings/exception_state.h 2025-04-16 20:05:07.925331205 +0200 -@@ -133,7 +133,7 @@ class PLATFORM_EXPORT ExceptionState { - // Delegated constructor for DummyExceptionStateForTesting - explicit ExceptionState(DummyExceptionStateForTesting& dummy_derived); - -- static constexpr ExceptionContext kEmptyContext; -+ static constexpr ExceptionContext kEmptyContext{}; - - private: - void SetExceptionInfo(ExceptionCode, const String&); diff --git a/extensions-common-assert.patch b/extensions-common-assert.patch deleted file mode 100644 index 5fa45fa..0000000 --- a/extensions-common-assert.patch +++ /dev/null @@ -1,134 +0,0 @@ -From cf0e064ce3b7c6b809861a6d299165b74cce109e Mon Sep 17 00:00:00 2001 -From: James Cook -Date: Thu, 22 May 2025 10:23:47 -0700 -Subject: [PATCH] extensions: Clean up ENABLE_EXTENSIONS in //extensions - -TestRuntimeApiDelegate can be safely added to the build now. -Also, replace ENABLE_EXTENSIONS || ENABLE_DESKTOP_ANDROID_EXTENSIONS -with ENABLE_EXTENSIONS_CORE, to be consistent with the rest of the -codebase. - -Bug: 356905053 -Change-Id: I616391c2843c6c5e20188803f2a51c6f83165927 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6576511 -Reviewed-by: Devlin Cronin -Commit-Queue: James Cook -Cr-Commit-Position: refs/heads/main@{#1464202} ---- - extensions/BUILD.gn | 12 ++---------- - extensions/browser/extension_registry.h | 3 +-- - extensions/browser/extension_system.h | 3 +-- - extensions/browser/test_extensions_browser_client.cc | 12 +----------- - extensions/common/extension.h | 3 +-- - 5 files changed, 6 insertions(+), 27 deletions(-) - -diff --git a/extensions/BUILD.gn b/extensions/BUILD.gn -index 0ea291f16ba70b..586fd7461e4cd9 100644 ---- a/extensions/BUILD.gn -+++ b/extensions/BUILD.gn -@@ -111,6 +111,8 @@ static_library("test_support") { - "browser/test_image_loader.h", - "browser/test_management_policy.cc", - "browser/test_management_policy.h", -+ "browser/test_runtime_api_delegate.cc", -+ "browser/test_runtime_api_delegate.h", - "common/extension_builder.cc", - "common/extension_builder.h", - "common/manifest_test.cc", -@@ -198,16 +200,6 @@ static_library("test_support") { - deps += [ "//components/guest_view/browser:test_support" ] - } - -- # TODO(https://crbug.com/356905053): The following files don't compile cleanly -- # with desktop-android. Either make them compile, or determine they should -- # not be included and place them under a more appropriate if-block. -- if (enable_extensions) { -- sources += [ -- "browser/test_runtime_api_delegate.cc", -- "browser/test_runtime_api_delegate.h", -- ] -- } -- - # Generally, //extensions should not depend on //chromeos. However, a number - # of the APIs and the extensions shell already do. We should try to avoid - # expanding these dependencies. -diff --git a/extensions/browser/extension_registry.h b/extensions/browser/extension_registry.h -index 4ed65fdce8af21..1ee1b70458a068 100644 ---- a/extensions/browser/extension_registry.h -+++ b/extensions/browser/extension_registry.h -@@ -19,8 +19,7 @@ - #include "extensions/common/extension_id.h" - #include "extensions/common/extension_set.h" - --static_assert(BUILDFLAG(ENABLE_EXTENSIONS) || -- BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)); -+static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); - - namespace content { - class BrowserContext; -diff --git a/extensions/browser/extension_system.h b/extensions/browser/extension_system.h -index 369dad723495a4..eccf3b2d331724 100644 ---- a/extensions/browser/extension_system.h -+++ b/extensions/browser/extension_system.h -@@ -17,8 +17,7 @@ - #include "extensions/common/extension.h" - #include "extensions/common/extension_id.h" - --static_assert(BUILDFLAG(ENABLE_EXTENSIONS) || -- BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)); -+static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); - - namespace base { - class OneShotEvent; -diff --git a/extensions/browser/test_extensions_browser_client.cc b/extensions/browser/test_extensions_browser_client.cc -index 88ce18dd343016..f914fae7205f88 100644 ---- a/extensions/browser/test_extensions_browser_client.cc -+++ b/extensions/browser/test_extensions_browser_client.cc -@@ -10,6 +10,7 @@ - #include "build/chromeos_buildflags.h" - #include "content/public/browser/browser_context.h" - #include "extensions/browser/extension_host_delegate.h" -+#include "extensions/browser/test_runtime_api_delegate.h" - #include "extensions/browser/updater/null_extension_cache.h" - #include "extensions/buildflags/buildflags.h" - #include "extensions/common/extension_id.h" -@@ -17,13 +18,6 @@ - #include "services/network/public/mojom/url_loader.mojom.h" - #include "ui/base/l10n/l10n_util.h" - --// TODO(https://crbug.com/356905053): The following files don't compile cleanly --// with desktop-android. Either make them compile, or determine they should --// not be included and place them under a more appropriate if-block. --#if BUILDFLAG(ENABLE_EXTENSIONS) --#include "extensions/browser/test_runtime_api_delegate.h" --#endif -- - #if BUILDFLAG(IS_CHROMEOS) - #include "chromeos/ash/components/login/login_state/login_state.h" - #endif -@@ -260,11 +254,7 @@ void TestExtensionsBrowserClient::RegisterBrowserInterfaceBindersForFrame( - std::unique_ptr - TestExtensionsBrowserClient::CreateRuntimeAPIDelegate( - content::BrowserContext* context) const { --#if BUILDFLAG(ENABLE_EXTENSIONS) - return std::unique_ptr(new TestRuntimeAPIDelegate()); --#else -- return nullptr; --#endif - } - - const ComponentExtensionResourceManager* -diff --git a/extensions/common/extension.h b/extensions/common/extension.h -index ec776e6207057b..33a196f11a519a 100644 ---- a/extensions/common/extension.h -+++ b/extensions/common/extension.h -@@ -29,8 +29,7 @@ - #include "url/gurl.h" - #include "url/origin.h" - --static_assert(BUILDFLAG(ENABLE_EXTENSIONS) || -- BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)); -+static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); - - namespace extensions { - class HashedExtensionId; diff --git a/ffmpeg-4-AV_PROFILE.patch b/ffmpeg-4-AV_PROFILE.patch new file mode 100644 index 0000000..7fb3811 --- /dev/null +++ b/ffmpeg-4-AV_PROFILE.patch @@ -0,0 +1,215 @@ +From 129f48501a7c3fa4236234f2fa0aee490a845b59 Mon Sep 17 00:00:00 2001 +From: Thomas Guilbert +Date: Fri, 2 May 2025 08:58:47 -0700 +Subject: [PATCH] Roll src/third_party/ffmpeg/ 01f23648c..dcdd0fa51 (552 + commits) + +This CL rolls ffmpeg for M138. + +This roll includes the removal of many deprecated APIs: some FF_* +macros were consolidated as equivalent AV_* macros under +libavcodec/def.h + +https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/01f23648c6b8..dcdd0fa51b65 + +$ git log 01f23648c..dcdd0fa51 --date=short --no-merges --format='%ad %ae %s' +2025-05-01 tguilbert Remove deprecated av_stream_get_side_data() +2025-05-01 tguilbert README.chromium file +2025-05-01 tguilbert GN Configuration +2025-04-29 jamrial avcodec/cbs_apv: don't return an error when reading empty buffers +2025-04-27 sw fate: Add test for APV 422-10 profile +(...) +2025-03-18 andreas.rheinhardt avcodec/Makefile: Only compile executor when VVC decoder is enabled +2025-03-18 andreas.rheinhardt avcodec/vvc/Makefile: Move VVC decoder->h2645data dep to lavc/Makefile +2025-03-17 ffmpeg ffbuild: use response files only if ar accepts them +2025-03-18 timo avcodec/tableprint_vlc: fix build with --enable-hardcoded-tables +2025-03-18 timo avcodec/Makefile: fix build of exr decoder in odd configs + +Created with: + roll-dep src/third_party/ffmpeg + +Bug: 415118707 +Change-Id: Iae943ce996031d5a6f7dbbd2915ad9cfabadf4d6 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6506529 +Reviewed-by: Dale Curtis +Commit-Queue: Dale Curtis +Auto-Submit: Thomas Guilbert +Cr-Commit-Position: refs/heads/main@{#1455010} +--- + DEPS | 2 +- + media/ffmpeg/ffmpeg_common.cc | 44 +++++++++---------- + .../filters/ffmpeg_aac_bitstream_converter.cc | 12 ++--- + ...ffmpeg_aac_bitstream_converter_unittest.cc | 6 +-- + third_party/ffmpeg | 2 +- + 5 files changed, 33 insertions(+), 33 deletions(-) + +diff --git a/DEPS b/DEPS +index b80ab0a6d81811..9b247c02d2a202 100644 +--- a/DEPS ++++ b/DEPS +@@ -515,7 +515,7 @@ vars = { + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling ffmpeg + # and whatever else without interference from each other. +- 'ffmpeg_revision': '01f23648c6b84de6c0f717fa4e1816f53b9ee72e', ++ 'ffmpeg_revision': 'dcdd0fa51b65a0b1688ff6b8f0cc81908f09ded2', + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling webpagereplay + # and whatever else without interference from each other. +diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc +index cfd0552ee31088..610be2d37b351f 100644 +--- a/media/ffmpeg/ffmpeg_common.cc ++++ b/media/ffmpeg/ffmpeg_common.cc +@@ -263,22 +263,22 @@ AVCodecID VideoCodecToCodecID(VideoCodec video_codec) { + static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) { + // Clear out the CONSTRAINED & INTRA flags which are strict subsets of the + // corresponding profiles with which they're used. +- profile &= ~FF_PROFILE_H264_CONSTRAINED; +- profile &= ~FF_PROFILE_H264_INTRA; ++ profile &= ~AV_PROFILE_H264_CONSTRAINED; ++ profile &= ~AV_PROFILE_H264_INTRA; + switch (profile) { +- case FF_PROFILE_H264_BASELINE: ++ case AV_PROFILE_H264_BASELINE: + return H264PROFILE_BASELINE; +- case FF_PROFILE_H264_MAIN: ++ case AV_PROFILE_H264_MAIN: + return H264PROFILE_MAIN; +- case FF_PROFILE_H264_EXTENDED: ++ case AV_PROFILE_H264_EXTENDED: + return H264PROFILE_EXTENDED; +- case FF_PROFILE_H264_HIGH: ++ case AV_PROFILE_H264_HIGH: + return H264PROFILE_HIGH; +- case FF_PROFILE_H264_HIGH_10: ++ case AV_PROFILE_H264_HIGH_10: + return H264PROFILE_HIGH10PROFILE; +- case FF_PROFILE_H264_HIGH_422: ++ case AV_PROFILE_H264_HIGH_422: + return H264PROFILE_HIGH422PROFILE; +- case FF_PROFILE_H264_HIGH_444_PREDICTIVE: ++ case AV_PROFILE_H264_HIGH_444_PREDICTIVE: + return H264PROFILE_HIGH444PREDICTIVEPROFILE; + default: + DVLOG(1) << "Unknown profile id: " << profile; +@@ -289,23 +289,23 @@ static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) { + static int VideoCodecProfileToProfileID(VideoCodecProfile profile) { + switch (profile) { + case H264PROFILE_BASELINE: +- return FF_PROFILE_H264_BASELINE; ++ return AV_PROFILE_H264_BASELINE; + case H264PROFILE_MAIN: +- return FF_PROFILE_H264_MAIN; ++ return AV_PROFILE_H264_MAIN; + case H264PROFILE_EXTENDED: +- return FF_PROFILE_H264_EXTENDED; ++ return AV_PROFILE_H264_EXTENDED; + case H264PROFILE_HIGH: +- return FF_PROFILE_H264_HIGH; ++ return AV_PROFILE_H264_HIGH; + case H264PROFILE_HIGH10PROFILE: +- return FF_PROFILE_H264_HIGH_10; ++ return AV_PROFILE_H264_HIGH_10; + case H264PROFILE_HIGH422PROFILE: +- return FF_PROFILE_H264_HIGH_422; ++ return AV_PROFILE_H264_HIGH_422; + case H264PROFILE_HIGH444PREDICTIVEPROFILE: +- return FF_PROFILE_H264_HIGH_444_PREDICTIVE; ++ return AV_PROFILE_H264_HIGH_444_PREDICTIVE; + default: + DVLOG(1) << "Unknown VideoCodecProfile: " << profile; + } +- return FF_PROFILE_UNKNOWN; ++ return AV_PROFILE_UNKNOWN; + } + + SampleFormat AVSampleFormatToSampleFormat(AVSampleFormat sample_format, +@@ -443,7 +443,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, + // TODO(dalecurtis): Just use the profile from the codec context if ffmpeg + // ever starts supporting xHE-AAC. + // FFmpeg provides the (defined_profile - 1) for AVCodecContext::profile +- if (codec_context->profile == FF_PROFILE_UNKNOWN || ++ if (codec_context->profile == AV_PROFILE_UNKNOWN || + codec_context->profile == mp4::AAC::kXHeAAcType - 1) { + // Errors aren't fatal here, so just drop any MediaLog messages. + NullMediaLog media_log; +@@ -661,16 +661,16 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream, + break; + case VideoCodec::kVP9: + switch (codec_context->profile) { +- case FF_PROFILE_VP9_0: ++ case AV_PROFILE_VP9_0: + profile = VP9PROFILE_PROFILE0; + break; +- case FF_PROFILE_VP9_1: ++ case AV_PROFILE_VP9_1: + profile = VP9PROFILE_PROFILE1; + break; +- case FF_PROFILE_VP9_2: ++ case AV_PROFILE_VP9_2: + profile = VP9PROFILE_PROFILE2; + break; +- case FF_PROFILE_VP9_3: ++ case AV_PROFILE_VP9_3: + profile = VP9PROFILE_PROFILE3; + break; + default: +diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc +index 7fd37e90b7e475..c00ac262dabb19 100644 +--- a/media/filters/ffmpeg_aac_bitstream_converter.cc ++++ b/media/filters/ffmpeg_aac_bitstream_converter.cc +@@ -68,17 +68,17 @@ bool GenerateAdtsHeader(int codec, + hdr[1] |= 1; + + switch (audio_profile) { +- case FF_PROFILE_AAC_MAIN: ++ case AV_PROFILE_AAC_MAIN: + break; +- case FF_PROFILE_AAC_HE: +- case FF_PROFILE_AAC_HE_V2: +- case FF_PROFILE_AAC_LOW: ++ case AV_PROFILE_AAC_HE: ++ case AV_PROFILE_AAC_HE_V2: ++ case AV_PROFILE_AAC_LOW: + hdr[2] |= (1 << 6); + break; +- case FF_PROFILE_AAC_SSR: ++ case AV_PROFILE_AAC_SSR: + hdr[2] |= (2 << 6); + break; +- case FF_PROFILE_AAC_LTP: ++ case AV_PROFILE_AAC_LTP: + hdr[2] |= (3 << 6); + break; + default: +diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc +index 0e56a6ea5b5cb4..2a6ccb8c910f6c 100644 +--- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc ++++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc +@@ -41,7 +41,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test { + // Set up reasonable aac parameters + memset(&test_parameters_, 0, sizeof(AVCodecParameters)); + test_parameters_.codec_id = AV_CODEC_ID_AAC; +- test_parameters_.profile = FF_PROFILE_AAC_MAIN; ++ test_parameters_.profile = AV_PROFILE_AAC_MAIN; + test_parameters_.ch_layout.nb_channels = 2; + test_parameters_.extradata = extradata_header_; + test_parameters_.extradata_size = sizeof(extradata_header_); +@@ -131,7 +131,7 @@ TEST_F(FFmpegAACBitstreamConverterTest, Conversion_AudioProfileType) { + + EXPECT_EQ(profile, kAacMainProfile); + +- test_parameters_.profile = FF_PROFILE_AAC_HE; ++ test_parameters_.profile = AV_PROFILE_AAC_HE; + FFmpegAACBitstreamConverter converter_he(&test_parameters_); + + test_packet = ScopedAVPacket::Allocate(); +@@ -143,7 +143,7 @@ TEST_F(FFmpegAACBitstreamConverterTest, Conversion_AudioProfileType) { + + EXPECT_EQ(profile, kAacLowComplexityProfile); + +- test_parameters_.profile = FF_PROFILE_AAC_ELD; ++ test_parameters_.profile = AV_PROFILE_AAC_ELD; + FFmpegAACBitstreamConverter converter_eld(&test_parameters_); + + test_packet = ScopedAVPacket::Allocate(); diff --git a/ffmpeg-new-channel-layout.patch b/ffmpeg-new-channel-layout.patch index 70d59f5..78cd149 100644 --- a/ffmpeg-new-channel-layout.patch +++ b/ffmpeg-new-channel-layout.patch @@ -236,19 +236,6 @@ index 6f231c85729..ca5e5fb927d 100644 frame_length_ = header_plus_packet_size; } -diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc -index 1fd4c5ccd7d..f59bcd8fdaf 100644 ---- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc -+++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc -@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test { - memset(&test_parameters_, 0, sizeof(AVCodecParameters)); - test_parameters_.codec_id = AV_CODEC_ID_AAC; - test_parameters_.profile = FF_PROFILE_AAC_MAIN; -- test_parameters_.channels = 2; -+ test_parameters_.ch_layout.nb_channels = 2; - test_parameters_.extradata = extradata_header_; - test_parameters_.extradata_size = sizeof(extradata_header_); - } diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc index 6a56c675f7d..4615fdeb3fb 100644 --- a/media/filters/ffmpeg_audio_decoder.cc @@ -271,20 +258,6 @@ index 6a56c675f7d..4615fdeb3fb 100644 if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED && config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) { channel_layout = CHANNEL_LAYOUT_DISCRETE; -@@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) { - // Success! - av_sample_format_ = codec_context_->sample_fmt; - -- if (codec_context_->channels != config.channels()) { -+ if (codec_context_->ch_layout.nb_channels != config.channels()) { - MEDIA_LOG(ERROR, media_log_) - << "Audio configuration specified " << config.channels() - << " channels, but FFmpeg thinks the file contains " -- << codec_context_->channels << " channels"; -+ << codec_context_->ch_layout.nb_channels << " channels"; - ReleaseFFmpegResources(); - state_ = DecoderState::kUninitialized; - return false; @@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, if (frame->nb_samples <= 0) return AVERROR(EINVAL); diff --git a/fix-build-without-pdf.patch b/fix-build-without-pdf.patch deleted file mode 100644 index 20ac0c8..0000000 --- a/fix-build-without-pdf.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- src/chrome/browser/ui/lens/BUILD.gn.orig 2025-04-11 12:05:17.505799730 +0200 -+++ src/chrome/browser/ui/lens/BUILD.gn 2025-04-12 13:42:57.195753884 +0200 -@@ -276,13 +276,15 @@ source_set("interactive_ui_tests") { - "//components/feature_engagement/public", - "//components/lens:enterprise_policy", - "//components/lens:features", -- "//components/pdf/browser:browser", - "//components/prefs", - "//components/search_engines", - "//components/user_education/views", - "//content/test:test_support", - "//testing/gtest", - ] -+ if (enable_pdf) { -+ deps += [ "//components/pdf/browser:browser" ] -+ } - } - - source_set("unit_tests") { diff --git a/fix-build-without-screen-ai.patch b/fix-build-without-screen-ai.patch index 296f303..9a22974 100644 --- a/fix-build-without-screen-ai.patch +++ b/fix-build-without-screen-ai.patch @@ -21,53 +21,45 @@ "//services/strings", "//services/test/echo/public/mojom", @@ -8027,7 +8021,6 @@ test("unit_tests") { - - # Non-android deps for "unit_tests" target. + # + # TODO(crbug.com/417513088): Maybe merge with the non-android `deps` declaration above? deps += [ - "../browser/screen_ai:screen_ai_install_state", "//chrome/browser/apps:icon_standardizer", "//chrome/browser/apps/app_service", "//chrome/browser/apps/app_service:app_registry_cache_waiter", @@ -8172,7 +8165,6 @@ test("unit_tests") { - "//services/device/public/cpp/bluetooth", + "//components/webapps/browser", "//services/metrics/public/cpp:ukm_builders", "//services/network:test_support", - "//services/screen_ai:test_support", - "//services/video_effects/test:test_support", "//third_party/crashpad/crashpad/util", "//third_party/libaddressinput", + "//third_party/lzma_sdk/google:unit_tests", @@ -8445,7 +8437,6 @@ test("unit_tests") { "//chrome/browser/push_notification", "//chrome/browser/push_notification:test_support", "//chrome/browser/push_notification/protos:proto", - "//chrome/browser/screen_ai/public:test_support", + "//chrome/browser/sharesheet", "//chrome/browser/smart_card:smart_card", "//chrome/browser/task_manager:impl", - "//chrome/browser/ui/ash:test_support", -@@ -8591,7 +8582,6 @@ test("unit_tests") { - "//chrome/browser/nearby_sharing/contacts:unit_tests", - "//chrome/browser/nearby_sharing/local_device_data:unit_tests", - "//chrome/browser/policy:unit_tests", -- "//chrome/browser/screen_ai:unit_tests", - "//chrome/browser/smart_card:unit_tests", - "//chrome/browser/support_tool/ash:unit_tests", - "//chrome/browser/ui/ash:unit_tests", --- src/chrome/browser/BUILD.gn.orig 2025-04-11 12:13:12.927314100 +0200 +++ src/chrome/browser/BUILD.gn 2025-04-12 13:12:42.819768051 +0200 @@ -4228,10 +4228,6 @@ static_library("browser") { + "//chrome/browser/metrics/desktop_session_duration", "//chrome/browser/new_tab_page/chrome_colors", "//chrome/browser/policy:path_parser", - "//chrome/browser/resources:component_extension_resources", - "//chrome/browser/screen_ai:prefs", - "//chrome/browser/screen_ai:screen_ai_install_state", - "//chrome/browser/screen_ai:screen_ai_service_router_factory", - "//chrome/browser/screen_ai/public:optical_character_recognizer", "//chrome/browser/search/background", + "//chrome/browser/sharing_hub", "//chrome/browser/smart_card", - "//chrome/browser/themes", @@ -4357,9 +4353,6 @@ static_library("browser") { + "//components/webauthn/core/browser", "//components/webauthn/core/browser:passkey_model", - "//services/device/public/cpp/bluetooth", "//services/device/public/cpp/hid", - "//services/screen_ai", - "//services/screen_ai/public/cpp:utilities", @@ -96,8 +88,8 @@ "//skia", "//sql", @@ -145,7 +144,6 @@ static_library("utility") { - "//chrome/common/importer:interfaces", "//components/autofill/core/common", + "//components/user_data_importer/common", "//services/proxy_resolver:lib", - "//services/screen_ai", ] @@ -114,8 +106,8 @@ ] @@ -68,9 +67,6 @@ source_set("screen_ai_service_router_fac - "//chrome/browser/profiles:profile", "//components/keyed_service/core", + "//components/performance_manager:performance_manager", "//content/public/browser", - "//services/screen_ai/public/cpp:utilities", - "//services/screen_ai/public/mojom:factory", @@ -156,7 +148,7 @@ --- src/chrome/browser/ui/BUILD.gn.orig 2025-04-11 12:05:17.331313863 +0200 +++ src/chrome/browser/ui/BUILD.gn 2025-04-12 13:26:46.759762260 +0200 @@ -1705,8 +1705,6 @@ static_library("ui") { - "//chrome/browser/reading_list", + "//chrome/browser/regional_capabilities", "//chrome/browser/safe_browsing", "//chrome/browser/safe_browsing:advanced_protection", - "//chrome/browser/screen_ai:screen_ai_install_state", diff --git a/fix-build-without-video-effects.patch b/fix-build-without-video-effects.patch deleted file mode 100644 index 40c3fe9..0000000 --- a/fix-build-without-video-effects.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 09a3abf8f4aca3b00ccbabc860b0819d7e3ea206 Mon Sep 17 00:00:00 2001 -From: Yunsik Jung -Date: Fri, 21 Mar 2025 08:12:22 -0700 -Subject: [PATCH] Fix build error when "enable_video_effects=false" in Linux - -kVideoEffects is engaged even when ENABLE_VIDEO_EFFECTS is false. -(https://crrev.com/c/5898146) -However, "video_effects_sandbox_hook_linux.h" is not included when -ENABLE_VIDEO_EFFECTS is false which caused build error. - -Thus, include "video_effects_sandbox_hook_linux.h" in Linux regardless -of ENABLE_VIDEO_EFFECTS. - -Bug: N/A -Change-Id: If0bb3f1b391a7960ee8ff9ad83d8c858a24cedb5 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6380633 -Reviewed-by: Rakina Zata Amni -Reviewed-by: Dave Tapuska -Commit-Queue: Dave Tapuska -Cr-Commit-Position: refs/heads/main@{#1436051} ---- - content/utility/utility_main.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/content/utility/utility_main.cc b/content/utility/utility_main.cc -index 7456eab4558962..ffb16be8ce8541 100644 ---- a/content/utility/utility_main.cc -+++ b/content/utility/utility_main.cc -@@ -66,9 +66,9 @@ - - #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) - --#if BUILDFLAG(ENABLE_VIDEO_EFFECTS) && BUILDFLAG(IS_LINUX) -+#if BUILDFLAG(IS_LINUX) - #include "services/video_effects/video_effects_sandbox_hook_linux.h" // nogncheck --#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS) && BUILDFLAG(IS_LINUX) -+#endif // BUILDFLAG(IS_LINUX) - - #if BUILDFLAG(IS_CHROMEOS) - #include "chromeos/ash/components/assistant/buildflags.h" diff --git a/fix-building-with-pipewire-1.3.82.patch b/fix-building-with-pipewire-1.3.82.patch deleted file mode 100644 index 72a1b19..0000000 --- a/fix-building-with-pipewire-1.3.82.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: src/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc -=================================================================== ---- src.orig/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc -+++ src/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc -@@ -85,7 +85,7 @@ PipeWireNode::PipeWireNode(PipeWireSessi - .param = OnNodeParam, - }; - -- pw_node_add_listener(proxy_, &node_listener_, &node_events, this); -+ pw_node_add_listener((struct pw_node*)proxy_, &node_listener_, &node_events, this); - } - - // static -@@ -117,7 +117,7 @@ void PipeWireNode::OnNodeInfo(void* data - uint32_t id = info->params[i].id; - if (id == SPA_PARAM_EnumFormat && - info->params[i].flags & SPA_PARAM_INFO_READ) { -- pw_node_enum_params(that->proxy_, 0, id, 0, UINT32_MAX, nullptr); -+ pw_node_enum_params((struct pw_node*)that->proxy_, 0, id, 0, UINT32_MAX, nullptr); - break; - } - } diff --git a/fpic.patch b/fpic.patch index 06aefb2..a8f5665 100644 --- a/fpic.patch +++ b/fpic.patch @@ -73,26 +73,26 @@ Use -fpic for code which goes only in dlls (gives smaller code), sources = [ "compression_utils_portable.cc", "compression_utils_portable.h", ---- src/ui/qt/BUILD.gn.orig 2025-04-10 19:56:03.150817690 +0200 -+++ src/ui/qt/BUILD.gn 2025-04-11 11:42:11.904342754 +0200 +--- src/ui/qt/BUILD.gn.orig 2025-07-19 11:32:45.537979340 +0200 ++++ src/ui/qt/BUILD.gn 2025-07-19 16:18:57.173759933 +0200 @@ -39,6 +39,8 @@ source_set("qt_interface") { # target instead. public = [ "qt_interface.h" ] sources = [ "qt_interface.cc" ] + cflags = ["-fpic", "-fno-semantic-interposition"] + asmflags = ["-fpic", "-fno-semantic-interposition"] - } - template("qt_shim") { -@@ -99,6 +101,8 @@ template("qt_shim") { + # Don't use libc++ modules as this depends on libstdc++. + use_libcxx_modules = false +@@ -102,6 +104,8 @@ template("qt_shim") { sources += get_target_outputs(":generate_moc" + invoker.qt_version) deps += [ ":generate_moc" + invoker.qt_version ] } + cflags = ["-fpic", "-fno-semantic-interposition"] + asmflags = ["-fpic", "-fno-semantic-interposition"] - } - } - if (use_qt5) { + + # Don't depend on libcxx modules. This binary doesn't depend on the standard + # library in libcxx. Instead it depends on the libcxx in the sysroot, so --- src/third_party/abseil-cpp/BUILD.gn.old +++ src/third_party/abseil-cpp/BUILD.gn @@ -132,6 +132,8 @@ config("absl_define_config") { diff --git a/html_permission_element_strings_map-reproducible.patch b/html_permission_element_strings_map-reproducible.patch deleted file mode 100644 index c052a66..0000000 --- a/html_permission_element_strings_map-reproducible.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- src/third_party/blink/renderer/build/scripts/generate_permission_element_grd.py 2025-05-07 19:56:08.225814691 +0200 -+++ src/third_party/blink/renderer/build/scripts/generate_permission_element_grd.py 2025-05-09 17:27:22.302946256 +0200 -@@ -148,6 +148,18 @@ def generate_grd_file(id_map, file_list, - with open(output_file_path, 'wb') as output_file: - output_file.write(doc.toxml(encoding='UTF-8')) - -+# Generate the shortest string containing both `long` and `short` as substrings. -+# The full n-string problem is NP-complete, but we only use a crude greedy heuristic. -+def superstring(long, short): -+ if long.find(short) >= 0: -+ return long -+ for i in range(len(short), 0, -1): -+ if(long[-i:] == short[:i]): -+ return long + short[i:] -+ if(short[-i:] == long[:i]): -+ return short + long[i:] -+ return long + short -+ - - def generate_cpp_mapping(orderings, input_file_path, output_file_path): - doc = parse(input_file_path) -@@ -161,8 +173,8 @@ def generate_cpp_mapping(orderings, inpu - # this code will use `pt-pt` (Portuguese from Portugal). - custom_locale_mappings = {"en-gb": "en", "pt-pt": "pt", "zh-cn": "zh"} - -- langs = '' -- lang_map = {} -+ -+ locales = set() - message_map = [] - for message in messages: - message_name = message.getAttribute('name') -@@ -171,20 +183,18 @@ def generate_cpp_mapping(orderings, inpu - '_', 1)[1].lower().replace("_", "-") - if locale in custom_locale_mappings: - locale = custom_locale_mappings[locale] -- if locale not in lang_map: -- # String concatenation is inefficientin Python, since strings -- # are immutable. However, maintaining a list of chars and -- # re-implementing find() is also unpleasant. -- langs_idx = langs.find(locale) -- if langs_idx < 0: -- lang_map[locale] = (len(langs), len(locale)) -- langs += locale -- else: -- # If locale is already a substring in the existing list, -- # the substring can simply be reused to save some space. -- lang_map[locale] = (langs_idx, len(locale)) -+ locales.add(locale) # Need to add all locales at first because iteration order is non-deterministic - message_map.append((locale, base_message, message_name)) - -+ langs = '' -+ locales = sorted(locales, key=lambda x: (-len(x), x)) -+ for locale in locales: # Sort by length so that we add `ab-cd` before `ab` and `cd` -+ langs = superstring(langs, locale) -+ -+ lang_map = {} -+ for locale in locales: -+ lang_map[locale] = langs.find(locale), len(locale) -+ - output_file.write(kStringMapCcPrefix) - output_file.write(f' "{langs}";\n') - output_file.write(kStringMapCcMidfix) diff --git a/identity_request_account-incomplete-IdentityProviderData.patch b/identity_request_account-incomplete-IdentityProviderData.patch new file mode 100644 index 0000000..01398f8 --- /dev/null +++ b/identity_request_account-incomplete-IdentityProviderData.patch @@ -0,0 +1,227 @@ +--- src/content/public/browser/identity_request_dialog_controller.h.orig 2025-08-15 17:32:26.573405615 +0200 ++++ src/content/public/browser/identity_request_dialog_controller.h 2025-08-16 00:53:34.120821675 +0200 +@@ -14,7 +14,6 @@ + #include "base/memory/ref_counted.h" + #include "content/common/content_export.h" + #include "content/public/browser/identity_request_account.h" +-#include "third_party/blink/public/mojom/webid/federated_auth_request.mojom-forward.h" + #include "third_party/skia/include/core/SkColor.h" + #include "url/gurl.h" + #include "url/origin.h" +@@ -22,35 +21,6 @@ + namespace content { + class WebContents; + +-// A Java counterpart will be generated for this enum. +-// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.content.webid +-// GENERATED_JAVA_CLASS_NAME_OVERRIDE: IdentityRequestDialogDisclosureField +-enum class IdentityRequestDialogDisclosureField { +- kName, +- kEmail, +- kPicture, +- kPhoneNumber, +- kUsername +-}; +- +-// The client metadata that will be used to display a FedCM dialog. This data is +-// extracted from the client metadata endpoint from the FedCM API, where +-// 'client' is essentially the relying party which invoked the API. +-struct CONTENT_EXPORT ClientMetadata { +- ClientMetadata(const GURL& terms_of_service_url, +- const GURL& privacy_policy_url, +- const GURL& brand_icon_url, +- const gfx::Image& brand_decoded_icon); +- ClientMetadata(const ClientMetadata& other); +- ~ClientMetadata(); +- +- GURL terms_of_service_url; +- GURL privacy_policy_url; +- GURL brand_icon_url; +- // This will be an empty image if the fetching never happened or if it failed. +- gfx::Image brand_decoded_icon; +-}; +- + // The information about an error that will be used to display a FedCM dialog. + // This data is extracted from the error object returned by the identity + // provider when the user attempts to login via the FedCM API and an error +@@ -60,70 +30,6 @@ struct CONTENT_EXPORT IdentityCredential + GURL url; + }; + +-// The metadata about the identity provider that will be used to display a FedCM +-// dialog. This data is extracted from the config file which is fetched when the +-// FedCM API is invoked. +-struct CONTENT_EXPORT IdentityProviderMetadata { +- IdentityProviderMetadata(); +- IdentityProviderMetadata(const IdentityProviderMetadata& other); +- ~IdentityProviderMetadata(); +- +- std::optional brand_text_color; +- std::optional brand_background_color; +- GURL brand_icon_url; +- GURL idp_login_url; +- std::string requested_label; +- // For registered IdPs, the type is used to only show the accounts when the +- // RP is compatible. +- std::vector types; +- // The token formats that are supported. +- std::vector formats; +- // The URL of the configuration endpoint. This is stored in +- // IdentityProviderMetadata so that the UI code can pass it along when an +- // Account is selected by the user. +- GURL config_url; +- // Whether this IdP supports signing in to additional accounts. +- bool supports_add_account{false}; +- // Whether this IdP has any filtered out account. This is reset to false each +- // time the accounts dialog is shown and recomputed then. +- bool has_filtered_out_account{false}; +- // This will be an empty image if fetching failed. +- gfx::Image brand_decoded_icon; +-}; +- +-// This class contains all of the data specific to an identity provider that is +-// going to be used to display a FedCM dialog. This data is gathered from +-// endpoints fetched when the FedCM API is invoked as well as from the +-// parameters provided by the relying party when the API is invoked. +-class CONTENT_EXPORT IdentityProviderData +- : public base::RefCounted { +- public: +- IdentityProviderData(const std::string& idp_for_display, +- const IdentityProviderMetadata& idp_metadata, +- const ClientMetadata& client_metadata, +- blink::mojom::RpContext rp_context, +- std::optional format, +- const std::vector& +- disclosure_fields, +- bool has_login_status_mismatch); +- +- std::string idp_for_display; +- IdentityProviderMetadata idp_metadata; +- ClientMetadata client_metadata; +- blink::mojom::RpContext rp_context; +- std::optional format; +- // For which fields should the dialog request permission for (assuming +- // this is for signup). +- std::vector disclosure_fields; +- // Whether there was some login status API mismatch when fetching the IDP's +- // accounts. +- bool has_login_status_mismatch; +- +- private: +- friend class base::RefCounted; +- +- ~IdentityProviderData(); +-}; + + // The relying party data that will be used to display a FedCM dialog. This data + // is extracted from the website which invoked the API, not from the FedCM +--- src/content/public/browser/identity_request_account.h.orig 2025-08-15 17:32:26.573405615 +0200 ++++ src/content/public/browser/identity_request_account.h 2025-08-16 00:53:42.592813124 +0200 +@@ -13,13 +13,106 @@ + #include "base/time/time.h" + #include "content/common/content_export.h" + #include "third_party/blink/public/common/webid/login_status_account.h" ++#include "third_party/blink/public/mojom/webid/federated_auth_request.mojom-forward.h" + #include "third_party/skia/include/core/SkColor.h" + #include "ui/gfx/image/image.h" + #include "url/gurl.h" + + namespace content { + +-class IdentityProviderData; ++// A Java counterpart will be generated for this enum. ++// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.content.webid ++// GENERATED_JAVA_CLASS_NAME_OVERRIDE: IdentityRequestDialogDisclosureField ++enum class IdentityRequestDialogDisclosureField { ++ kName, ++ kEmail, ++ kPicture, ++ kPhoneNumber, ++ kUsername ++}; ++ ++// The client metadata that will be used to display a FedCM dialog. This data is ++// extracted from the client metadata endpoint from the FedCM API, where ++// 'client' is essentially the relying party which invoked the API. ++struct CONTENT_EXPORT ClientMetadata { ++ ClientMetadata(const GURL& terms_of_service_url, ++ const GURL& privacy_policy_url, ++ const GURL& brand_icon_url, ++ const gfx::Image& brand_decoded_icon); ++ ClientMetadata(const ClientMetadata& other); ++ ~ClientMetadata(); ++ ++ GURL terms_of_service_url; ++ GURL privacy_policy_url; ++ GURL brand_icon_url; ++ // This will be an empty image if the fetching never happened or if it failed. ++ gfx::Image brand_decoded_icon; ++}; ++ ++// The metadata about the identity provider that will be used to display a FedCM ++// dialog. This data is extracted from the config file which is fetched when the ++// FedCM API is invoked. ++struct CONTENT_EXPORT IdentityProviderMetadata { ++ IdentityProviderMetadata(); ++ IdentityProviderMetadata(const IdentityProviderMetadata& other); ++ ~IdentityProviderMetadata(); ++ ++ std::optional brand_text_color; ++ std::optional brand_background_color; ++ GURL brand_icon_url; ++ GURL idp_login_url; ++ std::string requested_label; ++ // For registered IdPs, the type is used to only show the accounts when the ++ // RP is compatible. ++ std::vector types; ++ // The token formats that are supported. ++ std::vector formats; ++ // The URL of the configuration endpoint. This is stored in ++ // IdentityProviderMetadata so that the UI code can pass it along when an ++ // Account is selected by the user. ++ GURL config_url; ++ // Whether this IdP supports signing in to additional accounts. ++ bool supports_add_account{false}; ++ // Whether this IdP has any filtered out account. This is reset to false each ++ // time the accounts dialog is shown and recomputed then. ++ bool has_filtered_out_account{false}; ++ // This will be an empty image if fetching failed. ++ gfx::Image brand_decoded_icon; ++}; ++ ++// This class contains all of the data specific to an identity provider that is ++// going to be used to display a FedCM dialog. This data is gathered from ++// endpoints fetched when the FedCM API is invoked as well as from the ++// parameters provided by the relying party when the API is invoked. ++class CONTENT_EXPORT IdentityProviderData ++ : public base::RefCounted { ++ public: ++ IdentityProviderData(const std::string& idp_for_display, ++ const IdentityProviderMetadata& idp_metadata, ++ const ClientMetadata& client_metadata, ++ blink::mojom::RpContext rp_context, ++ std::optional format, ++ const std::vector& ++ disclosure_fields, ++ bool has_login_status_mismatch); ++ ++ std::string idp_for_display; ++ IdentityProviderMetadata idp_metadata; ++ ClientMetadata client_metadata; ++ blink::mojom::RpContext rp_context; ++ std::optional format; ++ // For which fields should the dialog request permission for (assuming ++ // this is for signup). ++ std::vector disclosure_fields; ++ // Whether there was some login status API mismatch when fetching the IDP's ++ // accounts. ++ bool has_login_status_mismatch; ++ ++ private: ++ friend class base::RefCounted; ++ ++ ~IdentityProviderData(); ++}; + + // Represents a federated user account which is used when displaying the FedCM + // account selector. diff --git a/json_to_struct-fixed_flat_map-conflicting-declaration.patch b/json_to_struct-fixed_flat_map-conflicting-declaration.patch new file mode 100644 index 0000000..89e2f81 --- /dev/null +++ b/json_to_struct-fixed_flat_map-conflicting-declaration.patch @@ -0,0 +1,25 @@ +--- src/tools/json_to_struct/aggregation.py.orig 2025-08-15 17:32:37.009403662 +0200 ++++ src/tools/json_to_struct/aggregation.py 2025-08-16 00:58:01.264590353 +0200 +@@ -134,7 +134,9 @@ def _GenerateCCArray(type_name: str, agg + Returns: + str: The generated C++ array aggregation code. + """ +- res = f'\nconst auto {aggregation.name} =\n' ++ res = '\n const ' ++ res += f'std::array ' ++ res += f'{aggregation.name} =\n' + res += f' std::array' + + res += '({{\n' +@@ -157,7 +159,10 @@ def _GenerateCCMap(type_name: str, aggre + """ + key_type = aggregation.map_key_type + +- res = f'\nconst auto {aggregation.name} =\n' ++ res = f'\nconst ' ++ res += f'base::fixed_flat_map<{aggregation.map_key_type}, ' ++ res += f'const {type_name}*, {len(aggregation.GetSortedMapElements())}> ' ++ res += f'{aggregation.name} =\n' + res += f' base::MakeFixedFlatMap<{key_type}, const {type_name}*>' + + res += '({\n' diff --git a/llhttp-lax-vector-conversions.patch b/llhttp-lax-vector-conversions.patch new file mode 100644 index 0000000..15a35a0 --- /dev/null +++ b/llhttp-lax-vector-conversions.patch @@ -0,0 +1,88 @@ +It makes no sense fixing this since llhttp's code is partly generated. + +../../third_party/electron_node/deps/llhttp/src/llhttp.c: In function ‘llhttp__internal__run’: +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2645:9: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts + 2645 | ); + | ^ +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2643:11: error: incompatible type for argument 1 of ‘vandq_u16’ + 2643 | vcgeq_u8(input, vdupq_n_u8(' ')), + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + | | + | uint8x16_t +In file included from ../../third_party/electron_node/deps/llhttp/src/llhttp.c:14: +/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1088:23: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’ + 1088 | vandq_u16 (uint16x8_t __a, uint16x8_t __b) + | ~~~~~~~~~~~^~~ +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2644:11: error: incompatible type for argument 2 of ‘vandq_u16’ + 2644 | vcleq_u8(input, vdupq_n_u8('~')) + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + | | + | uint8x16_t +/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1088:39: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’ + 1088 | vandq_u16 (uint16x8_t __a, uint16x8_t __b) + | ~~~~~~~~~~~^~~ +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2646:26: error: incompatible type for argument 1 of ‘vorrq_u16’ + 2646 | mask = vorrq_u16(mask, single); + | ^~~~ + | | + | uint8x16_t +/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1200:23: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’ + 1200 | vorrq_u16 (uint16x8_t __a, uint16x8_t __b) + | ~~~~~~~~~~~^~~ +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2646:32: error: incompatible type for argument 2 of ‘vorrq_u16’ + 2646 | mask = vorrq_u16(mask, single); + | ^~~~~~ + | | + | uint8x16_t +/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1200:39: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’ + 1200 | vorrq_u16 (uint16x8_t __a, uint16x8_t __b) + | ~~~~~~~~~~~^~~ +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2648:11: error: incompatible type for argument 1 of ‘vandq_u16’ + 2648 | vcgeq_u8(input, vdupq_n_u8(0x80)), + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + | | + | uint8x16_t +/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1088:23: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’ + 1088 | vandq_u16 (uint16x8_t __a, uint16x8_t __b) + | ~~~~~~~~~~~^~~ +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2649:11: error: incompatible type for argument 2 of ‘vandq_u16’ + 2649 | vcleq_u8(input, vdupq_n_u8(0xff)) + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + | | + | uint8x16_t +/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1088:39: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’ + 1088 | vandq_u16 (uint16x8_t __a, uint16x8_t __b) + | ~~~~~~~~~~~^~~ +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2651:26: error: incompatible type for argument 1 of ‘vorrq_u16’ + 2651 | mask = vorrq_u16(mask, single); + | ^~~~ + | | + | uint8x16_t +/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1200:23: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’ + 1200 | vorrq_u16 (uint16x8_t __a, uint16x8_t __b) + | ~~~~~~~~~~~^~~ +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2651:32: error: incompatible type for argument 2 of ‘vorrq_u16’ + 2651 | mask = vorrq_u16(mask, single); + | ^~~~~~ + | | + | uint8x16_t +/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1200:39: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’ + 1200 | vorrq_u16 (uint16x8_t __a, uint16x8_t __b) + | ~~~~~~~~~~~^~~ +../../third_party/electron_node/deps/llhttp/src/llhttp.c:2652:30: error: incompatible type for argument 1 of ‘vshrn_n_u16’ + 2652 | narrow = vshrn_n_u16(mask, 4); + | ^~~~ + | | + | uint8x16_t + + +--- src/third_party/electron_node/deps/llhttp/unofficial.gni.orig 2025-08-15 17:33:00.577399458 +0200 ++++ src/third_party/electron_node/deps/llhttp/unofficial.gni 2025-08-18 17:28:08.494515274 +0200 +@@ -19,6 +19,7 @@ template("llhttp_gn_build") { + public_configs = [ ":llhttp_config" ] + include_dirs = [ "include" ] + sources = gypi_values.llhttp_sources ++ cflags = ["-flax-vector-conversions"] + if (is_clang || !is_win) { + cflags_c = [ + "-Wno-implicit-fallthrough", diff --git a/lock_impl_posix-pthread_mutexattr_setprotocol-conflicting.patch b/lock_impl_posix-pthread_mutexattr_setprotocol-conflicting.patch new file mode 100644 index 0000000..9bcbad3 --- /dev/null +++ b/lock_impl_posix-pthread_mutexattr_setprotocol-conflicting.patch @@ -0,0 +1,19 @@ +--- src/base/synchronization/lock_impl_posix.cc.orig 2025-08-15 17:32:21.581406552 +0200 ++++ src/base/synchronization/lock_impl_posix.cc 2025-08-15 21:57:54.242385089 +0200 +@@ -20,6 +20,8 @@ + #include "base/system/sys_info.h" + #include "build/build_config.h" + ++ ++#if BUILDFLAG(IS_ANDROID) + // On Android, `pthread_mutexattr_setprotocol()` is only defined in bionic + // starting with API level 28. Make it a weak import, so that we can compile. + extern "C" { +@@ -27,6 +29,7 @@ int __attribute__((weak)) pthread_mutexa + pthread_mutexattr_t* _Nonnull __attr, + int __protocol); + } ++#endif + + namespace base { + diff --git a/masked_domain_list-flatbuffers.patch b/masked_domain_list-flatbuffers.patch new file mode 100644 index 0000000..9d7dc5a --- /dev/null +++ b/masked_domain_list-flatbuffers.patch @@ -0,0 +1,25 @@ +This code fails to build but is gated by a disabled feature flag, disabling it unconditionally + + +--- src/components/ip_protection/common/masked_domain_list_manager.cc.orig 2025-08-22 20:17:46.149834100 +0200 ++++ src/components/ip_protection/common/masked_domain_list_manager.cc 2025-08-23 01:07:33.078746196 +0200 +@@ -41,8 +41,7 @@ using ::masked_domain_list::ResourceOwne + using ::network::mojom::IpProtectionProxyBypassPolicy; + + bool UseFlatbuffer() { +- return base::FeatureList::IsEnabled( +- network::features::kMaskedDomainListFlatbufferImpl); ++ return false; + } + + bool RestrictTopLevelSiteSchemes( +--- src/components/ip_protection/common/BUILD.gn.orig 2025-08-22 20:17:46.149834100 +0200 ++++ src/components/ip_protection/common/BUILD.gn 2025-08-23 01:06:48.134754665 +0200 +@@ -479,7 +479,6 @@ source_set("masked_domain_list_manager") + "masked_domain_list_manager.h", + ] + public_deps = [ +- ":masked_domain_list", + ":url_matcher_with_bypass", + "//base", + "//components/privacy_sandbox/masked_domain_list:masked_domain_list_proto", diff --git a/media_session_uma_helper-missing-optional.patch b/media_session_uma_helper-missing-optional.patch deleted file mode 100644 index bd6df81..0000000 --- a/media_session_uma_helper-missing-optional.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 4ca8cffec2e6dea43de24a6a9d88095b73ab10f4 Mon Sep 17 00:00:00 2001 -From: Ivan Murashov -Date: Wed, 19 Feb 2025 22:59:45 -0800 -Subject: [PATCH] IWYU: Add missing include for std::optional usage in - media_session_uma_helper.h - -In the CL https://crrev.com/c/6204145 used std::optional in -the content/browser/media/session/media_session_uma_helper.h, -but corresponding include was missed. -Added missing include for std::optional usage. - -Bug: 41455655 -Change-Id: I482a496f6f72762f02e8e6e1484a7eae58147148 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6279927 -Reviewed-by: Colin Blundell -Commit-Queue: Ivan Murashov -Reviewed-by: Tommy Steimel -Cr-Commit-Position: refs/heads/main@{#1422370} ---- - content/browser/media/session/media_session_uma_helper.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/content/browser/media/session/media_session_uma_helper.h b/content/browser/media/session/media_session_uma_helper.h -index 70000267af9687..51dd098826020c 100644 ---- a/content/browser/media/session/media_session_uma_helper.h -+++ b/content/browser/media/session/media_session_uma_helper.h -@@ -5,6 +5,8 @@ - #ifndef CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_UMA_HELPER_H_ - #define CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_UMA_HELPER_H_ - -+#include -+ - #include "base/memory/raw_ptr.h" - #include "base/time/clock.h" - #include "base/time/time.h" diff --git a/node-cares-1.21-4.patch b/node-cares-1.21-4.patch new file mode 100644 index 0000000..4825724 --- /dev/null +++ b/node-cares-1.21-4.patch @@ -0,0 +1,35 @@ +From 2be863be08ff9f16eae6bb907388c354c55c3bfc Mon Sep 17 00:00:00 2001 +From: Ethan Arrowood +Date: Mon, 2 Jun 2025 09:29:36 -0600 +Subject: [PATCH] dns: fix dns query cache implementation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +PR-URL: https://github.com/nodejs/node/pull/58404 +Refs: https://github.com/nodejs/node/pull/57640 +Reviewed-By: Juan José Arboleda +Reviewed-By: Matteo Collina +Reviewed-By: Tim Perry +--- + src/cares_wrap.cc | 6 +++--- + test/parallel/test-dns.js | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc +index 6290bcd37f3411..5016c3d51dac66 100644 +--- a/third_party/electron_node/src/cares_wrap.cc ++++ b/third_party/electron_node/src/cares_wrap.cc +@@ -879,9 +879,9 @@ void ChannelWrap::Setup() { + } + + /* We do the call to ares_init_option for caller. */ +- const int optmask = +- ARES_OPT_FLAGS | ARES_OPT_TIMEOUTMS | +- ARES_OPT_SOCK_STATE_CB | ARES_OPT_TRIES; ++ const int optmask = ARES_OPT_FLAGS | ARES_OPT_TIMEOUTMS | ++ ARES_OPT_SOCK_STATE_CB | ARES_OPT_TRIES | ++ ARES_OPT_QUERY_CACHE; + r = ares_init_options(&channel_, &options, optmask); + + if (r != ARES_SUCCESS) { diff --git a/node-kParentNodeTag-constexpr-initializer.patch b/node-kParentNodeTag-constexpr-initializer.patch new file mode 100644 index 0000000..f9cae55 --- /dev/null +++ b/node-kParentNodeTag-constexpr-initializer.patch @@ -0,0 +1,14 @@ +--- src/third_party/blink/renderer/core/dom/node.h.orig 2025-08-15 17:32:29.121405137 +0200 ++++ src/third_party/blink/renderer/core/dom/node.h 2025-08-15 23:15:58.713118795 +0200 +@@ -1259,9 +1259,9 @@ class CORE_EXPORT Node : public EventTar + + private: + static constexpr struct ParentNodeTag { +- } kParentNodeTag; ++ } kParentNodeTag {}; + static constexpr struct ShadowHostTag { +- } kShadowHostTag; ++ } kShadowHostTag {}; + + using TaggedParentOrShadowHostNode = + subtle::TaggedUncompressedMember; diff --git a/node-llhttp9.3.patch b/node-llhttp9.3.patch deleted file mode 100644 index 68e8cf9..0000000 --- a/node-llhttp9.3.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 4454d09e8f7225ec1b576ef86c8705bca63a136c Mon Sep 17 00:00:00 2001 -From: Fedor Indutny <238531+indutny@users.noreply.github.com> -Date: Wed, 7 May 2025 07:21:52 -0700 -Subject: [PATCH] deps: update llhttp to 9.3.0 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -llhttp@9.3.0 optimizes header value parsing on ARM Neon/WASM, and adds -support for a protocol callback for use outside of the typical HTTP -setting (RTSP/ICE). - -PR-URL: https://github.com/nodejs/node/pull/58144 -Reviewed-By: Rafael Gonzaga -Reviewed-By: Juan José Arboleda -Reviewed-By: Matteo Collina -Reviewed-By: Marco Ippolito ---- - deps/llhttp/CMakeLists.txt | 7 +- - deps/llhttp/LICENSE | 22 + - deps/llhttp/README.md | 9 +- - deps/llhttp/include/llhttp.h | 10 +- - deps/llhttp/libllhttp.pc.in | 8 +- - deps/llhttp/src/api.c | 45 +- - deps/llhttp/src/llhttp.c | 2841 ++++++++--------- - src/node_http_parser.cc | 6 + - test/parallel/test-http-client-parse-error.js | 2 +- - 9 files changed, 1459 insertions(+), 1491 deletions(-) - create mode 100644 deps/llhttp/LICENSE - -diff --git a/src/node_http_parser.cc b/src/node_http_parser.cc -index acebdd952eb943..25aa204ee2c851 100644 ---- a/third_party/electron_node/src/node_http_parser.cc -+++ b/third_party/electron_node/src/node_http_parser.cc -@@ -1204,6 +1204,10 @@ void ConnectionsList::Expired(const FunctionCallbackInfo& args) { - - const llhttp_settings_t Parser::settings = { - Proxy::Raw, -+ -+ // on_protocol -+ nullptr, -+ - Proxy::Raw, - Proxy::Raw, - -@@ -1223,6 +1227,8 @@ const llhttp_settings_t Parser::settings = { - Proxy::Raw, - Proxy::Raw, - -+ // on_protocol_complete -+ nullptr, - // on_url_complete - nullptr, - // on_status_complete diff --git a/node-nghttp-1.50.patch b/node-nghttp-1.50.patch new file mode 100644 index 0000000..8468861 --- /dev/null +++ b/node-nghttp-1.50.patch @@ -0,0 +1,78 @@ +From 02a1505efcf7099498240e83327f7c0d71696f47 Mon Sep 17 00:00:00 2001 +From: Carlos Fuentes +Date: Thu, 5 Jun 2025 14:30:07 +0200 +Subject: [PATCH] http2: add lenient flag for RFC-9113 + +PR-URL: https://github.com/nodejs/node/pull/58116 +Reviewed-By: Tim Perry +Reviewed-By: Matteo Collina +Reviewed-By: Benjamin Gruenbaum +--- + doc/api/http2.md | 12 +++ + lib/internal/http2/util.js | 10 ++- + src/node_http2.cc | 6 ++ + src/node_http2_state.h | 1 + + .../test-http2-server-rfc-9113-client.js | 80 ++++++++++++++++++ + .../test-http2-server-rfc-9113-server.js | 83 +++++++++++++++++++ + .../test-http2-util-update-options-buffer.js | 6 +- + 7 files changed, 196 insertions(+), 2 deletions(-) + create mode 100644 test/parallel/test-http2-server-rfc-9113-client.js + create mode 100644 test/parallel/test-http2-server-rfc-9113-server.js + +diff --git a/lib/internal/http2/util.js b/lib/internal/http2/util.js +index 75312e5aa57c5f..396623d3b9d06f 100644 +--- a/third_party/electron_node/lib/internal/http2/util.js ++++ b/third_party/electron_node/lib/internal/http2/util.js +@@ -229,7 +229,8 @@ const IDX_OPTIONS_MAX_SESSION_MEMORY = 8; + const IDX_OPTIONS_MAX_SETTINGS = 9; + const IDX_OPTIONS_STREAM_RESET_RATE = 10; + const IDX_OPTIONS_STREAM_RESET_BURST = 11; +-const IDX_OPTIONS_FLAGS = 12; ++const IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION = 12; ++const IDX_OPTIONS_FLAGS = 13; + + function updateOptionsBuffer(options) { + let flags = 0; +@@ -293,6 +294,13 @@ function updateOptionsBuffer(options) { + optionsBuffer[IDX_OPTIONS_STREAM_RESET_BURST] = + MathMax(1, options.streamResetBurst); + } ++ ++ if (typeof options.strictFieldWhitespaceValidation === 'boolean') { ++ flags |= (1 << IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION); ++ optionsBuffer[IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION] = ++ options.strictFieldWhitespaceValidation === true ? 0 : 1; ++ } ++ + optionsBuffer[IDX_OPTIONS_FLAGS] = flags; + } + +diff --git a/src/node_http2.cc b/src/node_http2.cc +index 449ecdba807945..8e51129930f2cd 100644 +--- a/third_party/electron_node/src/node_http2.cc ++++ b/third_party/electron_node/src/node_http2.cc +@@ -159,6 +159,12 @@ Http2Options::Http2Options(Http2State* http2_state, SessionType type) { + buffer[IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS]); + } + ++ // Validate headers in accordance to RFC-9113 ++ if (flags & (1 << IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION)) { ++ nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation( ++ option, buffer[IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION]); ++ } ++ + // The padding strategy sets the mechanism by which we determine how much + // additional frame padding to apply to DATA and HEADERS frames. Currently + // this is set on a per-session basis, but eventually we may switch to +diff --git a/src/node_http2_state.h b/src/node_http2_state.h +index 2957a2827f370e..914ad011e021f1 100644 +--- a/third_party/electron_node/src/node_http2_state.h ++++ b/third_party/electron_node/src/node_http2_state.h +@@ -60,6 +60,7 @@ namespace http2 { + IDX_OPTIONS_MAX_SETTINGS, + IDX_OPTIONS_STREAM_RESET_RATE, + IDX_OPTIONS_STREAM_RESET_BURST, ++ IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION, + IDX_OPTIONS_FLAGS + }; + diff --git a/node-version-ck.patch b/node-version-ck.patch new file mode 100644 index 0000000..c28de12 --- /dev/null +++ b/node-version-ck.patch @@ -0,0 +1,27 @@ +author: Andres Salomon +description: disable the node version check + +https://chromium-review.googlesource.com/c/chromium/src/+/6334038 added +a node version check, but we don't want that as we're using debian's +packaged node. + +--- a/third_party/node/node.gni ++++ b/third_party/node/node.gni +@@ -44,7 +44,6 @@ template("node") { + if (!defined(deps)) { + deps = [] + } +- deps += [ "//third_party/node:check_version" ] + } + } + } +--- a/third_party/protobuf/proto_library.gni ++++ b/third_party/protobuf/proto_library.gni +@@ -562,7 +562,6 @@ template("proto_library") { + _protoc_gen_ts_path, + "//tools/protoc_wrapper/protoc-gen-ts_proto.py", + ] + _protoc_gen_ts_runtime_deps +- deps += [ "//third_party/node:check_version" ] + } + + if (_generate_with_plugin) { diff --git a/nodejs-electron.changes b/nodejs-electron.changes index c50b222..59de664 100644 --- a/nodejs-electron.changes +++ b/nodejs-electron.changes @@ -1,3 +1,101 @@ +------------------------------------------------------------------- +Sat Aug 23 18:11:15 UTC 2025 - Bruno Pitrus + +- Update to 37.3.1 (bsc#1248464) + * Chromium 138.0.7204.235 + * Node 22.18.0 + * V8 13.8 + * Added scriptURL property to ServiceWorkerMain. + * Added a CSS rule for smooth corners. + * Utility Process unhandled rejection behavior change + * process.exit() kills utility process synchronously + * WebUSB and WebSerial Blocklist Support + * Removed: null value for session property in ProtocolResponse + * BrowserWindow.IsVisibleOnAllWorkspaces() on Linux + * see https://www.electronjs.org/blog/electron-37-0 + and https://github.com/electron/electron/releases/tag/v37.0.0 for more +- Leap 15.6: use bundled aom + * drop aom3.10-AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.patch + * drop aom3.10-AV1E_SET_AUTO_TILES.patch + * drop webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch + * drop webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch +- Fedora <=42: use bundled llhttp +- Fedora: use bundled simdutf +- Merge MakeSbixTypeface-null-pointer-call.patch into chromium-130-fontations.patch' +- drop no longer needed patches + * build-without-speech-service.patch + * content_browser_client-incomplete-WebUIController.patch + * css_shape_value-constructor.patch + * disable-devtools-tests.patch + * distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch + * distributed_point_functions-evaluate_prg_hwy-signature.patch + * electron-13-blink-gcc-ambiguous-nodestructor.patch + * exception_state-constexpr-initializer.patch + * extensions-common-assert.patch + * fix-building-with-pipewire-1.3.82.patch + * fix-build-without-pdf.patch + * fix-build-without-video-effects.patch + * html_permission_element_strings_map-reproducible.patch + * MakeSbixTypeface-null-pointer-call.patch + * media_session_uma_helper-missing-optional.patch + * node-llhttp9.3.patch + * object_paint_properties-explicit-specialization-in-non-namespace-scope.patch + * perfetto-ThreadTrack-Current-null-dereference.patch + * picture_in_picture_window_manager_uma_helper-missing-optional.patch + * plugin_utils-build-without-electron_extensions.patch + * python3.14-nodedownload-FancyURLopener.patch + * raw_ptr-fpermissive.patch + * resource_response-Wchanges-meaning.patch + * resource-Wchanges-meaning.patch + * string-hasher-flax-vector-conversions.patch + * string_truncator-convert.patch + * style_scope-unqualified-To.patch + * system-simdutf.patch + * to_vector-std-projected-gcc119888.patch + * unexportable_key_service_impl-Wlto-type-mismatch.patch + * xml_document_parser-Wmissing-template-keyword.patch +- Conditionally revert upstream changes to fix build on 15.6 + * ffmpeg-4-AV_PROFILE.patch + * node-cares-1.21-4.patch + * node-nghttp-1.50.patch + * v8-highway-1.1.patch +- Add patches to fix build errors + * angle-BlobCache-Success.patch + * llhttp-lax-vector-conversions.patch + * masked_domain_list-flatbuffers.patch + * node-version-ck.patch + * partition_alloc-strict-aliasing.patch + * remove-probabilistic-token-which-uses-private-join-and-compute.patch + * system-dragonbox.patch +- Add patches that should be upstreamed + * ANNOTATE_CONTIGUOUS_CONTAINER-Wodr.patch + * event_record-optional-initializer.patch + * identity_request_account-incomplete-IdentityProviderData.patch + * json_to_struct-fixed_flat_map-conflicting-declaration.patch + * lock_impl_posix-pthread_mutexattr_setprotocol-conflicting.patch + * node-kParentNodeTag-constexpr-initializer.patch + * offscreen_canvas-incomplete-LayoutLocale.patch + * pickle_traits-kIndexSequence-constexpr-initializer.patch + * picture_in_picture_events_info-string-constexpr.patch + * sandboxed_vfs_file_impl-missing-memset.patch + * v8-simd-flax-vector-conversions.patch + * webgl_rendering_context_webgpu_base-incomplete-StaticBitmapImage.patch + * webrtc-138-Wchanges-meaning.patch + * xr_webgl_swap_chain-incomplete-StaticBitmapImage.patch + +------------------------------------------------------------------- +Tue Aug 19 17:11:54 UTC 2025 - Bruno Pitrus + +- New upstream release 35.7.5 + * Fixed an issue where shell.openPath was not non-blocking as expected. +- Leap 16: compile v8 code with x86-64-v2 instructions since the system requires them + * v8-assume-x86-64-v2-support.patch + +------------------------------------------------------------------- +Wed Aug 13 16:54:43 UTC 2025 - Bruno Pitrus + +- Fix build on Leap 16 + ------------------------------------------------------------------- Fri Jul 11 17:53:15 UTC 2025 - Bruno Pitrus diff --git a/nodejs-electron.spec b/nodejs-electron.spec index d73767c..608d7ca 100644 --- a/nodejs-electron.spec +++ b/nodejs-electron.spec @@ -20,7 +20,7 @@ %define mod_name electron # https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json -%define abi_version 133 +%define abi_version 136 # Do not provide libEGL.so, etc… %define __provides_exclude ^lib.*\\.so.*$ @@ -74,31 +74,43 @@ ExcludeArch: %arm %bcond_with system_yuv +#CPU level. Leap 16 requires x86-64-v2 so we may force it inside V8. +%if 0%{?suse_version} >= 1550 && 0%{?suse_version} < 1650 +%bcond_without v2 +%else +%bcond_with v2 +%endif + %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} %bcond_without system_vpx +%bcond_without system_aom %bcond_without bro_11 %bcond_without ffmpeg_6 %bcond_without system_vk_headers %bcond_without spirv_2024 %bcond_without cares_21 +%bcond_without nghttp_50 +%bcond_without highway_1_1 %else %bcond_with system_vpx +%bcond_with system_aom %bcond_with bro_11 %bcond_with ffmpeg_6 %bcond_with system_vk_headers %bcond_with spirv_2024 %bcond_with cares_21 +%bcond_with nghttp_50 +%bcond_with highway_1_1 %endif %if 0%{?fedora} -%bcond_without system_llhttp + %bcond_without system_histogram %bcond_without system_simdjson %else -%bcond_with system_llhttp %bcond_with system_histogram %bcond_with system_simdjson %endif @@ -111,17 +123,13 @@ ExcludeArch: %arm %endif %if 0%{?fedora} >= 43 -%bcond_without llhttp_93 +%bcond_without system_llhttp %else -%bcond_with llhttp_93 +%bcond_with system_llhttp %endif -# requires `base64_options` -%if 0%{?fedora} >= 42 -%bcond_without system_simdutf -%else +# requires built with `SIMDUTF_ATOMIC_REF` %bcond_with system_simdutf -%endif %if 0%{?fedora} && 0%{?fedora} < 42 %bcond_without system_vma @@ -132,10 +140,8 @@ ExcludeArch: %arm # Some chromium code assumes absl::string_view is a typedef for std::string_view. This is not true on GCC7 systems such as Leap. %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} %bcond_without system_abseil -%bcond_without aom_38 %else %bcond_with system_abseil -%bcond_with aom_38 %endif %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} >= 41 @@ -180,7 +186,7 @@ ExcludeArch: %arm Name: nodejs-electron -Version: 35.7.0 +Version: 37.3.1 %global tag_version %version Release: 0 Summary: Build cross platform desktop apps with JavaScript, HTML, and CSS @@ -198,20 +204,20 @@ 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 aom 3.9 -Source410: aom3.10-AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.patch -Source411: aom3.10-AV1E_SET_AUTO_TILES.patch -Source412: webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch -Source413: webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch +Source404: ffmpeg-4-AV_PROFILE.patch # and abseil 2407 Source461: webrtc-make_ref_counted-absl2024-nullability.patch # and c-ares 1.19 Source470: node-cares-1.21.patch Source471: node-cares-1.21-2.patch Source472: node-cares-1.21-3.patch +Source473: node-cares-1.21-4.patch # and spirv 2023 Source480: angle-SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT.patch - +#and nghttp 1.40 +Source490: node-nghttp-1.50.patch +#and highway 1.0 +Source500: v8-highway-1.1.patch # PATCHES for openSUSE-specific things (compiler flags, paths, etc.) @@ -237,6 +243,11 @@ Patch97: chromium-127-cargo_crate.patch Patch98: gn-logspam-breaks-install.patch Patch99: torque-debuginfo.patch Patch100: reduce-gn-tree.patch +%if %{with v2} +Patch101: v8-assume-x86-64-v2-support.patch +%else +Source101: v8-assume-x86-64-v2-support.patch +%endif # PATCHES that remove code we don't want. Most of them can be reused verbatim by other distributors, @@ -248,7 +259,6 @@ Patch570: disable-fuses.patch # https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?h=102-based&id=d617766b236a93749ddbb50b75573dd35238ffc9 Patch573: disable-webspeech.patch # https://sources.debian.org/patches/chromium/108.0.5359.124-1/disable/tests.patch/ -Patch576: disable-devtools-tests.patch Patch581: disable-tests.patch Patch583: remove-rust.patch Patch585: remove-dawn.patch @@ -258,7 +268,6 @@ Patch589: remove-puffin.patch Patch590: remove-sync.patch Patch592: fix-build-without-supervised-users.patch Patch593: fix-build-without-screen-ai.patch -Patch594: build-without-speech-service.patch #patches disabling rust features from Gentoo: https://data.gpo.zugaina.org/pf4public/dev-util/electron/files/ Patch595: chromium-123-qrcode.patch Patch596: chromium-130-fontations.patch @@ -266,7 +275,6 @@ Patch597: chromium-125-cloud_authenticator.patch Patch598: chromium-127-crabby.patch Patch599: chromium-132-no-rust.patch #End gentoo patches -Patch601: MakeSbixTypeface-null-pointer-call.patch Patch602: remove-ai-language-detection-factory-which-requires-tflite-and-libphonenumber.patch Patch603: build-without-mesage-center.patch Patch604: disable-avif-really.patch @@ -274,6 +282,8 @@ Patch605: permission-gcc14.2.patch Patch606: build-without-extensions.patch Patch607: build-without-guest-view.patch Patch608: vaapi-no-encoders.patch +Patch609: remove-probabilistic-token-which-uses-private-join-and-compute.patch +Patch610: masked_domain_list-flatbuffers.patch @@ -296,7 +306,6 @@ Patch1072: node-system-icu.patch Patch1073: system-nasm.patch Patch1074: no-zlib-headers.patch Patch1077: system-wayland.patch -Patch1078: system-simdutf.patch Patch1079: system-libm.patch Patch1085: webp-no-sharpyuv.patch Patch1086: zip_internal-missing-uLong-Z_DEFAULT_COMPRESSION.patch @@ -308,6 +317,8 @@ Patch1092: fix-system-highway.patch Patch1093: system-sqlite.patch Patch1094: absl_strings-missing-headers.patch Patch1095: system-zstd-in-node.patch +Patch1036: node-version-ck.patch +Patch1037: system-dragonbox.patch # PATCHES to fix interaction with third-party software @@ -331,18 +342,14 @@ Patch2059: disable-FFmpegAllowLists.patch Patch2060: chromium-129-disable-H.264-video-parser-during-demuxing.patch Patch2061: private_aggregation_host-uint128.patch Patch2062: wayland_version.patch -Patch2063: fix-building-with-pipewire-1.3.82.patch #Conditionably disable feature which requires new highway Patch2064: blink-shape_result-highway.patch -%if %{with system_llhttp} && %{with llhttp_93} -Patch2065: node-llhttp9.3.patch -%else -Source2065: node-llhttp9.3.patch -%endif +#Patch2065: node-llhttp9.3.patch +Patch2066: angle-BlobCache-Success.patch +Patch2067: partition_alloc-strict-aliasing.patch +Patch2068: llhttp-lax-vector-conversions.patch # PATCHES that should be submitted upstream verbatim or near-verbatim -# Fix blink nodestructor -Patch3023: electron-13-blink-gcc-ambiguous-nodestructor.patch Patch3027: electron-16-freetype-visibility-list.patch Patch3028: electron-16-third_party-symbolize-missing-include.patch # From https://git.droidware.info/wchen342/ungoogled-chromium-fedora @@ -352,39 +359,29 @@ Patch3096: remove-date-reproducible-builds.patch Patch3133: swiftshader-llvm18-LLVMReactor-getInt8PtrTy.patch Patch3134: swiftshader-llvm18-LLVMJIT-Host.patch Patch3135: swiftshader-llvm18-LLVMJIT-CodeGenOptLevel.patch -Patch3138: distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch Patch3144: mt21_util-flax-vector-conversions.patch -Patch3151: distributed_point_functions-evaluate_prg_hwy-signature.patch Patch3174: swiftshader-llvm19-LLVMJIT-getHostCPUFeatures.patch Patch3175: swiftshader-llvm19-LLVMReactor-incomplete-Module.patch Patch3185: bsc1224178-font-gc.patch Patch3186: string_view-incomplete-CodePointIterator.patch Patch3187: swiftshader-llvm20-absoluteSymbols.patch -Patch3188: fix-build-without-pdf.patch -Patch3189: raw_ptr-fpermissive.patch -Patch3190: exception_state-constexpr-initializer.patch -Patch3191: resource_response-Wchanges-meaning.patch -Patch3192: perfetto-ThreadTrack-Current-null-dereference.patch -Patch3193: resource-Wchanges-meaning.patch -Patch3194: string_truncator-convert.patch -Patch3195: object_paint_properties-explicit-specialization-in-non-namespace-scope.patch -Patch3196: css_shape_value-constructor.patch -Patch3197: xml_document_parser-Wmissing-template-keyword.patch Patch3198: ax_platform_node_id-fpermissive.patch -Patch3199: style_scope-unqualified-To.patch -Patch3200: content_browser_client-incomplete-WebUIController.patch -Patch3201: fix-build-without-video-effects.patch -Patch3202: media_session_uma_helper-missing-optional.patch -Patch3203: picture_in_picture_window_manager_uma_helper-missing-optional.patch Patch3204: browser_process_impl-fix-safe_browsing_mode-0.patch -Patch3205: plugin_utils-build-without-electron_extensions.patch -Patch3206: string-hasher-flax-vector-conversions.patch -Patch3207: unexportable_key_service_impl-Wlto-type-mismatch.patch -Patch3208: to_vector-std-projected-gcc119888.patch Patch3209: file_dialog-missing-uint32_t.patch -Patch3211: html_permission_element_strings_map-reproducible.patch -Patch3212: extensions-common-assert.patch -Patch3213: python3.14-nodedownload-FancyURLopener.patch +Patch3210: webrtc-138-Wchanges-meaning.patch +Patch3211: sandboxed_vfs_file_impl-missing-memset.patch +Patch3212: lock_impl_posix-pthread_mutexattr_setprotocol-conflicting.patch +Patch3213: node-kParentNodeTag-constexpr-initializer.patch +Patch3214: pickle_traits-kIndexSequence-constexpr-initializer.patch +Patch3215: offscreen_canvas-incomplete-LayoutLocale.patch +Patch3216: identity_request_account-incomplete-IdentityProviderData.patch +Patch3217: xr_webgl_swap_chain-incomplete-StaticBitmapImage.patch +Patch3218: json_to_struct-fixed_flat_map-conflicting-declaration.patch +Patch3219: webgl_rendering_context_webgpu_base-incomplete-StaticBitmapImage.patch +Patch3220: picture_in_picture_events_info-string-constexpr.patch +Patch3221: event_record-optional-initializer.patch +Patch3222: ANNOTATE_CONTIGUOUS_CONTAINER-Wodr.patch +Patch3223: v8-simd-flax-vector-conversions.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. @@ -398,6 +395,7 @@ BuildRequires: c-ares-devel >= 1.21 BuildRequires: cmake(Crc32c) BuildRequires: double-conversion-devel BuildRequires: desktop-file-utils +BuildRequires: dragonbox-devel %if 0%{?fedora} BuildRequires: flatbuffers-compiler %endif @@ -416,21 +414,14 @@ BuildRequires: libatomic %if %{with system_ada} BuildRequires: cmake(ada) %endif -%if %{with aom_38} +%if %{with system_aom} BuildRequires: libaom-devel >= 3.8~ %endif -# requires AV1E_SET_QUANTIZER_ONE_PASS -BuildRequires: libaom-devel >= 3.7~ BuildRequires: libbsd-devel BuildRequires: libpng-devel BuildRequires: libXNVCtrl-devel %if %{with system_llhttp} -BuildRequires: llhttp-devel >= 8 -%if %{with llhttp_93} BuildRequires: llhttp-devel >= 9.3 -%else -BuildRequires: llhttp-devel < 9.3 -%endif %endif %if %{with swiftshader} && %{without subzero} BuildRequires: llvm-devel >= 16 @@ -572,7 +563,15 @@ BuildRequires: pkgconfig(libbrotlienc) BuildRequires: pkgconfig(libcares) BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(libdrm) +%if %{with highway_1_1} +# requires SumsOf2 +BuildRequires: pkgconfig(libhwy) >= 1.1 +%endif BuildRequires: pkgconfig(libhwy) >= 1 +%if %{with nghttp_50} +# needs nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation +BuildRequires: pkgconfig(libnghttp2) >= 1.50 +%endif BuildRequires: pkgconfig(libnghttp2) BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libpci) @@ -638,13 +637,18 @@ BuildRequires: libjpeg-turbo-devel # requires VP9E_SET_QUANTIZER_ONE_PASS BuildRequires: pkgconfig(vpx) >= 1.13~ %endif -%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} +%if 0%{?suse_version} >= 1650 || 0%{?fedora} BuildRequires: gcc >= 14 BuildRequires: gcc-c++ >= 14 %else +%if 0%{?suse_version} >= 1550 +BuildRequires: gcc15-PIE +BuildRequires: gcc15-c++ +%else BuildRequires: gcc14-PIE BuildRequires: gcc14-c++ %endif +%endif %if %{with pipewire} BuildRequires: pkgconfig(libpipewire-0.3) @@ -729,19 +733,14 @@ providing better integration with desktop environments such as KDE. test $(grep ^node_module_version electron/build/args/all.gn | sed 's/.* = //') = %abi_version -#These ones depend on an aom nightly, reverting unconditionally -patch -R -p1 < %SOURCE411 -patch -R -p1 < %SOURCE410 -%if %{without aom_38} -patch -R -p1 < %SOURCE412 -patch -R -p1 < %SOURCE413 -%endif + %if %{without cares_21} patch -R -p1 < %SOURCE472 patch -R -p1 < %SOURCE471 patch -R -p1 < %SOURCE470 +patch -R -p1 < %SOURCE473 %endif @@ -751,12 +750,20 @@ patch -R -p1 < %SOURCE403 patch -R -p1 < %SOURCE402 patch -R -p1 < %SOURCE400 patch -R -p1 < %SOURCE401 +patch -R -p1 < %SOURCE404 %endif %if %{without spirv_2024} patch -R -p1 < %SOURCE480 %endif +%if %{without nghttp_50} +patch -R -p1 < %SOURCE490 +%endif + +%if %{without highway_1_1} +patch -R -p1 < %SOURCE500 +%endif # This one just removes compatibility with old abseil and does not add anything, reverting unconditionally. @@ -807,7 +814,6 @@ gn_system_libraries=( highway icu jsoncpp - libaom libdrm libjpeg libpng @@ -855,6 +861,10 @@ gn_system_libraries+=( %endif +%if %{with system_aom} +find third_party/libaom -type f ! -name "*.gn" -a ! -name "*.gni" -delete +gn_system_libraries+=( libaom ) +%endif @@ -964,6 +974,12 @@ ARCH_FLAGS="$(echo $ARCH_FLAGS | sed -e 's/ -fexceptions / /g')" # for wayland export CXXFLAGS="${ARCH_FLAGS} -I/usr/include/wayland -I/usr/include/libxkbcommon" + +#no pkgconfig, only cmake. add the include path manually +%if 0%{?fedora} +export CXXFLAGS="${CXXFLAGS} -I$(echo /usr/include/dragonbox-*)" +%endif + export CFLAGS="${CXXFLAGS}" # Google has a bad coding style, using a macro `NOTREACHED()` that is not properly detected by GCC @@ -981,6 +997,9 @@ export CXXFLAGS="${CXXFLAGS} -Wno-template-id-cdtor -Wno-non-virtual-dtor" # REDUCE DEBUG for C++ as it gets TOO large due to “heavy hemplate use in Blink”. See symbol_level below and chromium-102-compiler.patch export CXXFLAGS="$(echo ${CXXFLAGS} | sed -e 's/-g / /g' -e 's/-g$//g')" +#Fix build with abseil < 2025 +export CXXFLAGS="$CXXFLAGS -Dabsl_nullable= -Dabsl_nonnull= " + %ifarch %ix86 %arm export CFLAGS="$(echo ${CFLAGS} | sed -e 's/-g /-g1 /g' -e 's/-g$/-g1/g')" %endif @@ -1003,19 +1022,27 @@ export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %endif #ifarch ix86 arm -%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} +%if 0%{?suse_version} >= 1650 || 0%{?fedora} export CC=gcc export CXX=g++ export AR=gcc-ar export NM=gcc-nm export RANLIB=gcc-ranlib %else +%if 0%{?suse_version} >= 1550 +export CC=gcc-15 +export CXX=g++-15 +export AR=gcc-ar-15 +export NM=gcc-nm-15 +export RANLIB=gcc-ranlib-15 +%else export CC=gcc-14 export CXX=g++-14 export AR=gcc-ar-14 export NM=gcc-nm-14 export RANLIB=gcc-ranlib-14 %endif +%endif @@ -1062,6 +1089,8 @@ myconf_gn+=' electron_vendor_version="microsoft-build:Electron for openSUSE"' myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" myconf_gn+=" use_custom_libcxx=false" +myconf_gn+=' use_safe_libstdcxx=false' +myconf_gn+=' use_llvm_libatomic=false' %ifarch %ix86 myconf_gn+=" host_cpu=\"x86\"" %endif @@ -1184,12 +1213,15 @@ myconf_gn+=" enable_vr=false" myconf_gn+=" enable_reporting=false" myconf_gn+=" build_with_tflite_lib=false" myconf_gn+=" build_tflite_with_xnnpack=false" +myconf_gn+=' build_tflite_with_opencl=false' myconf_gn+=" safe_browsing_mode=0" +myconf_gn+=' safe_browsing_use_unrar=false' myconf_gn+=" enable_captive_portal_detection=false" myconf_gn+=" enable_browser_speech_service=false" myconf_gn+=" enable_speech_service=false" myconf_gn+=" enable_screen_ai_service=false" myconf_gn+=' enable_screen_ai_browsertests=false' +myconf_gn+=' enable_constraints=false' myconf_gn+=" include_transport_security_state_preload_list=false" myconf_gn+=" enable_web_speech=false" myconf_gn+=" chrome_wide_echo_cancellation_supported=false" @@ -1229,6 +1261,7 @@ myconf_gn+=' enable_on_device_translation=false' myconf_gn+=' enable_session_service=false' myconf_gn+=' enterprise_client_certificates=false' myconf_gn+=' enterprise_data_controls=false' +myconf_gn+=' enterprise_telomere_reporting=false' @@ -1237,8 +1270,10 @@ myconf_gn+=' enterprise_data_controls=false' myconf_gn+=' enable_rust=false' myconf_gn+=' enable_rust_png=false' myconf_gn+=' enable_chromium_prelude=false' +myconf_gn+=' rtc_rusty_base64=false' +myconf_gn+=' v8_enable_temporal_support=false' -myconf_gn+=' chrome_root_store_cert_management_ui=false' +#myconf_gn+=' chrome_root_store_cert_management_ui=false' myconf_gn+=' use_kerberos=false' diff --git a/object_paint_properties-explicit-specialization-in-non-namespace-scope.patch b/object_paint_properties-explicit-specialization-in-non-namespace-scope.patch deleted file mode 100644 index 3f6260f..0000000 --- a/object_paint_properties-explicit-specialization-in-non-namespace-scope.patch +++ /dev/null @@ -1,99 +0,0 @@ ---- src/third_party/blink/renderer/core/paint/object_paint_properties.h.orig 2025-04-16 14:36:32.662070096 +0200 -+++ src/third_party/blink/renderer/core/paint/object_paint_properties.h 2025-04-16 22:12:50.444628128 +0200 -@@ -174,47 +174,6 @@ class CORE_EXPORT ObjectPaintProperties - template - struct NodeIdRange {}; - -- template <> -- struct NodeIdRange { -- static constexpr NodeId kFirst = NodeId::kFirstTransform; -- static constexpr NodeId kLast = NodeId::kClipAlias; -- }; -- template <> -- struct NodeIdRange { -- static constexpr NodeId kFirst = NodeId::kFirstTransform; -- static constexpr NodeId kLast = NodeId::kTransformAlias; -- }; -- template <> -- struct NodeIdRange { -- static constexpr NodeId kFirst = NodeId::kFirstTransform; -- static constexpr NodeId kLast = NodeId::kLastTransform; -- }; -- template <> -- struct NodeIdRange { -- static constexpr NodeId kFirst = NodeId::kFirstScroll; -- static constexpr NodeId kLast = NodeId::kLastScroll; -- }; -- template <> -- struct NodeIdRange { -- static constexpr NodeId kFirst = NodeId::kFirstEffect; -- static constexpr NodeId kLast = NodeId::kEffectAlias; -- }; -- template <> -- struct NodeIdRange { -- static constexpr NodeId kFirst = NodeId::kFirstEffect; -- static constexpr NodeId kLast = NodeId::kLastEffect; -- }; -- template <> -- struct NodeIdRange { -- static constexpr NodeId kFirst = NodeId::kFirstClip; -- static constexpr NodeId kLast = NodeId::kClipAlias; -- }; -- template <> -- struct NodeIdRange { -- static constexpr NodeId kFirst = NodeId::kFirstClip; -- static constexpr NodeId kLast = NodeId::kLastClip; -- }; -- - public: - template - bool HasNode() const { -@@ -579,6 +538,48 @@ class CORE_EXPORT ObjectPaintProperties - #endif - }; - -+template <> -+struct ObjectPaintProperties::NodeIdRange { -+ static constexpr NodeId kFirst = NodeId::kFirstTransform; -+ static constexpr NodeId kLast = NodeId::kClipAlias; -+}; -+template <> -+struct ObjectPaintProperties::NodeIdRange { -+ static constexpr NodeId kFirst = NodeId::kFirstTransform; -+ static constexpr NodeId kLast = NodeId::kTransformAlias; -+}; -+template <> -+struct ObjectPaintProperties::NodeIdRange { -+ static constexpr NodeId kFirst = NodeId::kFirstTransform; -+ static constexpr NodeId kLast = NodeId::kLastTransform; -+}; -+template <> -+struct ObjectPaintProperties::NodeIdRange { -+ static constexpr NodeId kFirst = NodeId::kFirstScroll; -+ static constexpr NodeId kLast = NodeId::kLastScroll; -+}; -+template <> -+struct ObjectPaintProperties::NodeIdRange { -+ static constexpr NodeId kFirst = NodeId::kFirstEffect; -+ static constexpr NodeId kLast = NodeId::kEffectAlias; -+}; -+template <> -+struct ObjectPaintProperties::NodeIdRange { -+ static constexpr NodeId kFirst = NodeId::kFirstEffect; -+ static constexpr NodeId kLast = NodeId::kLastEffect; -+}; -+template <> -+struct ObjectPaintProperties::NodeIdRange { -+ static constexpr NodeId kFirst = NodeId::kFirstClip; -+ static constexpr NodeId kLast = NodeId::kClipAlias; -+}; -+template <> -+struct ObjectPaintProperties::NodeIdRange { -+ static constexpr NodeId kFirst = NodeId::kFirstClip; -+ static constexpr NodeId kLast = NodeId::kLastClip; -+}; -+ -+ - } // namespace blink - - #endif // THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_OBJECT_PAINT_PROPERTIES_H_ diff --git a/offscreen_canvas-incomplete-LayoutLocale.patch b/offscreen_canvas-incomplete-LayoutLocale.patch new file mode 100644 index 0000000..4ada564 --- /dev/null +++ b/offscreen_canvas-incomplete-LayoutLocale.patch @@ -0,0 +1,10 @@ +--- src/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h.orig 2025-08-15 17:32:29.249405113 +0200 ++++ src/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h 2025-08-16 00:00:02.342263133 +0200 +@@ -23,6 +23,7 @@ + #include "third_party/blink/renderer/platform/graphics/dom_node_id.h" + #include "third_party/blink/renderer/platform/heap/garbage_collected.h" + #include "third_party/blink/renderer/platform/heap/prefinalizer.h" ++#include "third_party/blink/renderer/platform/text/layout_locale.h" + #include "ui/gfx/geometry/size.h" + + namespace blink { diff --git a/partition_alloc-strict-aliasing.patch b/partition_alloc-strict-aliasing.patch new file mode 100644 index 0000000..b9e7a09 --- /dev/null +++ b/partition_alloc-strict-aliasing.patch @@ -0,0 +1,51 @@ +#0 partition_alloc::internal::SlotSpanMetadata<(partition_alloc::internal::MetadataKind)0>::Free(unsigned long, partition_alloc::PartitionRoot*)::{lambda()#1}::operator()() const (__closure=, __closure=) + at ../../base/allocator/partition_allocator/src/partition_alloc/partition_page.h:805 +#1 partition_alloc::internal::SlotSpanMetadata<(partition_alloc::internal::MetadataKind)0>::Free (this=, slot_start=, + root=, this=, slot_start=, root=) + at ../../base/allocator/partition_allocator/src/partition_alloc/partition_page.h:805 +#2 partition_alloc::PartitionRoot::FreeInSlotSpan (this=, slot_start=, slot_span=, this=, + slot_start=, slot_span=) at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1607 +#3 partition_alloc::PartitionRoot::RawFree (this=, slot_start=, slot_span=, this=, + slot_start=, slot_span=) at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1673 +#4 partition_alloc::PartitionRoot::RawFreeWithThreadCache (this=, slot_start=, slot_start_ptr=, + slot_span=, this=, slot_start=, slot_start_ptr=, slot_span=) + at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1740 +#5 partition_alloc::PartitionRoot::FreeNoHooksImmediate (this=, object=, slot_span=, + slot_start=, this=, object=, slot_span=, slot_start=) + at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1598 +#6 partition_alloc::PartitionRoot::FreeInline<(partition_alloc::internal::FreeFlags)2> (this=, object=, + this=, object=) at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1514 +#7 partition_alloc::PartitionRoot::FreeInlineInUnknownRoot<(partition_alloc::internal::FreeFlags)2> (object=0x5a000024fa0) + at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1446 +#8 allocator_shim::internal::PartitionAllocFunctionsInternal<(partition_alloc::internal::AllocFlags)16, (partition_alloc::internal::FreeFlags)2>::Free ( + object=0x5a000024fa0, context=) + at ../../base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:434 +#9 0x0000555555561755 in std::__new_allocator::deallocate (this=0x7fffffffdb10, __p=, __n=) + at /usr/include/c++/15/bits/new_allocator.h:172 +#10 std::allocator::deallocate (this=0x7fffffffdb10, __p=, __n=) at /usr/include/c++/15/bits/allocator.h:215 +#11 std::allocator_traits >::deallocate (__a=..., __p=, __n=) + at /usr/include/c++/15/bits/alloc_traits.h:649 +#12 std::__cxx11::basic_string, std::allocator >::_M_destroy (this=0x7fffffffdb10, __size=) + at /usr/include/c++/15/bits/basic_string.h:305 +#13 std::__cxx11::basic_string, std::allocator >::_M_dispose (this=0x7fffffffdb10) + at /usr/include/c++/15/bits/basic_string.h:299 +#14 std::__cxx11::basic_string, std::allocator >::~basic_string (this=, this=) + at /usr/include/c++/15/bits/basic_string.h:896 +#15 base::CommandLine::AppendSwitchesAndArguments (this=, argv=...) at ../../base/command_line.cc:657 +#16 base::CommandLine::InitFromArgv (this=, argv=...) at ../../base/command_line.cc:333 +#17 base::CommandLine::InitFromArgv (this=, argc=, argv=) at ../../base/command_line.cc:324 +#18 base::CommandLine::Init (argc=, argv=) at ../../base/command_line.cc:275 +#19 base::CommandLine::Init (argc=, argv=) at ../../base/command_line.cc:262 +#20 main (argc=, argv=) at ../../components/url_formatter/spoof_checks/top_domains/top_domain_generator.cc:88 + + +--- src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.orig 2025-08-15 17:32:21.517406564 +0200 ++++ src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn 2025-08-16 16:11:37.214993083 +0200 +@@ -266,6 +266,7 @@ if (is_clang_or_gcc) { + config("partition_alloc_implementation") { + # See also: `partition_alloc_base/component_export.h` + defines = [ "IS_PARTITION_ALLOC_IMPL" ] ++ cflags = ["-fno-strict-aliasing"] + } + + config("partition_alloc_base_implementation") { diff --git a/perfetto-ThreadTrack-Current-null-dereference.patch b/perfetto-ThreadTrack-Current-null-dereference.patch deleted file mode 100644 index 314d417..0000000 --- a/perfetto-ThreadTrack-Current-null-dereference.patch +++ /dev/null @@ -1,42 +0,0 @@ -#Otherwise mksnapshot crashes -#0 perfetto::ThreadTrack::Current () at ../../third_party/perfetto/src/tracing/track.cc:105 -#1 0x0000555555815084 in v8::internal::GCTracer::GCTracer () at ../../v8/src/heap/gc-tracer.cc:184 -#2 v8::internal::Heap::SetUpSpaces (this=0x555557507788, new_allocation_info=..., old_allocation_info=...) at ../../v8/src/heap/heap.cc:5788 -#3 0x000055555704895b in v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) [clone .isra.0] () at ../../v8/src/execution/isolate.cc:5556 -#4 0x0000555555b51ad3 in v8::internal::Isolate::InitWithoutSnapshot () at ../../v8/src/execution/isolate.cc:5184 -#5 v8::internal::SnapshotCreatorImpl::InitInternal (this=0x55555750c130, blob=0x0) at ../../v8/src/snapshot/snapshot.cc:868 -#6 0x0000555555654b15 in v8::internal::SnapshotCreatorImpl::SnapshotCreatorImpl () at ../../v8/src/snapshot/snapshot.cc:929 -#7 v8::SnapshotCreator::SnapshotCreator () at ../../v8/src/api/api.cc:552 -#8 main (argc=1465209528, argv=0x3ff0000000000000) at ../../v8/src/snapshot/mksnapshot.cc:298 - - ---- src/third_party/perfetto/src/tracing/internal/tracing_muxer_fake.h.orig 2025-04-16 14:38:49.066064367 +0200 -+++ src/third_party/perfetto/src/tracing/internal/tracing_muxer_fake.h 2025-04-16 21:06:46.592994525 +0200 -@@ -44,11 +44,7 @@ class TracingMuxerFake : public TracingM - ~TracingMuxerFake() override; - - static constexpr TracingMuxerFake* Get() { --#if PERFETTO_HAS_NO_DESTROY() - return &instance; --#else -- return nullptr; --#endif - } - - // TracingMuxer implementation. ---- src/third_party/perfetto/src/tracing/internal/tracing_muxer_fake.cc.orig 2025-04-16 14:38:49.066064367 +0200 -+++ src/third_party/perfetto/src/tracing/internal/tracing_muxer_fake.cc 2025-04-16 21:13:09.044959936 +0200 -@@ -27,13 +27,11 @@ PERFETTO_NORETURN void FailUninitialized - - } // namespace - --#if PERFETTO_HAS_NO_DESTROY() - // static - PERFETTO_NO_DESTROY TracingMuxerFake::FakePlatform - TracingMuxerFake::FakePlatform::instance{}; - // static - PERFETTO_NO_DESTROY TracingMuxerFake TracingMuxerFake::instance{}; --#endif // PERFETTO_HAS_NO_DESTROY() - - TracingMuxerFake::~TracingMuxerFake() = default; - diff --git a/pickle_traits-kIndexSequence-constexpr-initializer.patch b/pickle_traits-kIndexSequence-constexpr-initializer.patch new file mode 100644 index 0000000..4811040 --- /dev/null +++ b/pickle_traits-kIndexSequence-constexpr-initializer.patch @@ -0,0 +1,11 @@ +--- src/net/base/pickle_traits.h.orig 2025-08-15 17:32:28.209405309 +0200 ++++ src/net/base/pickle_traits.h 2025-08-15 23:39:04.010398326 +0200 +@@ -563,7 +563,7 @@ struct PickleTraits { + } + + static constexpr std::make_index_sequence> +- kIndexSequence; ++ kIndexSequence {}; + }; + + // bool is treated specially by base::Pickle. diff --git a/picture_in_picture_events_info-string-constexpr.patch b/picture_in_picture_events_info-string-constexpr.patch new file mode 100644 index 0000000..74f1a5f --- /dev/null +++ b/picture_in_picture_events_info-string-constexpr.patch @@ -0,0 +1,19 @@ +--- src/media/base/picture_in_picture_events_info.cc.orig 2025-08-15 17:32:27.805405385 +0200 ++++ src/media/base/picture_in_picture_events_info.cc 2025-08-16 10:13:19.526480207 +0200 +@@ -5,6 +5,7 @@ + #include "media/base/picture_in_picture_events_info.h" + + #include ++#include + + #include "base/notreached.h" + #include "base/strings/stringprintf.h" +@@ -34,7 +35,7 @@ std::string PictureInPictureEventsInfo:: + // static + std::string PictureInPictureEventsInfo::AutoPipInfoToString( + AutoPipInfo auto_pip_info) { +- constexpr std::array bool_to_string{"false", "true"}; ++ constexpr std::array bool_to_string{"false", "true"}; + return base::StringPrintf( + "{reason: %s, has audio focus: %s, is_playing: %s, was recently audible: " + "%s, has safe url: %s, meets media engagement conditions: %s, blocked " diff --git a/picture_in_picture_window_manager_uma_helper-missing-optional.patch b/picture_in_picture_window_manager_uma_helper-missing-optional.patch deleted file mode 100644 index a94461d..0000000 --- a/picture_in_picture_window_manager_uma_helper-missing-optional.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 1e7508ce083f6c7e43011f899faf10537a6379e2 Mon Sep 17 00:00:00 2001 -From: Ivan Murashov -Date: Thu, 20 Feb 2025 10:37:19 -0800 -Subject: [PATCH] IWYU: Add missing include for std::optional usage in - picture_in_picture_window_manager_uma_helper.h - -In the CL https://crrev.com/c/6191230 used std::optional in the -chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h, -but corresponding include was missed. -Added missing include for std::optional usage. - -Bug: 41455655 -Change-Id: I70f67c4a06481875d4602b16a97532cdad2a63b0 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6275068 -Reviewed-by: Vasilii Sukhanov -Commit-Queue: Ivan Murashov -Reviewed-by: Tommy Steimel -Cr-Commit-Position: refs/heads/main@{#1422669} ---- - .../picture_in_picture_window_manager_uma_helper.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h b/chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h -index cb826fc5a20598..866670224c8a38 100644 ---- a/chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h -+++ b/chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h -@@ -5,6 +5,8 @@ - #ifndef CHROME_BROWSER_PICTURE_IN_PICTURE_PICTURE_IN_PICTURE_WINDOW_MANAGER_UMA_HELPER_H_ - #define CHROME_BROWSER_PICTURE_IN_PICTURE_PICTURE_IN_PICTURE_WINDOW_MANAGER_UMA_HELPER_H_ - -+#include -+ - #include "base/memory/raw_ptr.h" - #include "base/time/clock.h" - #include "base/time/time.h" diff --git a/plugin_utils-build-without-electron_extensions.patch b/plugin_utils-build-without-electron_extensions.patch deleted file mode 100644 index b54e491..0000000 --- a/plugin_utils-build-without-electron_extensions.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- src/electron/shell/browser/plugins/plugin_utils.cc.orig 2025-04-16 14:34:09.220241915 +0200 -+++ src/electron/shell/browser/plugins/plugin_utils.cc 2025-04-18 21:59:05.472058588 +0200 -@@ -33,6 +33,8 @@ std::string PluginUtils::GetExtensionIdF - base::flat_map - PluginUtils::GetMimeTypeToExtensionIdMap( - content::BrowserContext* browser_context) { -+ base::flat_map mime_type_to_extension_id_map; -+ - #if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS) - const auto& allowed_extension_ids = MimeTypesHandler::GetMIMETypeAllowlist(); - if (allowed_extension_ids.empty()) -@@ -41,8 +43,6 @@ PluginUtils::GetMimeTypeToExtensionIdMap - const extensions::ExtensionSet& enabled_extensions = - extensions::ExtensionRegistry::Get(browser_context)->enabled_extensions(); - -- base::flat_map mime_type_to_extension_id_map; -- - // Go through the white-listed extensions and try to use them to intercept - // the URL request. - for (const std::string& id : allowed_extension_ids) { diff --git a/private_aggregation_host-uint128.patch b/private_aggregation_host-uint128.patch index a6c0f37..b9396b7 100644 --- a/private_aggregation_host-uint128.patch +++ b/private_aggregation_host-uint128.patch @@ -21,17 +21,17 @@ In file included from /usr/include/c++/14/string:49, 143 | absl::uint128 bucket; | ^~~~~~ ---- src/content/browser/private_aggregation/private_aggregation_pending_contributions.h.orig 2025-04-16 14:36:28.649070859 +0200 -+++ src/content/browser/private_aggregation/private_aggregation_pending_contributions.h 2025-04-17 16:33:05.731832452 +0200 -@@ -11,7 +11,6 @@ - #include - +--- src/content/browser/private_aggregation/private_aggregation_pending_contributions.h.orig 2025-08-15 17:32:26.465405636 +0200 ++++ src/content/browser/private_aggregation/private_aggregation_pending_contributions.h 2025-08-16 09:29:24.094983368 +0200 +@@ -18,7 +18,6 @@ + #include "base/numerics/safe_conversions.h" + #include "content/browser/private_aggregation/private_aggregation_budgeter.h" #include "content/common/content_export.h" -#include "third_party/abseil-cpp/absl/numeric/int128.h" - #include "third_party/abseil-cpp/absl/types/variant.h" #include "third_party/blink/public/mojom/aggregation_service/aggregatable_report.mojom.h" + #include "third_party/blink/public/mojom/private_aggregation/private_aggregation_host.mojom.h" -@@ -41,7 +40,7 @@ class CONTENT_EXPORT PrivateAggregationP +@@ -53,7 +52,7 @@ class CONTENT_EXPORT PrivateAggregationP auto operator<=>(const ContributionMergeKey& a) const = default; diff --git a/python3.14-nodedownload-FancyURLopener.patch b/python3.14-nodedownload-FancyURLopener.patch deleted file mode 100644 index 062caf8..0000000 --- a/python3.14-nodedownload-FancyURLopener.patch +++ /dev/null @@ -1,58 +0,0 @@ -From dfcb824ae3e7752abf3c809a3f226cb21dd2187a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lum=C3=ADr=20=27Frenzy=27=20Balhar?= - -Date: Sun, 22 Jun 2025 07:49:14 +0200 -Subject: [PATCH] tools: make nodedownload module compatible with Python 3.14 - -FancyURLopener and URLopener have been deprecated since -Python 3.3 and they are removed completely from 3.14. - -Fixes: https://github.com/nodejs/node/issues/58740 -PR-URL: https://github.com/nodejs/node/pull/58752 -Reviewed-By: Luigi Pinca -Reviewed-By: Yagiz Nizipli -Reviewed-By: James M Snell ---- - tools/configure.d/nodedownload.py | 15 +++++---------- - 1 file changed, 5 insertions(+), 10 deletions(-) - -diff --git a/tools/configure.d/nodedownload.py b/tools/configure.d/nodedownload.py -index 4f144e0e4b406c..0d65c33606b853 100644 ---- a/third_party/electron_node/tools/configure.d/nodedownload.py -+++ b/third_party/electron_node/tools/configure.d/nodedownload.py -@@ -7,10 +7,7 @@ - import zipfile - import tarfile - import contextlib --try: -- from urllib.request import FancyURLopener, URLopener --except ImportError: -- from urllib import FancyURLopener, URLopener -+from urllib.request import build_opener, install_opener, urlretrieve - - def formatSize(amt): - """Format a size as a string in MB""" -@@ -21,11 +18,6 @@ def spin(c): - spin = ".:|'" - return (spin[c % len(spin)]) - --class ConfigOpener(FancyURLopener): -- """fancy opener used by retrievefile. Set a UA""" -- # append to existing version (UA) -- version = '%s node.js/configure' % URLopener.version -- - def reporthook(count, size, total): - """internal hook used by retrievefile""" - sys.stdout.write(' Fetch: %c %sMB total, %sMB downloaded \r' % -@@ -38,7 +30,10 @@ def retrievefile(url, targetfile): - try: - sys.stdout.write(' <%s>\nConnecting...\r' % url) - sys.stdout.flush() -- ConfigOpener().retrieve(url, targetfile, reporthook=reporthook) -+ opener = build_opener() -+ opener.addheaders = [('User-agent', f'Python-urllib/{sys.version_info.major}.{sys.version_info.minor} node.js/configure')] -+ install_opener(opener) -+ urlretrieve(url, targetfile, reporthook=reporthook) - print('') # clear the line - return targetfile - except IOError as err: diff --git a/raw_ptr-fpermissive.patch b/raw_ptr-fpermissive.patch deleted file mode 100644 index 1aa4c34..0000000 --- a/raw_ptr-fpermissive.patch +++ /dev/null @@ -1,48 +0,0 @@ -From f12e128221d2011c57448032d67309da94f55dde Mon Sep 17 00:00:00 2001 -From: Marshall Greenblatt -Date: Thu, 13 Feb 2025 17:47:09 -0800 -Subject: [PATCH] Fix extra qualification on member 'basic_common_reference' - -Fixes the following errors when building on Windows with -use_custom_libcxx=false. - -In file included from ../..\base/memory/raw_ptr.h:11: -../../base/allocator/partition_allocator/src\partition_alloc/pointers/raw_ptr.h(1274,13): error: extra qualification on member 'basic_common_reference' [-Werror,-Wextra-qualification] - 1274 | struct std::basic_common_reference, T*, TQ, UQ> { - | ^ -../../base/allocator/partition_allocator/src\partition_alloc/pointers/raw_ptr.h(1284,13): error: extra qualification on member 'basic_common_reference' [-Werror,-Wextra-qualification] - 1284 | struct std::basic_common_reference, TQ, UQ> { - | ^ -2 errors generated. - -Change-Id: I86f92b206fdcba8d0e820c7a625e1c28518f02a0 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6265643 -Commit-Queue: Peter Kasting -Reviewed-by: Peter Kasting -Cr-Commit-Position: refs/heads/main@{#1420246} ---- - .../src/partition_alloc/pointers/raw_ptr.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h -index c3ac11523410fb..2a3d3bc4d1f342 100644 ---- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h -+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h -@@ -1271,7 +1271,7 @@ template - typename UQ> --struct std::basic_common_reference, T*, TQ, UQ> { -+struct basic_common_reference, T*, TQ, UQ> { - using type = T*; - }; - -@@ -1281,7 +1281,7 @@ template - typename UQ> --struct std::basic_common_reference, TQ, UQ> { -+struct basic_common_reference, TQ, UQ> { - using type = T*; - }; - diff --git a/reduce-gn-tree.patch b/reduce-gn-tree.patch index bd7a2aa..4a6afd7 100644 --- a/reduce-gn-tree.patch +++ b/reduce-gn-tree.patch @@ -1,14 +1,14 @@ Run gn starting at only the targets we want to build (//electron:blah), not at (//...) to avoid hitting asserts in dead code. This makes this overriden build argument dead code which causes a warning during `gen` and more importantly `desc`. Remove it. ---- src/electron/build/args/all.gn 2025-05-22 20:03:50.586242102 +0200 -+++ src/electron/build/args/all.gn 2025-05-22 21:32:07.485697337 +0200 +--- src/electron/build/args/all.gn.orig 2025-07-19 11:30:22.309996384 +0200 ++++ src/electron/build/args/all.gn 2025-07-19 16:27:55.565670609 +0200 @@ -1,5 +1,4 @@ is_electron_build = true -root_extra_deps = [ "//electron" ] # Registry of NMVs --> https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json - node_module_version = 133 + node_module_version = 136 All gn list calls must be also fixed because otherwise they fail just as gn gen does diff --git a/remove-ai-language-detection-factory-which-requires-tflite-and-libphonenumber.patch b/remove-ai-language-detection-factory-which-requires-tflite-and-libphonenumber.patch index 8ff1837..da14645 100644 --- a/remove-ai-language-detection-factory-which-requires-tflite-and-libphonenumber.patch +++ b/remove-ai-language-detection-factory-which-requires-tflite-and-libphonenumber.patch @@ -1,96 +1,60 @@ ---- src/third_party/blink/renderer/modules/ai/ai.cc.orig 2025-04-16 14:36:32.771242661 +0200 -+++ src/third_party/blink/renderer/modules/ai/ai.cc 2025-04-17 16:44:52.883833032 +0200 -@@ -30,7 +30,6 @@ void AI::Trace(Visitor* visitor) const { - visitor->Trace(ai_summarizer_factory_); - visitor->Trace(ai_writer_factory_); - visitor->Trace(ai_rewriter_factory_); -- visitor->Trace(ai_language_detector_factory_); - visitor->Trace(ai_translator_factory_); - } - -@@ -78,15 +77,6 @@ AIRewriterFactory* AI::rewriter() { - return ai_rewriter_factory_.Get(); - } - --AILanguageDetectorFactory* AI::languageDetector() { -- if (!ai_language_detector_factory_) { -- ai_language_detector_factory_ = -- MakeGarbageCollected(GetExecutionContext(), -- task_runner_); -- } -- return ai_language_detector_factory_.Get(); --} -- - AITranslatorFactory* AI::translator() { - if (!ai_translator_factory_) { - ai_translator_factory_ = ---- src/third_party/blink/renderer/modules/ai/ai.h.orig 2025-04-16 14:36:32.771242661 +0200 -+++ src/third_party/blink/renderer/modules/ai/ai.h 2025-04-17 16:45:08.367832844 +0200 -@@ -10,7 +10,6 @@ - #include "third_party/blink/public/mojom/ai/ai_manager.mojom-blink.h" - #include "third_party/blink/renderer/core/execution_context/execution_context.h" - #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h" --#include "third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.h" - #include "third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.h" - #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" - #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h" -@@ -37,7 +36,6 @@ class AI final : public ScriptWrappable, - AISummarizerFactory* summarizer(); - AIRewriterFactory* rewriter(); - AIWriterFactory* writer(); -- AILanguageDetectorFactory* languageDetector(); - AITranslatorFactory* translator(); - - HeapMojoRemote& GetAIRemote(); -@@ -51,7 +49,6 @@ class AI final : public ScriptWrappable, - Member ai_summarizer_factory_; - Member ai_writer_factory_; - Member ai_rewriter_factory_; -- Member ai_language_detector_factory_; - Member ai_translator_factory_; - }; - ---- src/third_party/blink/renderer/modules/ai/ai.idl 2025-04-16 14:36:32.771242661 +0200 -+++ src/third_party/blink/renderer/modules/ai/ai.idl 2025-04-18 13:52:33.485440478 +0200 -@@ -40,11 +40,6 @@ interface AI { - readonly attribute AIRewriterFactory rewriter; - - [ -- RuntimeEnabled=LanguageDetectionAPI -- ] -- readonly attribute AILanguageDetectorFactory languageDetector; -- -- [ - RuntimeEnabled=TranslationAPI - ] - readonly attribute AITranslatorFactory translator; ---- src/third_party/blink/renderer/modules/ai/BUILD.gn 2025-04-16 14:36:32.771172881 +0200 -+++ src/third_party/blink/renderer/modules/ai/BUILD.gn 2025-04-18 21:41:05.606552171 +0200 -@@ -41,16 +41,8 @@ blink_modules_sources("ai") { +--- src/third_party/blink/renderer/modules/ai/BUILD.gn.orig 2025-08-15 17:32:29.337405097 +0200 ++++ src/third_party/blink/renderer/modules/ai/BUILD.gn 2025-08-16 17:57:26.885671869 +0200 +@@ -7,45 +7,19 @@ import("//third_party/blink/renderer/mod + blink_modules_sources("ai") { + sources = [ + "ai_context_observer.h", +- "ai_interface_proxy.cc", +- "ai_interface_proxy.h", + "ai_metrics.cc", + "ai_metrics.h", +- "ai_utils.cc", +- "ai_utils.h", + "ai_writing_assistance_base.h", + "ai_writing_assistance_create_client.h", + "availability.cc", + "availability.h", +- "create_monitor.cc", +- "create_monitor.h", + "exception_helpers.cc", "exception_helpers.h", +- "language_model.cc", +- "language_model.h", +- "language_model_create_client.cc", +- "language_model_create_client.h", + "language_model_params.cc", + "language_model_params.h", +- "language_model_prompt_builder.cc", +- "language_model_prompt_builder.h", "model_execution_responder.cc", "model_execution_responder.h", -- "on_device_translation/ai_language_detector.cc", -- "on_device_translation/ai_language_detector.h", -- "on_device_translation/ai_language_detector_capabilities.cc", -- "on_device_translation/ai_language_detector_capabilities.h", -- "on_device_translation/ai_language_detector_factory.cc", -- "on_device_translation/ai_language_detector_factory.h", - "on_device_translation/ai_translator.cc", - "on_device_translation/ai_translator.h", -- "on_device_translation/ai_translator_capabilities.cc", -- "on_device_translation/ai_translator_capabilities.h", - "on_device_translation/ai_translator_factory.cc", - "on_device_translation/ai_translator_factory.h", +- "on_device_translation/create_translator_client.cc", +- "on_device_translation/create_translator_client.h", +- "on_device_translation/language_detector.cc", +- "on_device_translation/language_detector.h", + "on_device_translation/resolver_with_abort_signal.h", +- "on_device_translation/translator.cc", +- "on_device_translation/translator.h", +- "proofreader.cc", +- "proofreader.h", +- "rewriter.cc", +- "rewriter.h", +- "summarizer.cc", +- "summarizer.h", +- "writer.cc", +- "writer.h", ] -@@ -60,7 +52,5 @@ blink_modules_sources("ai") { + + public_deps = [ "//third_party/blink/public/mojom:mojom_modules_blink" ] +@@ -53,8 +27,6 @@ blink_modules_sources("ai") { deps = [ "//components/language_detection/content/common", "//components/language_detection/content/common:common_blink", - "//components/language_detection/content/renderer", - "//components/language_detection/core", + "//third_party/blink/renderer/modules/canvas", + "//third_party/blink/renderer/modules/webaudio", ] - } --- src/third_party/blink/renderer/platform/BUILD.gn.orig 2025-04-12 14:33:45.435739667 +0200 +++ src/third_party/blink/renderer/platform/BUILD.gn 2025-04-12 15:58:59.809440918 +0200 @@ -1239,8 +1239,6 @@ component("platform") { @@ -124,136 +88,227 @@ "//third_party/metrics_proto", "//url", ] ---- src/third_party/blink/renderer/modules/BUILD.gn 2025-04-16 14:36:32.763311004 +0200 -+++ src/third_party/blink/renderer/modules/BUILD.gn 2025-04-18 14:17:17.869441496 +0200 -@@ -128,7 +128,6 @@ component("modules") { - "//third_party/blink/renderer/modules/netinfo", - "//third_party/blink/renderer/modules/nfc", - "//third_party/blink/renderer/modules/notifications", -- "//third_party/blink/renderer/modules/on_device_translation", - "//third_party/blink/renderer/modules/payments", - "//third_party/blink/renderer/modules/payments/goods", - "//third_party/blink/renderer/modules/peerconnection", ---- src/third_party/blink/renderer/bindings/idl_in_modules.gni 2025-04-16 14:36:32.335223804 +0200 -+++ src/third_party/blink/renderer/bindings/idl_in_modules.gni 2025-04-18 21:39:21.064884303 +0200 -@@ -28,12 +28,8 @@ static_idl_files_in_modules = [ - "//third_party/blink/renderer/modules/ai/ai_summarizer_factory.idl", - "//third_party/blink/renderer/modules/ai/ai_writer.idl", - "//third_party/blink/renderer/modules/ai/ai_writer_factory.idl", -- "//third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector.idl", -- "//third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.idl", -- "//third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_capabilities.idl", - "//third_party/blink/renderer/modules/ai/on_device_translation/ai_translator.idl", - "//third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl", -- "//third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_capabilities.idl", - "//third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl", +--- src/third_party/blink/renderer/bindings/idl_in_modules.gni.orig 2025-08-15 17:32:29.049405150 +0200 ++++ src/third_party/blink/renderer/bindings/idl_in_modules.gni 2025-08-16 14:55:26.743869183 +0200 +@@ -19,15 +19,8 @@ static_idl_files_in_modules = [ + "//third_party/blink/renderer/modules/ad_auction/storage_interest_group.idl", + "//third_party/blink/renderer/modules/ai/availability.idl", + "//third_party/blink/renderer/modules/ai/create_monitor.idl", +- "//third_party/blink/renderer/modules/ai/language_model.idl", + "//third_party/blink/renderer/modules/ai/language_model_create_options.idl", + "//third_party/blink/renderer/modules/ai/language_model_params.idl", +- "//third_party/blink/renderer/modules/ai/on_device_translation/language_detector.idl", +- "//third_party/blink/renderer/modules/ai/on_device_translation/translator.idl", +- "//third_party/blink/renderer/modules/ai/proofreader.idl", +- "//third_party/blink/renderer/modules/ai/rewriter.idl", +- "//third_party/blink/renderer/modules/ai/summarizer.idl", +- "//third_party/blink/renderer/modules/ai/writer.idl", "//third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.idl", "//third_party/blink/renderer/modules/animationworklet/css_animation_worklet.idl", -@@ -542,10 +538,6 @@ static_idl_files_in_modules = [ - "//third_party/blink/renderer/modules/notifications/service_worker_global_scope_notifications.idl", - "//third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.idl", - "//third_party/blink/renderer/modules/notifications/timestamp_trigger.idl", -- "//third_party/blink/renderer/modules/on_device_translation/language_translator.idl", -- "//third_party/blink/renderer/modules/on_device_translation/translation_language_options.idl", -- "//third_party/blink/renderer/modules/on_device_translation/translation.idl", -- "//third_party/blink/renderer/modules/on_device_translation/window_or_worker_global_scope_translation.idl", - "//third_party/blink/renderer/modules/payments/abort_payment_event.idl", - "//third_party/blink/renderer/modules/payments/address_errors.idl", - "//third_party/blink/renderer/modules/payments/address_init.idl", ---- src/third_party/blink/renderer/bindings/generated_in_modules.gni 2025-04-16 14:36:32.335223804 +0200 -+++ src/third_party/blink/renderer/bindings/generated_in_modules.gni 2025-04-18 15:55:02.121445718 +0200 -@@ -148,10 +148,6 @@ generated_dictionary_sources_in_modules - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_model_initial_prompt.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_model_prompt_options.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_model_prompt_options.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_create_options.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_create_options.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_detect_options.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_detect_options.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_rewrite_options.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_rewrite_options.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_create_core_options.cc", -@@ -728,8 +724,6 @@ generated_dictionary_sources_in_modules + "//third_party/blink/renderer/modules/animationworklet/worklet_animation.idl", +--- src/third_party/blink/renderer/bindings/generated_in_modules.gni.orig 2025-08-15 17:32:29.049405150 +0200 ++++ src/third_party/blink/renderer/bindings/generated_in_modules.gni 2025-08-16 15:26:16.723512975 +0200 +@@ -682,18 +682,6 @@ generated_dictionary_sources_in_modules "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_key_system_track_configuration.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_landmark.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_landmark.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detection_result.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detection_result.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detector_create_core_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detector_create_core_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detector_create_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detector_create_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detector_detect_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detector_detect_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_append_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_append_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_clone_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_clone_options.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_create_core_options.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_create_core_options.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_create_options.cc", +@@ -704,8 +692,6 @@ generated_dictionary_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_message.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_message_content.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_message_content.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_prompt_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_prompt_options.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_lock_info.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_lock_info.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_lock_manager_snapshot.cc", -@@ -922,8 +916,6 @@ generated_dictionary_sources_in_modules - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ml_triangular_options.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ml_where_support_limits.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ml_where_support_limits.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation_language_options.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation_language_options.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_multi_cache_query_options.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_multi_cache_query_options.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_navigation_preload_state.cc", -@@ -1552,8 +1544,6 @@ generated_enumeration_sources_in_modules - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gamepad_haptics_result.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gamepad_mapping_type.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gamepad_mapping_type.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation_availability.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation_availability.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_address_mode.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_address_mode.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_auto_layout_mode.cc", -@@ -1956,12 +1946,6 @@ generated_interface_sources_in_modules = - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_model_factory.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_create_monitor.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_create_monitor.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_capabilities.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_capabilities.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_factory.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_factory.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_factory.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_factory.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter.cc", -@@ -1972,8 +1956,6 @@ generated_interface_sources_in_modules = - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_summarizer_factory.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_summarizer.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_summarizer.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator_capabilities.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator_capabilities.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator_factory.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator_factory.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator.cc", -@@ -2466,8 +2448,6 @@ generated_interface_sources_in_modules = +@@ -1008,14 +994,6 @@ generated_dictionary_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_private_attribution_network.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_private_attribution_options.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_private_attribution_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofreader_create_core_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofreader_create_core_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofreader_create_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofreader_create_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofread_correction.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofread_correction.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofread_result.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofread_result.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_protected_audience_private_aggregation_config.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_protected_audience_private_aggregation_config.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_creation_options.cc", +@@ -1064,12 +1042,6 @@ generated_dictionary_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_remote_desktop_client_override.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_request_device_options.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_request_device_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_rewrite_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_rewrite_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_create_core_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_create_core_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_create_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_create_options.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_router_condition.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_router_condition.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_router_rule.cc", +@@ -1278,12 +1250,6 @@ generated_dictionary_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_sub_apps_list_result.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_subsample_entry.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_subsample_entry.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_create_core_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_create_core_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_create_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_create_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_summarize_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_summarize_options.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_svc_output_metadata.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_svc_output_metadata.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_sync_event_init.cc", +@@ -1296,12 +1262,6 @@ generated_dictionary_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_text_encoder_encode_into_result.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_top_level_storage_access_permission_descriptor.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_top_level_storage_access_permission_descriptor.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translator_create_core_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translator_create_core_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translator_create_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translator_create_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translator_translate_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translator_translate_options.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_usb_connection_event_init.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_usb_connection_event_init.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_usb_control_transfer_parameters.cc", +@@ -1380,12 +1340,6 @@ generated_dictionary_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_websocket_stream_options.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_write_params.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_write_params.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_write_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_write_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_create_core_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_create_core_options.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_create_options.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_create_options.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_depth_state_init.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_depth_state_init.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_dom_overlay_init.cc", +@@ -1772,8 +1726,6 @@ generated_enumeration_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_presentation_connection_state.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_private_attribution_event.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_private_attribution_event.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_correction_type.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_correction_type.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_push_encryption_key_name.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_push_encryption_key_name.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_recording_state.cc", +@@ -1782,12 +1734,6 @@ generated_enumeration_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_red_eye_reduction.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_remote_playback_state.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_remote_playback_state.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_format.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_format.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_length.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_length.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_tone.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter_tone.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_router_source_enum.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_router_source_enum.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_bundle_policy.cc", +@@ -1868,12 +1814,6 @@ generated_enumeration_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_storage_bucket_durability.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_sub_apps_result_code.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_sub_apps_result_code.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_format.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_format.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_length.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_length.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_type.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer_type.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_display_media_include_or_exclude.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_display_media_include_or_exclude.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_track_default_type.cc", +@@ -1912,12 +1852,6 @@ generated_enumeration_sources_in_modules + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_well_known_directory.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_write_command_type.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_write_command_type.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_format.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_format.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_length.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_length.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_tone.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer_tone.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_depth_data_format.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_depth_data_format.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_depth_type.cc", +@@ -2464,12 +2398,8 @@ generated_interface_sources_in_modules = "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_keyboard_layout_map.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_khr_parallel_shader_compile.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_khr_parallel_shader_compile.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_translator.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_translator.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detector.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detector.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_params.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model_params.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_model.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_launch_params.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_launch_params.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_launch_queue.cc", -@@ -2924,8 +2904,6 @@ generated_interface_sources_in_modules = +@@ -2708,8 +2638,6 @@ generated_interface_sources_in_modules = + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_private_aggregation.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_private_attribution.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_private_attribution.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofreader.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_proofreader.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_protected_audience.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_protected_audience.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential.cc", +@@ -2732,8 +2660,6 @@ generated_interface_sources_in_modules = + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_remote_playback.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_restriction_target.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_restriction_target.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rewriter.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_certificate.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_certificate.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_rtc_data_channel.cc", +@@ -2902,8 +2828,6 @@ generated_interface_sources_in_modules = + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_sub_apps.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_subtle_crypto.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_subtle_crypto.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_summarizer.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_svg_element.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_svg_element.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_sync_event.cc", +@@ -2926,8 +2850,6 @@ generated_interface_sources_in_modules = "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_track_default.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_track_default_list.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_track_default_list.h", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation.cc", -- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translator.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translator.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_url.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_url.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_usb.cc", ---- src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl 2025-04-16 14:36:32.773113846 +0200 -+++ src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl 2025-04-18 21:45:18.481187932 +0200 -@@ -11,11 +11,6 @@ interface AITranslatorFactory { - ] - Promise create(AITranslatorCreateOptions options); - // TODO(crbug.com/390459310): Replace with availability. -- [ -- CallWith=ScriptState, -- RaisesException -- ] -- Promise capabilities(); - }; - - dictionary AITranslatorCreateCoreOptions { +@@ -3100,8 +3022,6 @@ generated_interface_sources_in_modules = + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_worklet_animation_effect.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_worklet_group_effect.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_worklet_group_effect.h", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer.cc", +- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_writer.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_anchor.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_anchor.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_anchor_set.cc", --- src/content/public/browser/content_browser_client.cc 2025-04-17 16:18:19.395831947 +0200 +++ src/content/public/browser/content_browser_client.cc 2025-04-18 22:48:04.297289260 +0200 @@ -1882,15 +1882,6 @@ GetContentLanguageDetectionDriver() { @@ -272,9 +327,9 @@ #if !BUILDFLAG(IS_ANDROID) void ContentBrowserClient::QueryInstalledWebAppsByManifestId( ---- src/content/browser/browser_interface_binders.cc 2025-04-16 14:36:28.520070884 +0200 -+++ src/content/browser/browser_interface_binders.cc 2025-04-18 23:10:18.079235856 +0200 -@@ -1156,19 +1164,6 @@ void PopulateFrameBinders(RenderFrameHos +--- src/content/browser/browser_interface_binders.cc.orig 2025-07-20 14:51:05.789212478 +0200 ++++ src/content/browser/browser_interface_binders.cc 2025-08-15 20:15:02.320284607 +0200 +@@ -1161,19 +1161,6 @@ void PopulateFrameBinders(RenderFrameHos base::Unretained(host))); } @@ -294,7 +349,7 @@ } void PopulateBinderMapWithContext( -@@ -1446,19 +1443,6 @@ void PopulateDedicatedWorkerBinders(Dedi +@@ -1465,19 +1452,6 @@ void PopulateDedicatedWorkerBinders(Dedi }, base::Unretained(host))); } @@ -314,7 +369,7 @@ } void PopulateBinderMapWithContext( -@@ -1549,19 +1533,6 @@ void PopulateSharedWorkerBinders(SharedW +@@ -1575,19 +1549,6 @@ void PopulateSharedWorkerBinders(SharedW }, base::Unretained(host))); } @@ -332,9 +387,9 @@ - base::Unretained(host))); - } - // RenderProcessHost binders - map->Add(BindWorkerReceiver( -@@ -1704,22 +1675,6 @@ void PopulateServiceWorkerBinders(Servic + #if !BUILDFLAG(IS_ANDROID) + map->Add(base::BindRepeating( +@@ -1753,22 +1714,6 @@ void PopulateServiceWorkerBinders(Servic }, base::Unretained(host))); } diff --git a/remove-date-reproducible-builds.patch b/remove-date-reproducible-builds.patch index ff76370..eead439 100644 --- a/remove-date-reproducible-builds.patch +++ b/remove-date-reproducible-builds.patch @@ -12,18 +12,18 @@ GENERATED_FILE_MESSAGE = """// GENERATED FROM THE API DEFINITION IN // %s // by tools/json_schema_compiler. ---- a/tools/json_to_struct/json_to_struct.py -+++ b/tools/json_to_struct/json_to_struct.py -@@ -74,7 +74,7 @@ - import java_element_generator +--- src/tools/json_to_struct/json_to_struct.py.orig 2025-07-19 11:32:45.069979393 +0200 ++++ src/tools/json_to_struct/json_to_struct.py 2025-08-15 15:02:55.044700914 +0200 +@@ -84,7 +84,7 @@ import java_element_generator import struct_generator + -HEAD = u"""// Copyright %d The Chromium Authors +HEAD = u"""// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -@@ -227,7 +227,7 @@ +@@ -316,7 +316,7 @@ def GenerateStruct(basepath, output_root year: Year to display next to the copy-right in the header. """ year = int(year) if year else datetime.now().year diff --git a/remove-password-manager-and-policy.patch b/remove-password-manager-and-policy.patch index 71f9b89..097a3c4 100644 --- a/remove-password-manager-and-policy.patch +++ b/remove-password-manager-and-policy.patch @@ -1,12 +1,13 @@ --- src/components/browsing_data/core/BUILD.gn.old +++ src/components/browsing_data/core/BUILD.gn -@@ -36,9 +36,7 @@ static_library("core") { +@@ -36,10 +36,7 @@ static_library("core") { deps = [ "//base", "//components/autofill/core/browser", - "//components/bookmarks/browser", "//components/history/core/browser", - "//components/password_manager/core/browser", +- "//components/password_manager/core/browser/features:password_features", "//components/pref_registry", "//components/prefs", "//components/strings", @@ -18,8 +19,8 @@ "//components/sync/nigori", - "//components/sync/service", ] - if (is_chromeos) { - public_deps += [ "//components/sync/chromeos" ] + } + --- src/components/permissions/prediction_service/BUILD.gn.old +++ src/components/permissions/prediction_service/BUILD.gn @@ -31,8 +31,6 @@ source_set("prediction_service") { @@ -31,21 +32,34 @@ ] if (build_with_tflite_lib) { ---- src/components/embedder_support/BUILD.gn.old -+++ src/components/embedder_support/BUILD.gn -@@ -24,12 +24,8 @@ static_library("browser_util") { +--- src/components/embedder_support/BUILD.gn.orig 2025-07-19 11:32:33.129979749 +0200 ++++ src/components/embedder_support/BUILD.gn 2025-08-13 11:51:36.828843854 +0200 +@@ -19,9 +19,7 @@ static_library("content_settings") { + ] + 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", + "//content/public/browser", + "//net", + "//third_party/blink/public/mojom:mojom_platform_headers", +@@ -36,7 +34,6 @@ static_library("permissions") { + ] + + deps = [ +- "//components/background_sync", "//components/permissions", + "//device/vr/buildflags", + "//services/device/public/cpp:device_features", +@@ -58,7 +55,6 @@ static_library("user_agent") { + ":embedder_support", + "//build:branding_buildflags", + "//build/util:chromium_git_revision", - "//components/policy/core/common", "//components/prefs", "//components/version_info", - "//content/public/browser", + "//net", --- src/components/permissions/BUILD.gn.orig 2025-04-11 12:05:19.206024144 +0200 +++ src/components/permissions/BUILD.gn 2025-04-11 20:04:52.832323166 +0200 @@ -119,10 +119,7 @@ source_set("permissions") { @@ -82,15 +96,6 @@ "proxy_policy_handler.h", --- src/components/content_settings/core/browser/BUILD.gn.orig +++ src/components/content_settings/core/browser/BUILD.gn -@@ -69,7 +69,7 @@ static_library("browser") { - "//url", - ] - -- if (!is_ios) { -+ if (false) { - sources += [ - "insecure_private_network_policy_handler.cc", - "insecure_private_network_policy_handler.h", @@ -78,8 +78,6 @@ static_library("browser") { if (use_blink) { @@ -146,9 +151,9 @@ "//device/vr/buildflags", ] } ---- src/components/search_engines/BUILD.gn.orig 2025-04-11 12:05:19.397475381 +0200 -+++ src/components/search_engines/BUILD.gn 2025-04-11 20:05:37.960311107 +0200 -@@ -12,49 +12,21 @@ if (is_android) { +--- src/components/search_engines/BUILD.gn.orig 2025-07-19 11:32:33.625979784 +0200 ++++ src/components/search_engines/BUILD.gn 2025-08-13 11:58:08.964717036 +0200 +@@ -12,50 +12,20 @@ if (is_android) { static_library("search_engines") { sources = [ "choice_made_location.h", @@ -156,8 +161,8 @@ - "default_search_manager.h", - "enterprise/default_search_policy_handler.cc", - "enterprise/default_search_policy_handler.h", - "enterprise/enterprise_search_manager.cc", - "enterprise/enterprise_search_manager.h", +- "enterprise/enterprise_search_manager.cc", +- "enterprise/enterprise_search_manager.h", - "keyword_table.cc", - "keyword_table.h", "keyword_web_data_service.cc", @@ -169,7 +174,6 @@ - "search_engine_choice/search_engine_choice_service.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", "search_terms_data.cc", @@ -187,6 +191,8 @@ - "template_url_parser.h", - "template_url_prepopulate_data.cc", - "template_url_prepopulate_data.h", + "template_url_prepopulate_data_resolver.cc", + "template_url_prepopulate_data_resolver.h", - "template_url_service.cc", - "template_url_service.h", "template_url_service_client.h", @@ -198,7 +204,7 @@ ] public_deps = [ -@@ -68,7 +46,6 @@ static_library("search_engines") { +@@ -70,7 +42,6 @@ static_library("search_engines") { "//components/sync", "//components/webdata/common", "//third_party/metrics_proto", @@ -206,7 +212,7 @@ "//third_party/search_engines_data:prepopulated_engines", ] -@@ -77,16 +47,10 @@ static_library("search_engines") { +@@ -79,17 +50,11 @@ static_library("search_engines") { "//components/country_codes", "//components/crash/core/common:crash_key", "//components/database_utils", @@ -219,11 +225,12 @@ - "//components/policy/core/browser", "//components/pref_registry", "//components/regional_capabilities", + "//components/regional_capabilities:country_access_reason", - "//components/search_provider_logos:switches", "//components/signin/public/base", "//components/strings", "//components/url_formatter", -@@ -98,7 +62,6 @@ static_library("search_engines") { +@@ -101,7 +66,6 @@ static_library("search_engines") { "//services/network/public/mojom", "//sql", "//third_party/metrics_proto", @@ -231,17 +238,8 @@ "//ui/base", "//ui/gfx", "//ui/gfx/geometry", -@@ -124,7 +87,7 @@ static_library("search_engines") { - ] - } - -- if (!is_android) { -+ if (false) { - sources += [ "search_engine_choice/generated_marketing_snippets.cc" ] - deps += [ - ":generate_search_engine_icons", -@@ -133,7 +96,7 @@ static_library("search_engines") { - ] +@@ -141,7 +105,7 @@ static_library("search_engines") { + } } - if (is_linux || is_win || is_mac || is_chromeos) { diff --git a/remove-probabilistic-token-which-uses-private-join-and-compute.patch b/remove-probabilistic-token-which-uses-private-join-and-compute.patch new file mode 100644 index 0000000..56c2715 --- /dev/null +++ b/remove-probabilistic-token-which-uses-private-join-and-compute.patch @@ -0,0 +1,32 @@ +partially revert https://github.com/chromium/chromium/commit/43410138fb38ff4bdba9720ac57b26434443f761 + +--- src/components/ip_protection/common/BUILD.gn.orig 2025-08-15 17:32:25.445405827 +0200 ++++ src/components/ip_protection/common/BUILD.gn 2025-08-15 20:36:06.954140693 +0200 +@@ -63,7 +63,6 @@ source_set("ip_protection_core_impl") { + public_deps = [ + ":ip_protection_core", + ":ip_protection_data_types", +- ":ip_protection_probabilistic_reveal_token_manager", + ":ip_protection_proxy_config_manager", + ":ip_protection_token_manager", + ":masked_domain_list_manager", +@@ -108,7 +107,6 @@ source_set("ip_protection_core_impl_mojo + ] + deps = [ + ":ip_protection_core_host_remote", +- ":ip_protection_probabilistic_reveal_token_mojo_fetcher", + ":ip_protection_proxy_config_manager_impl", + ":ip_protection_proxy_config_mojo_fetcher", + ":ip_protection_token_manager_impl", +--- src/components/ip_protection/common/ip_protection_core_impl_mojo.cc.orig 2025-08-15 17:32:25.445405827 +0200 ++++ src/components/ip_protection/common/ip_protection_core_impl_mojo.cc 2025-08-16 19:10:17.599046225 +0200 +@@ -81,8 +81,7 @@ IpProtectionCoreImplMojo::IpProtectionCo + std::unique_ptr>(), + probabilistic_reveal_token_registry, + (core_host_remote && +- base::FeatureList::IsEnabled( +- net::features::kEnableProbabilisticRevealTokens)) ++ false) + ? std::make_unique( + std::make_unique< + IpProtectionProbabilisticRevealTokenMojoFetcher>( diff --git a/remove-rust.patch b/remove-rust.patch index 082e88a..6399989 100644 --- a/remove-rust.patch +++ b/remove-rust.patch @@ -21,9 +21,9 @@ Remove this dead code which brings a dependency on rustc # TODO(358041220): There is a circular_dependency of `cookie_controls:impl` module # with "//chrome/browser" due to the inclusion of //c/b/policy/profile_policy_connector.h @@ -1935,7 +1934,6 @@ static_library("browser") { - "//chrome/browser/search_engine_choice", - "//chrome/browser/search_engine_choice:impl", "//chrome/browser/search_engines", + "//chrome/browser/send_tab_to_self", + "//chrome/browser/serial", - "//chrome/browser/share", "//chrome/browser/sharing:buildflags", "//chrome/browser/signin", @@ -61,7 +61,7 @@ Remove this dead code which brings a dependency on rustc - "//components/qr_code_generator:bitmap_generator", "//components/query_parser", "//components/reading_list/core", - "//components/reading_list/features:flags", + "//components/renderer_context_menu", --- src/chrome/test/BUILD.gn.orig 2025-04-11 12:13:12.932314099 +0200 +++ src/chrome/test/BUILD.gn 2025-04-11 19:53:28.092504094 +0200 @@ -2163,7 +2163,6 @@ if (!is_android) { @@ -78,8 +78,8 @@ Remove this dead code which brings a dependency on rustc "//components/proxy_config", - "//components/qr_code_generator:bitmap_generator", "//components/reading_list/core", - "//components/reading_list/features:flags", "//components/resources", + "//components/safe_browsing:buildflags", @@ -6648,7 +6646,6 @@ test("unit_tests") { "//components/privacy_sandbox/privacy_sandbox_attestations:test_support", "//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto", @@ -98,7 +98,7 @@ Remove this dead code which brings a dependency on rustc "//third_party/zlib/google:compression_utils", @@ -8115,8 +8111,6 @@ test("unit_tests") { "//chrome/browser/upgrade_detector:build_state_observer", - "//chrome/browser/user_annotations", + "//chrome/browser/web_applications:features", "//chrome/browser/web_applications:web_applications_test_support", - "//chrome/browser/webauthn:test_support", - "//chrome/browser/webauthn/proto", diff --git a/remove-sync.patch b/remove-sync.patch index 58d67ba..2da8031 100644 --- a/remove-sync.patch +++ b/remove-sync.patch @@ -224,12 +224,11 @@ Inspired by: #include "device/fido/features.h" #include "device/fido/fido_discovery_base.h" #include "device/fido/hid/fido_hid_discovery.h" -@@ -128,12 +127,7 @@ std::vector> FidoDiscoveryFactory::MaybeCreateEnclaveDiscovery() { -- if (!base::FeatureList::IsEnabled(kWebAuthnEnclaveAuthenticator) || -- !enclave_ui_request_stream_ || !network_context_factory_) { +- if (!enclave_ui_request_stream_ || !network_context_factory_) { return std::nullopt; - } - return std::make_unique( @@ -240,9 +239,9 @@ Inspired by: --- src/device/fido/fido_discovery_factory.h.orig +++ src/device/fido/fido_discovery_factory.h @@ -15,7 +15,6 @@ + #include "base/containers/span.h" #include "base/memory/raw_ptr.h" #include "build/build_config.h" - #include "build/chromeos_buildflags.h" -#include "components/sync/protocol/webauthn_credential_specifics.pb.h" #include "device/fido/cable/cable_discovery_data.h" #include "device/fido/cable/v2_constants.h" diff --git a/resource-Wchanges-meaning.patch b/resource-Wchanges-meaning.patch deleted file mode 100644 index 0f3d132..0000000 --- a/resource-Wchanges-meaning.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/third_party/blink/renderer/platform/loader/fetch/resource.h.orig 2025-04-16 14:36:33.086070015 +0200 -+++ src/third_party/blink/renderer/platform/loader/fetch/resource.h 2025-04-16 21:57:27.672717364 +0200 -@@ -363,7 +363,7 @@ class PLATFORM_EXPORT Resource : public - // attributes. - bool ForceIntegrityChecks() const; - -- const IntegrityReport& IntegrityReport() const { return integrity_report_; } -+ const blink::IntegrityReport& IntegrityReport() const { return integrity_report_; } - bool MustRefetchDueToIntegrityMetadata(const FetchParameters&) const; - - bool IsAlive() const { return is_alive_; } diff --git a/resource_response-Wchanges-meaning.patch b/resource_response-Wchanges-meaning.patch deleted file mode 100644 index 4b16a2d..0000000 --- a/resource_response-Wchanges-meaning.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/third_party/blink/renderer/platform/loader/fetch/resource_response.h.orig 2025-04-16 14:36:33.089070014 +0200 -+++ src/third_party/blink/renderer/platform/loader/fetch/resource_response.h 2025-04-16 21:43:33.972794371 +0200 -@@ -174,7 +174,7 @@ class PLATFORM_EXPORT ResourceResponse f - std::optional LastModified(UseCounter&) const; - // Will always return values >= 0. - base::TimeDelta CacheControlStaleWhileRevalidate() const; -- std::optional UnencodedDigest() const; -+ std::optional UnencodedDigest() const; - - unsigned ConnectionID() const; - void SetConnectionID(unsigned); diff --git a/sandboxed_vfs_file_impl-missing-memset.patch b/sandboxed_vfs_file_impl-missing-memset.patch new file mode 100644 index 0000000..d909b54 --- /dev/null +++ b/sandboxed_vfs_file_impl-missing-memset.patch @@ -0,0 +1,11 @@ +--- src/sql/sandboxed_vfs_file_impl.cc.orig 2025-08-15 17:32:28.681405220 +0200 ++++ src/sql/sandboxed_vfs_file_impl.cc 2025-08-15 21:55:09.415178758 +0200 +@@ -9,6 +9,8 @@ + + #include "sql/sandboxed_vfs_file_impl.h" + ++#include ++ + #include "base/notreached.h" + #include "sql/sandboxed_vfs.h" + diff --git a/seccomp_bpf-no-lto.patch b/seccomp_bpf-no-lto.patch index d8e6abe..954e9b6 100644 --- a/seccomp_bpf-no-lto.patch +++ b/seccomp_bpf-no-lto.patch @@ -1,6 +1,6 @@ ---- src/sandbox/linux/BUILD.gn.old 2022-10-12 18:06:31.399406000 +0200 -+++ src/sandbox/linux/BUILD.gn 2022-10-22 11:55:59.621396300 +0200 -@@ -196,6 +196,27 @@ +--- src/sandbox/linux/BUILD.gn.orig 2025-08-15 17:32:28.529405249 +0200 ++++ src/sandbox/linux/BUILD.gn 2025-08-16 19:07:14.523083090 +0200 +@@ -205,6 +205,26 @@ test("sandbox_linux_unittests") { } } @@ -17,7 +17,6 @@ + deps = [ + ":sandbox_services", + "//base", -+ "//build:chromeos_buildflags", + "//sandbox:sandbox_buildflags", + ] + if (gcc_lto) { @@ -28,7 +27,7 @@ component("seccomp_bpf") { sources = [ "bpf_dsl/bpf_dsl.cc", -@@ -227,8 +247,6 @@ +@@ -236,8 +256,6 @@ component("seccomp_bpf") { "seccomp-bpf/die.h", "seccomp-bpf/sandbox_bpf.cc", "seccomp-bpf/sandbox_bpf.h", @@ -37,11 +36,11 @@ "seccomp-bpf/trap.cc", "seccomp-bpf/trap.h", ] -@@ -240,6 +258,7 @@ +@@ -249,6 +267,7 @@ component("seccomp_bpf") { ] deps = [ ":sandbox_services", + ":seccomp_bpf_asm", "//base", - "//build:chromeos_buildflags", "//sandbox:sandbox_buildflags", + ] diff --git a/string-hasher-flax-vector-conversions.patch b/string-hasher-flax-vector-conversions.patch deleted file mode 100644 index 83bf574..0000000 --- a/string-hasher-flax-vector-conversions.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- src/v8/src/strings/string-hasher.cc.orig 2025-04-20 12:05:55.016195134 +0200 -+++ src/v8/src/strings/string-hasher.cc 2025-04-20 12:10:16.788185381 +0200 -@@ -27,7 +27,7 @@ struct ConvertTo8BitHashReader { - __m128i x = _mm_loadu_si128(reinterpret_cast(p)); - return _mm_cvtsi128_si64(_mm_packus_epi16(x, x)); - #elif defined(__ARM_NEON__) -- int16x8_t x; -+ uint16x8_t x; - memcpy(&x, p, sizeof(x)); - return vget_lane_u64(vreinterpret_u64_u8(vmovn_u16(x)), 0); - #else -@@ -48,9 +48,9 @@ struct ConvertTo8BitHashReader { - __m128i x = _mm_loadu_si64(reinterpret_cast(p)); - return _mm_cvtsi128_si64(_mm_packus_epi16(x, x)); - #elif defined(__ARM_NEON__) -- int8x8_t x; -+ uint16x4_t x; - memcpy(&x, p, sizeof(x)); -- int16x8_t x_wide = vcombine_u64(x, x); -+ uint16x8_t x_wide = vcombine_u16(x, x); - return vget_lane_u32(vreinterpret_u32_u8(vmovn_u16(x_wide)), 0); - #else - return (uint64_t{p[0]}) | (uint64_t{p[1]} << 8) | (uint64_t{p[2]} << 16) | diff --git a/string_truncator-convert.patch b/string_truncator-convert.patch deleted file mode 100644 index cb4381e..0000000 --- a/string_truncator-convert.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- src/third_party/blink/renderer/platform/fonts/string_truncator.cc.orig 2025-04-16 14:36:33.038422986 +0200 -+++ src/third_party/blink/renderer/platform/fonts/string_truncator.cc 2025-04-16 22:05:13.224674254 +0200 -@@ -168,7 +168,7 @@ static String TruncateString(const Strin - DCHECK_LT(keep_count, keep_count_for_smallest_known_to_not_fit); - DCHECK_GT(keep_count, keep_count_for_largest_known_to_fit); - -- truncated_string = truncate_to_buffer(string, keep_count, string_buffer); -+ truncated_string = truncate_to_buffer(string, keep_count, base::span(string_buffer)); - - width = StringWidth(font, truncated_string); - if (width <= max_width) { -@@ -185,7 +185,7 @@ static String TruncateString(const Strin - - if (keep_count != keep_count_for_largest_known_to_fit) { - keep_count = keep_count_for_largest_known_to_fit; -- truncated_string = truncate_to_buffer(string, keep_count, string_buffer); -+ truncated_string = truncate_to_buffer(string, keep_count, base::span(string_buffer)); - } - - return String(truncated_string); diff --git a/style_scope-unqualified-To.patch b/style_scope-unqualified-To.patch deleted file mode 100644 index 0682572..0000000 --- a/style_scope-unqualified-To.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/third_party/blink/renderer/core/css/style_scope.cc 2025-04-16 14:36:32.429070140 +0200 -+++ /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/nodejs-electron-35.1.5-build/src/third_party/blink/renderer/core/css/style_scope.cc 2025-04-17 16:02:10.183836430 +0200 -@@ -32,7 +32,7 @@ StyleScope* StyleScope::CopyWithParent(c - - const StyleScope* StyleScope::Renest(StyleRule* new_parent) const { - StyleRule* reparented_from = -- from_ ? To(from_->Renest(new_parent)) : nullptr; -+ from_ ? blink::To(from_->Renest(new_parent)) : nullptr; - if (from_ == reparented_from) { - return this; - } diff --git a/system-dragonbox.patch b/system-dragonbox.patch new file mode 100644 index 0000000..cc823e8 --- /dev/null +++ b/system-dragonbox.patch @@ -0,0 +1,11 @@ +--- src/v8/src/numbers/conversions.cc.orig 2025-08-15 17:36:40.101358286 +0200 ++++ src/v8/src/numbers/conversions.cc 2025-08-16 14:28:06.284178438 +0200 +@@ -23,7 +23,7 @@ + #include "src/objects/string-inl.h" + #include "src/strings/char-predicates-inl.h" + #include "src/utils/allocation.h" +-#include "third_party/dragonbox/src/include/dragonbox/dragonbox.h" ++#include + #include "third_party/fast_float/src/include/fast_float/fast_float.h" + #include "third_party/fast_float/src/include/fast_float/float_common.h" + diff --git a/system-libdrm.patch b/system-libdrm.patch index 8488f70..07ba642 100644 --- a/system-libdrm.patch +++ b/system-libdrm.patch @@ -40,16 +40,3 @@ Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controll #include "third_party/perfetto/include/perfetto/tracing/traced_value.h" #include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkImage.h" -Index: chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline_unittest.cc -=================================================================== ---- chromium-98.0.4758.80.orig/media/gpu/chromeos/video_decoder_pipeline_unittest.cc -+++ chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline_unittest.cc -@@ -23,7 +23,7 @@ - #include "media/gpu/chromeos/dmabuf_video_frame_pool.h" - #include "testing/gmock/include/gmock/gmock.h" - #include "testing/gtest/include/gtest/gtest.h" --#include "third_party/libdrm/src/include/drm/drm_fourcc.h" -+#include - - #if BUILDFLAG(IS_CHROMEOS_ASH) - // gn check does not account for BUILDFLAG(), so including this header will diff --git a/system-pydeps.patch b/system-pydeps.patch index 90463bd..5dd82c7 100644 --- a/system-pydeps.patch +++ b/system-pydeps.patch @@ -119,8 +119,8 @@ Unbundle assorted lexing/parsing/transpiling tools written in Python. --- src/mojo/public/tools/bindings/mojom.gni.orig 2025-04-11 12:05:21.530272509 +0200 +++ src/mojo/public/tools/bindings/mojom.gni 2025-04-11 20:56:50.579500868 +0200 @@ -802,7 +802,7 @@ template("mojom") { - remote_worker = "large" - custom_processor = "mojom_parser" + + action("${parser_target_name}_action") { script = mojom_parser_script - inputs = mojom_parser_sources + ply_sources + [ build_metadata_filename ] + inputs = mojom_parser_sources + [ build_metadata_filename ] diff --git a/system-simdutf.patch b/system-simdutf.patch deleted file mode 100644 index 3ee8c01..0000000 --- a/system-simdutf.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 3fb3bab213348955edc18a051f9c3f86241309e8 Mon Sep 17 00:00:00 2001 -From: LN Liberda -Date: Thu, 13 Mar 2025 20:01:32 -0700 -Subject: [PATCH] unbundle: add simdutf - -Bug: none -Change-Id: Idae290112561e5658c614f5eae8895abfe996124 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6333513 -Reviewed-by: Thomas Anderson -Commit-Queue: Thomas Anderson -Reviewed-by: Lei Zhang -Cr-Commit-Position: refs/heads/main@{#1432518} ---- - build/linux/unbundle/replace_gn_files.py | 1 + - build/linux/unbundle/simdutf.gn | 20 ++++++++++++++++++++ - 2 files changed, 21 insertions(+) - create mode 100644 build/linux/unbundle/simdutf.gn - -diff --git a/build/linux/unbundle/replace_gn_files.py b/build/linux/unbundle/replace_gn_files.py -index 9ee6fda6547d90..f5db9d23c886b7 100755 ---- a/build/linux/unbundle/replace_gn_files.py -+++ b/build/linux/unbundle/replace_gn_files.py -@@ -67,6 +67,7 @@ - 'openh264': 'third_party/openh264/BUILD.gn', - 'opus': 'third_party/opus/BUILD.gn', - 're2': 'third_party/re2/BUILD.gn', -+ 'simdutf': 'third_party/simdutf/BUILD.gn', - 'snappy': 'third_party/snappy/BUILD.gn', - # Use system libSPIRV-Tools in Swiftshader. - # These two shims MUST be used together. -diff --git a/build/linux/unbundle/simdutf.gn b/build/linux/unbundle/simdutf.gn -new file mode 100644 -index 00000000000000..67d86cb3b3e5f9 ---- /dev/null -+++ b/build/linux/unbundle/simdutf.gn -@@ -0,0 +1,20 @@ -+# Copyright 2025 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/config/linux/pkg_config.gni") -+import("//build/shim_headers.gni") -+ -+shim_headers("header") { -+ root_path = "." -+ headers = [ "simdutf.h" ] -+} -+ -+pkg_config("system_simdutf") { -+ packages = [ "simdutf" ] -+} -+ -+source_set("simdutf") { -+ public_configs = [ ":system_simdutf" ] -+ public_deps = [ ":header" ] -+} diff --git a/to_vector-std-projected-gcc119888.patch b/to_vector-std-projected-gcc119888.patch deleted file mode 100644 index a371ad1..0000000 --- a/to_vector-std-projected-gcc119888.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/base/containers/to_vector.h.orig 2025-04-21 18:29:04.778306927 +0200 -+++ src/base/containers/to_vector.h 2025-04-22 06:32:55.415046071 +0200 -@@ -29,7 +29,7 @@ template > - auto ToVector(Range&& range, Proj proj = {}) { - using ProjectedType = -- std::projected, Proj>::value_type; -+ std::indirectly_readable_traits, Proj> >::value_type; - std::vector container; - container.reserve(std::ranges::size(range)); - std::ranges::transform(std::forward(range), diff --git a/unexportable_key_service_impl-Wlto-type-mismatch.patch b/unexportable_key_service_impl-Wlto-type-mismatch.patch deleted file mode 100644 index 27bf675..0000000 --- a/unexportable_key_service_impl-Wlto-type-mismatch.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- src/components/unexportable_keys/unexportable_key_service_impl.cc.orig 2025-04-20 19:22:29.934671387 +0200 -+++ src/components/unexportable_keys/unexportable_key_service_impl.cc 2025-04-21 14:22:30.891412928 +0200 -@@ -19,8 +19,6 @@ - - namespace unexportable_keys { - --namespace { -- - // Class holding either an `UnexportableKeyId` or a list of callbacks waiting - // for the key creation. - class MaybePendingUnexportableKeyId { -@@ -105,8 +103,6 @@ MaybePendingUnexportableKeyId::GetCallba - return absl::get>(key_id_or_pending_callbacks_); - } - --} // namespace -- - UnexportableKeyServiceImpl::UnexportableKeyServiceImpl( - UnexportableKeyTaskManager& task_manager) - : task_manager_(task_manager) {} ---- src/components/unexportable_keys/unexportable_key_service_impl.h.orig 2025-04-20 19:22:29.934671387 +0200 -+++ src/components/unexportable_keys/unexportable_key_service_impl.h 2025-04-21 14:22:00.963413744 +0200 -@@ -23,9 +23,7 @@ - - namespace unexportable_keys { - --namespace { - class MaybePendingUnexportableKeyId; --} - - class UnexportableKeyTaskManager; - diff --git a/use-system-libraries-in-node.patch b/use-system-libraries-in-node.patch index 91ca253..7dc6c29 100644 --- a/use-system-libraries-in-node.patch +++ b/use-system-libraries-in-node.patch @@ -78,8 +78,8 @@ Both this and the unbundle flags should be upstreamed but probably separately. "deps/nbytes", - "deps/nghttp2", "deps/postject", - "deps/sqlite", "deps/uvwasi", + "//third_party/zlib", @@ -186,21 +211,36 @@ template("node_gn_build") { "Security.framework", ] diff --git a/v8-assume-x86-64-v2-support.patch b/v8-assume-x86-64-v2-support.patch new file mode 100644 index 0000000..2062e0d --- /dev/null +++ b/v8-assume-x86-64-v2-support.patch @@ -0,0 +1,51 @@ +--- src/v8/src/codegen/cpu-features.h.orig 2025-08-19 18:33:53.729236588 +0200 ++++ src/v8/src/codegen/cpu-features.h 2025-08-19 19:06:19.769049465 +0200 +@@ -122,6 +122,12 @@ class V8_EXPORT_PRIVATE CpuFeatures : pu + } + + static bool IsSupported(CpuFeature f) { ++ if(f == SSE4_2) return true; ++ if(f == SSE4_1) return true; ++ if(f == SSSE3) return true; ++ if(f == SSE3) return true; ++ if(f == SAHF) return true; ++ if(f == POPCNT) return true; + return (supported_ & (1u << f)) != 0; + } + +--- src/v8/src/base/cpu.h.orig 2025-08-19 18:33:53.705236589 +0200 ++++ src/v8/src/base/cpu.h 2025-08-19 19:09:47.921029664 +0200 +@@ -73,15 +73,15 @@ class V8_BASE_EXPORT CPU final { + static const int kUnknownCacheLineSize = 0; + + // x86 features +- bool has_cmov() const { return has_cmov_; } +- bool has_sahf() const { return has_sahf_; } +- bool has_mmx() const { return has_mmx_; } +- bool has_sse() const { return has_sse_; } +- bool has_sse2() const { return has_sse2_; } +- bool has_sse3() const { return has_sse3_; } +- bool has_ssse3() const { return has_ssse3_; } +- bool has_sse41() const { return has_sse41_; } +- bool has_sse42() const { return has_sse42_; } ++ bool has_cmov() const { return true; } ++ bool has_sahf() const { return true; } ++ bool has_mmx() const { return true; } ++ bool has_sse() const { return true; } ++ bool has_sse2() const { return true; } ++ bool has_sse3() const { return true; } ++ bool has_ssse3() const { return true; } ++ bool has_sse41() const { return true; } ++ bool has_sse42() const { return true; } + bool has_osxsave() const { return has_osxsave_; } + bool has_avx() const { return has_avx_; } + bool has_avx2() const { return has_avx2_; } +@@ -92,7 +92,7 @@ class V8_BASE_EXPORT CPU final { + bool has_bmi1() const { return has_bmi1_; } + bool has_bmi2() const { return has_bmi2_; } + bool has_lzcnt() const { return has_lzcnt_; } +- bool has_popcnt() const { return has_popcnt_; } ++ bool has_popcnt() const { return true; } + bool is_atom() const { return is_atom_; } + bool has_intel_jcc_erratum() const { return has_intel_jcc_erratum_; } + bool has_cetss() const { return has_cetss_; } diff --git a/v8-highway-1.1.patch b/v8-highway-1.1.patch new file mode 100644 index 0000000..6e6c04c --- /dev/null +++ b/v8-highway-1.1.patch @@ -0,0 +1,150 @@ +From 1cb68a06f8c0ea3ad29cab6efe5ac673817596ce Mon Sep 17 00:00:00 2001 +From: pthier +Date: Tue, 6 May 2025 10:28:03 +0200 +Subject: [PATCH] Reland "[regexp] Simdify global atom match with single + character pattern" + +This is a reland of commit 36f07e9a04484dd4b97713f8e821d3b83ade8f53 + +Changes since revert: Accumulate number of matches after a cache hit +instead of overwriting them. + +Original change's description: +> [regexp] Simdify global atom match with single character pattern +> +> Use highway to find matching characters for RegExp with a single +> character atom pattern. +> +> Bug: 413411337 +> Change-Id: I9bf686aca2da37025613a9227eb0ec69176a676f +> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6487695 +> Reviewed-by: Jakob Linke +> Commit-Queue: Patrick Thier +> Cr-Commit-Position: refs/heads/main@{#100006} + +Fixed: 414857029 +Bug: 413411337 +Change-Id: I3ebd72f3b91ce5e7b603e43540cd4e10090c1868 +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6513551 +Reviewed-by: Camillo Bruni +Commit-Queue: Patrick Thier +Cr-Commit-Position: refs/heads/main@{#100088} +--- + src/runtime/runtime-regexp.cc | 95 ++++++++++++++++++++++++++++++++--- + test/mjsunit/regexp-global.js | 24 +++++++++ + 2 files changed, 112 insertions(+), 7 deletions(-) + +diff --git a/src/runtime/runtime-regexp.cc b/src/runtime/runtime-regexp.cc +index 5689cdc8d1db..e5cee437d1c3 100644 +--- a/v8/src/runtime/runtime-regexp.cc ++++ b/v8/src/runtime/runtime-regexp.cc +@@ -3,7 +3,9 @@ + // found in the LICENSE file. + + #include ++#include + ++#include "hwy/highway.h" + #include "src/base/small-vector.h" + #include "src/base/strings.h" + #include "src/common/message-template.h" +@@ -2164,13 +2166,92 @@ inline void RegExpMatchGlobalAtom_OneCharPattern( + Isolate* isolate, base::Vector subject, const PChar pattern, + int start_index, int* number_of_matches, int* last_match_index, + const DisallowGarbageCollection& no_gc) { +- for (int i = start_index; i < subject.length(); i++) { +- // Subtle: the valid variants are {SChar,PChar} in: +- // {uint8_t,uint8_t}, {uc16,uc16}, {uc16,uint8_t}. In the latter case, +- // we cast the uint8_t pattern to uc16 for the comparison. +- if (subject[i] != static_cast(pattern)) continue; +- (*number_of_matches)++; +- (*last_match_index) = i; ++ static_assert(std::is_unsigned_v); ++ static_assert(std::is_unsigned_v); ++ // We can utilize SIMD to check multiple characters at once. ++ // Since the pattern is a single char, we create a mask setting each lane in ++ // the vector to the pattern char. ++ // Since reductions from a vector to a general purpose register (i.e. ++ // ReduceSum in this algorithm) are expensive, we keep a count for each lane ++ // in a vector until the count could potentially overflow and only reduce to ++ // a general purpose register then. I.e. if SChar is uint8_t, we have a ++ // 16xuint8_t vector to count matches, which we reduce to an int every 255 ++ // blocks. ++ namespace hw = hwy::HWY_NAMESPACE; ++ hw::ScalableTag tag; ++ // We need a wider tag to avoid overflows on lanes when summing up submatches. ++ using WidenedTag = hw::RepartitionToWide; ++ WidenedTag sum_tag; ++ static constexpr size_t stride = hw::Lanes(tag); ++ // Subtle: the valid variants are {SChar,PChar} in: ++ // {uint8_t,uint8_t}, {uc16,uc16}, {uc16,uint8_t}. In the latter case, ++ // we cast the uint8_t pattern to uc16 for the comparison. ++ const auto mask = hw::Set(tag, static_cast(pattern)); ++ ++ int matches = 0; ++ auto submatches = hw::Zero(tag); ++ const SChar* last_match_block = nullptr; ++ hw::Mask last_match_vec; ++ ++ const SChar* block = subject.data() + start_index; ++ const SChar* end = subject.data() + subject.length(); ++ ++ // ReduceSum is expensive, so we gather matches into a vector. max_count is ++ // the maximum number of matches we can count in the vector before it ++ // overflows. ++ int max_count = std::numeric_limits::max(); ++ while (block + stride * max_count <= end) { ++ for (int i = 0; i < max_count; i++, block += stride) { ++ const auto input = hw::LoadU(tag, block); ++ const auto match = input == mask; ++ // Lanes with matches have all bits set, so we subtract to increase the ++ // count by 1. ++ submatches = hw::Sub(submatches, hw::VecFromMask(tag, match)); ++ if (!hw::AllFalse(tag, match)) { ++ last_match_block = block; ++ last_match_vec = match; ++ } ++ } ++ // SumsOf2 promotes the sum of 2 consecutive lanes into a wider lane. ++ auto promoted_submatches = hw::SumsOf2(submatches); ++ // Wider lane sums can be reduces without overflows. ++ matches += hw::ReduceSum(sum_tag, promoted_submatches); ++ submatches = hw::Zero(tag); ++ } ++ ++ // For blocks shorter than stride * max_count, lanes in submatches can't ++ // overflow. ++ DCHECK_LT(end - block, stride * max_count); ++ for (; block + stride <= end; block += stride) { ++ const auto input = hw::LoadU(tag, block); ++ const auto match = input == mask; ++ submatches = hw::Sub(submatches, hw::VecFromMask(tag, match)); ++ if (!hw::AllFalse(tag, match)) { ++ last_match_block = block; ++ last_match_vec = match; ++ } ++ } ++ auto promoted_submatches = hw::SumsOf2(submatches); ++ matches += hw::ReduceSum(sum_tag, promoted_submatches); ++ ++ // Handle remaining chars. ++ // last_match_block already contains the last match position, so use a special ++ // vector with lane 0 set to extract the last_match_index later. ++ const auto scalar_last_match_vec = hw::FirstN(tag, 1); ++ for (SChar c = *block; block < end; c = *(++block)) { ++ if (c != static_cast(pattern)) continue; ++ matches++; ++ last_match_block = block; ++ last_match_vec = scalar_last_match_vec; ++ } ++ ++ // Store results. ++ *number_of_matches += matches; ++ if (last_match_block != nullptr) { ++ DCHECK(!hw::AllFalse(tag, last_match_vec)); ++ *last_match_index = static_cast( ++ last_match_block + hw::FindKnownLastTrue(tag, last_match_vec) - ++ subject.data()); + } + } + diff --git a/v8-simd-flax-vector-conversions.patch b/v8-simd-flax-vector-conversions.patch new file mode 100644 index 0000000..ab55951 --- /dev/null +++ b/v8-simd-flax-vector-conversions.patch @@ -0,0 +1,55 @@ +--- src/v8/src/objects/simd.cc.orig 2025-08-15 17:36:40.113358284 +0200 ++++ src/v8/src/objects/simd.cc 2025-08-17 16:29:26.826424105 +0200 +@@ -953,7 +953,7 @@ bool Uint8ArrayFromHexWithNeon(const bas + uint8x16_t second_part_first_batch = + vld1q_u8(reinterpret_cast(&input_vector[i + 8])); + first_batch = +- vmovn_high_u16(vmovn_u16(first_batch), second_part_first_batch); ++ vmovn_high_u16(vmovn_u16(vreinterpretq_u16_u8(first_batch)), vreinterpretq_u16_u8(second_part_first_batch)); + } + + // Load second batch of 16 hex characters into a Neon register +@@ -966,20 +966,20 @@ bool Uint8ArrayFromHexWithNeon(const bas + uint8x16_t second_part_second_batch = + vld1q_u8(reinterpret_cast(&input_vector[i + 24])); + second_batch = +- vmovn_high_u16(vmovn_u16(second_batch), second_part_second_batch); ++ vmovn_high_u16(vmovn_u16(vreinterpretq_u16_u8(second_batch)), vreinterpretq_u16_u8(second_part_second_batch)); + } + + // low nibbles are values with even indexes in fist_batch. + // (0x36, 0x00, 0x66, 0x00, 0x46, 0x00, 0x32, 0x00, 0x31, 0x00, 0x32, 0x00, + // 0x31, 0x00, 0x32, 0x00) +- uint8x16_t first_batch_lo_nibbles = +- vreinterpretq_u8_u16(vshrq_n_u16(vreinterpretq_u16_u8(first_batch), 8)); ++ uint16x8_t first_batch_lo_nibbles = ++ vshrq_n_u16(vreinterpretq_u16_u8(first_batch), 8); + + // low nibbles are values with even indexes in second_batch. + // (0x36, 0x00, 0x66, 0x00, 0x66, 0x00, 0x32, 0x00, 0x31, 0x00, 0x32, 0x00, + // 0x31, 0x00, 0x66, 0x00) +- uint8x16_t second_batch_lo_nibbles = vreinterpretq_u8_u16( +- vshrq_n_u16(vreinterpretq_u16_u8(second_batch), 8)); ++ uint16x8_t second_batch_lo_nibbles = ++ vshrq_n_u16(vreinterpretq_u16_u8(second_batch), 8); + + // Append low nibbles of first batch and second batch and remove 0x00s. + // (0x36, 0x66, 0x46, 0x32, 0x31, 0x32, 0x31, 0x32, 0x36, 0x66, 0x66, 0x32, +@@ -992,7 +992,7 @@ bool Uint8ArrayFromHexWithNeon(const bas + // significant byte. (0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x37, 0x36, + // 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x66) + uint8x16_t hi_nibbles = +- vmovn_high_u16(vmovn_u16(first_batch), second_batch); ++ vmovn_high_u16(vmovn_u16(vreinterpretq_u16_u8(first_batch)), vreinterpretq_u16_u8(second_batch)); + + // mapping low nibbles to uint8_t values. + // (0x06, 0x0f, 0x0f, 0x02, 0x01, 0x02, 0x01, 0x02, 0x06, 0x0f, 0x0f, 0x02, +@@ -1023,7 +1023,7 @@ bool Uint8ArrayFromHexWithNeon(const bas + // (0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x60, 0x70, 0x60, 0x60, 0x60, 0x60, + // 0x60, 0x70, 0x60, 0xf0) + uint8x16_t uint8_shifted_high_nibbles = +- vshlq_n_u64(vreinterpretq_u64_u8(uint8_high_nibbles), 4); ++ vreinterpretq_u8_u64(vshlq_n_u64(vreinterpretq_u64_u8(uint8_high_nibbles), 4)); + + // final result of combining pairs of uint8_t values of low and high + // nibbles. diff --git a/vaapi-no-encoders.patch b/vaapi-no-encoders.patch index a817ca0..d2ed155 100644 --- a/vaapi-no-encoders.patch +++ b/vaapi-no-encoders.patch @@ -5,9 +5,9 @@ These encoders: The hardware *decoders*, on the other hand, are useful for Signal Messenger, and should work now. ---- src/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.orig 2025-07-02 22:10:56.136470571 +0200 -+++ src/media/gpu/vaapi/vaapi_video_encode_accelerator.cc 2025-07-11 18:16:04.978530973 +0200 -@@ -43,13 +43,10 @@ +--- src/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.orig 2025-07-19 11:32:35.717979936 +0200 ++++ src/media/gpu/vaapi/vaapi_video_encode_accelerator.cc 2025-08-15 14:42:43.908933011 +0200 +@@ -46,13 +46,10 @@ #include "media/gpu/gpu_video_encode_accelerator_helpers.h" #include "media/gpu/h264_dpb.h" #include "media/gpu/macros.h" @@ -21,7 +21,7 @@ The hardware *decoders*, on the other hand, are useful for Signal Messenger, and #include "media/gpu/vp8_reference_frame_vector.h" #include "media/gpu/vp9_reference_frame_vector.h" -@@ -230,8 +227,7 @@ bool VaapiVideoEncodeAccelerator::Initia +@@ -233,8 +230,7 @@ EncoderStatus VaapiVideoEncodeAccelerato } const VideoCodec codec = VideoCodecProfileToVideoCodec(config.output_profile); @@ -30,8 +30,8 @@ The hardware *decoders*, on the other hand, are useful for Signal Messenger, and + if (codec != VideoCodec::kH264) { MEDIA_LOG(ERROR, media_log.get()) << "Unsupported profile: " << GetProfileName(config.output_profile); - return false; -@@ -321,11 +317,6 @@ void VaapiVideoEncodeAccelerator::Initia + return {EncoderStatus::Codes::kEncoderInitializationError}; +@@ -324,11 +320,6 @@ void VaapiVideoEncodeAccelerator::Initia : VaapiWrapper::kEncodeVariableBitrate; } break; @@ -43,7 +43,7 @@ The hardware *decoders*, on the other hand, are useful for Signal Messenger, and default: NotifyError({EncoderStatus::Codes::kEncoderUnsupportedCodec, "Unsupported codec: " + GetCodecName(output_codec_)}); -@@ -377,24 +368,6 @@ void VaapiVideoEncodeAccelerator::Initia +@@ -380,24 +371,6 @@ void VaapiVideoEncodeAccelerator::Initia } } break; @@ -68,20 +68,20 @@ The hardware *decoders*, on the other hand, are useful for Signal Messenger, and default: NOTREACHED() << "Unsupported codec type " << GetCodecName(output_codec_); } -@@ -893,19 +866,6 @@ VaapiVideoEncodeAccelerator::CreateEncod - picture = new VaapiH264Picture( +@@ -896,19 +869,6 @@ VaapiVideoEncodeAccelerator::CreateEncod + picture = base::MakeRefCounted( reconstructed_surface->ReleaseAsVASurfaceHandle()); break; - case VideoCodec::kVP8: -- picture = new VaapiVP8Picture( +- picture = base::MakeRefCounted( - reconstructed_surface->ReleaseAsVASurfaceHandle()); - break; - case VideoCodec::kVP9: -- picture = new VaapiVP9Picture( +- picture = base::MakeRefCounted( - reconstructed_surface->ReleaseAsVASurfaceHandle()); - break; - case VideoCodec::kAV1: -- picture = new VaapiAV1Picture( +- picture = base::MakeRefCounted( - /*display_va_surface=*/nullptr, - reconstructed_surface->ReleaseAsVASurfaceHandle()); - break; diff --git a/webgl_rendering_context_webgpu_base-incomplete-StaticBitmapImage.patch b/webgl_rendering_context_webgpu_base-incomplete-StaticBitmapImage.patch new file mode 100644 index 0000000..51183e4 --- /dev/null +++ b/webgl_rendering_context_webgpu_base-incomplete-StaticBitmapImage.patch @@ -0,0 +1,10 @@ +--- src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_webgpu_base.cc.orig 2025-08-15 17:32:29.453405076 +0200 ++++ src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_webgpu_base.cc 2025-08-16 09:32:54.602946843 +0200 +@@ -10,6 +10,7 @@ + #include "third_party/blink/renderer/platform/graphics/gpu/dawn_control_client_holder.h" + #include "third_party/blink/renderer/platform/graphics/gpu/webgpu_callback.h" + #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h" ++#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h" + #include "third_party/blink/renderer/platform/graphics/web_graphics_context_3d_provider_util.h" + #include "third_party/blink/renderer/platform/weborigin/kurl.h" + #include "third_party/blink/renderer/platform/wtf/functional.h" diff --git a/webrtc-138-Wchanges-meaning.patch b/webrtc-138-Wchanges-meaning.patch new file mode 100644 index 0000000..4a74ee1 --- /dev/null +++ b/webrtc-138-Wchanges-meaning.patch @@ -0,0 +1,33 @@ +--- webrtc-7204a/third_party/webrtc/pc/codec_vendor.h.orig 2025-08-10 20:30:35.548562304 +0200 ++++ webrtc-7204a/third_party/webrtc/pc/codec_vendor.h 2025-08-10 21:06:25.516311580 +0200 +@@ -119,7 +119,7 @@ class CodecVendor { + class CodecLookupHelper { + public: + virtual ~CodecLookupHelper() = default; +- virtual PayloadTypeSuggester* PayloadTypeSuggester() = 0; ++ virtual webrtc::PayloadTypeSuggester* PayloadTypeSuggester() = 0; + // Look up the codec vendor to use, depending on context. + // This call may get additional arguments in the future, to aid + // in selection of the correct context. +--- webrtc-7204a/third_party/webrtc/pc/jsep_transport.h.orig 2025-08-10 20:30:35.552562303 +0200 ++++ webrtc-7204a/third_party/webrtc/pc/jsep_transport.h 2025-08-10 21:10:32.100282629 +0200 +@@ -214,7 +214,7 @@ class JsepTransport { + return rtp_dtls_transport_; + } + +- scoped_refptr SctpTransport() const { return sctp_transport_; } ++ scoped_refptr SctpTransport() const { return sctp_transport_; } + + // TODO(bugs.webrtc.org/9719): Delete method, update callers to use + // SctpTransport() instead. +--- webrtc-7204a/third_party/webrtc/p2p/base/port_interface.h.orig 2025-08-10 20:30:35.544562305 +0200 ++++ webrtc-7204a/third_party/webrtc/p2p/base/port_interface.h 2025-08-10 20:58:44.792364738 +0200 +@@ -55,7 +55,7 @@ class PortInterface { + virtual ~PortInterface(); + + virtual IceCandidateType Type() const = 0; +- virtual const Network* Network() const = 0; ++ virtual const webrtc::Network* Network() const = 0; + + // Methods to set/get ICE role and tiebreaker values. + virtual void SetIceRole(IceRole role) = 0; diff --git a/webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch b/webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch deleted file mode 100644 index dab99d8..0000000 --- a/webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 4860148c51cb673711a41bc26135659ad4e6cb9d Mon Sep 17 00:00:00 2001 -From: Dan Tan -Date: Wed, 31 Jan 2024 09:11:18 -0800 -Subject: [PATCH] Add WebRTC-LibaomAv1Encoder-MaxConsecFrameDrop parameter to - explicitly limit the maximum consecutive frame drop - -Bug: webrtc:15821 -Change-Id: Ib8be6827ea57e4e54269b94a0fc9ea81945af09f -Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/337020 -Reviewed-by: Marco Paniconi -Commit-Queue: Dan Tan -Reviewed-by: Sergey Silkin -Cr-Commit-Position: refs/heads/main@{#41648} ---- - experiments/field_trials.py | 3 +++ - .../codecs/av1/libaom_av1_encoder.cc | 18 ++++++++++++- - .../codecs/av1/libaom_av1_encoder_unittest.cc | 25 +++++++++++++++++++ - 3 files changed, 45 insertions(+), 1 deletion(-) - -diff --git a/modules/video_coding/codecs/av1/libaom_av1_encoder.cc b/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -index 4ff22bfe34..03bb367fe0 100644 ---- a/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -+++ b/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -@@ -297,6 +307,12 @@ int LibaomAv1Encoder::InitEncode(const VideoCodec* codec_settings, - SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_ENABLE_PALETTE, 0); - } - -+ if (codec_settings->mode == VideoCodecMode::kRealtimeVideo && -+ encoder_settings_.GetFrameDropEnabled() && max_consec_frame_drop_ > 0) { -+ SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR, -+ max_consec_frame_drop_); -+ } -+ - if (cfg_.g_threads == 8) { - // Values passed to AV1E_SET_TILE_ROWS and AV1E_SET_TILE_COLUMNS are log2() - // based. diff --git a/webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch b/webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch deleted file mode 100644 index 999ddd8..0000000 --- a/webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch +++ /dev/null @@ -1,250 +0,0 @@ -From f7a15067031cae07b1dac031fa263a9f01902f1c Mon Sep 17 00:00:00 2001 -From: Sergey Silkin -Date: Tue, 9 Jul 2024 15:03:10 +0200 -Subject: [PATCH] Adjust max consecutive drops depending on target frame rate -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Current thresholds were tuned to guarantee no buffer overshoot in an extreme scenario (encoding a high complexity video in a low bitrate). - -Bug: b/337757868, webrtc:351644568 -Change-Id: I832b2564af6f18f06550338cc9b3618f8acdf831 -Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356580 -Reviewed-by: Dan Tan -Reviewed-by: Erik Språng -Commit-Queue: Sergey Silkin -Cr-Commit-Position: refs/heads/main@{#42620} ---- - experiments/field_trials.py | 6 +-- - modules/video_coding/codecs/av1/BUILD.gn | 2 + - .../codecs/av1/libaom_av1_encoder.cc | 42 +++++++++------ - .../codecs/av1/libaom_av1_encoder_unittest.cc | 53 ++++++++++++++----- - 4 files changed, 69 insertions(+), 34 deletions(-) - -diff --git a/modules/video_coding/codecs/av1/BUILD.gn b/modules/video_coding/codecs/av1/BUILD.gn -index 7d93de7a3a..197e1f3e19 100644 ---- a/third_party/webrtc/modules/video_coding/codecs/av1/BUILD.gn -+++ b/third_party/webrtc/modules/video_coding/codecs/av1/BUILD.gn -@@ -60,6 +60,7 @@ rtc_library("libaom_av1_encoder") { - "../../../../api/video_codecs:scalability_mode", - "../../../../api/video_codecs:video_codecs_api", - "../../../../common_video", -+ "../../../../modules/rtp_rtcp:rtp_rtcp_format", - "../../../../rtc_base:checks", - "../../../../rtc_base:logging", - "../../../../rtc_base:rtc_numerics", -@@ -104,6 +105,7 @@ if (rtc_include_tests) { - "../../../../api/units:data_size", - "../../../../api/units:time_delta", - "../../../../api/video:video_frame", -+ "../../../../modules/rtp_rtcp:rtp_rtcp_format", - "../../../../test:scoped_key_value_config", - "../../svc:scalability_mode_util", - "../../svc:scalability_structures", -diff --git a/modules/video_coding/codecs/av1/libaom_av1_encoder.cc b/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -index 3a8830252d..258d3d3b88 100644 ---- a/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -+++ b/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc -@@ -30,6 +30,7 @@ - #include "api/video_codecs/scalability_mode.h" - #include "api/video_codecs/video_codec.h" - #include "api/video_codecs/video_encoder.h" -+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" - #include "modules/video_coding/include/video_codec_interface.h" - #include "modules/video_coding/include/video_error_codes.h" - #include "modules/video_coding/svc/create_scalability_structure.h" -@@ -65,7 +66,6 @@ constexpr int kLowQindex = 145; // Low qindex threshold for QP scaling. - constexpr int kHighQindex = 205; // High qindex threshold for QP scaling. - constexpr int kBitDepth = 8; - constexpr int kLagInFrames = 0; // No look ahead. --constexpr int kRtpTicksPerSecond = 90000; - constexpr double kMinFrameRateFps = 1.0; - - aom_superblock_size_t GetSuperblockSize(int width, int height, int threads) { -@@ -133,7 +133,9 @@ class LibaomAv1Encoder final : public VideoEncoder { - double framerate_fps_; // Current target frame rate. - int64_t timestamp_; - const LibaomAv1EncoderInfoSettings encoder_info_override_; -- int max_consec_frame_drop_; -+ // TODO(webrtc:351644568): Remove this kill-switch after the feature is fully -+ // deployed. -+ bool adaptive_max_consec_drops_; - }; - - int32_t VerifyCodecSettings(const VideoCodec& codec_settings) { -@@ -164,12 +166,12 @@ int32_t VerifyCodecSettings(const VideoCodec& codec_settings) { - return WEBRTC_VIDEO_CODEC_OK; - } - --int GetMaxConsecutiveFrameDrop(const FieldTrialsView& field_trials) { -- webrtc::FieldTrialParameter maxdrop("maxdrop", 0); -- webrtc::ParseFieldTrial( -- {&maxdrop}, -- field_trials.Lookup("WebRTC-LibaomAv1Encoder-MaxConsecFrameDrop")); -- return maxdrop; -+int GetMaxConsecDrops(double framerate_fps) { -+ // Consecutive frame drops result in a video freeze. We want to minimize the -+ // max number of consecutive drops and, at the same time, keep the value high -+ // enough to let encoder drain the buffer at overshoot. -+ constexpr double kMaxFreezeSeconds = 0.25; -+ return std::ceil(kMaxFreezeSeconds * framerate_fps); - } - - LibaomAv1Encoder::LibaomAv1Encoder(const Environment& env, -@@ -182,7 +184,8 @@ LibaomAv1Encoder::LibaomAv1Encoder(const Environment& env, - framerate_fps_(0), - timestamp_(0), - encoder_info_override_(env.field_trials()), -- max_consec_frame_drop_(GetMaxConsecutiveFrameDrop(env.field_trials())) {} -+ adaptive_max_consec_drops_(!env.field_trials().IsDisabled( -+ "WebRTC-LibaomAv1Encoder-AdaptiveMaxConsecDrops")) {} - - LibaomAv1Encoder::~LibaomAv1Encoder() { - Release(); -@@ -242,7 +245,7 @@ int LibaomAv1Encoder::InitEncode(const VideoCodec* codec_settings, - cfg_.g_threads = - NumberOfThreads(cfg_.g_w, cfg_.g_h, settings.number_of_cores); - cfg_.g_timebase.num = 1; -- cfg_.g_timebase.den = kRtpTicksPerSecond; -+ cfg_.g_timebase.den = kVideoPayloadTypeFrequency; - cfg_.rc_target_bitrate = encoder_settings_.startBitrate; // kilobits/sec. - cfg_.rc_dropframe_thresh = encoder_settings_.GetFrameDropEnabled() ? 30 : 0; - cfg_.g_input_bit_depth = kBitDepth; -@@ -304,12 +307,6 @@ int LibaomAv1Encoder::InitEncode(const VideoCodec* codec_settings, - SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_ENABLE_PALETTE, 0); - } - -- if (codec_settings->mode == VideoCodecMode::kRealtimeVideo && -- encoder_settings_.GetFrameDropEnabled() && max_consec_frame_drop_ > 0) { -- SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR, -- max_consec_frame_drop_); -- } -- - if (cfg_.g_threads == 8) { - // Values passed to AV1E_SET_TILE_ROWS and AV1E_SET_TILE_COLUMNS are log2() - // based. -@@ -659,7 +656,7 @@ int32_t LibaomAv1Encoder::Encode( - return WEBRTC_VIDEO_CODEC_ENCODER_FAILURE; - } - -- const uint32_t duration = kRtpTicksPerSecond / framerate_fps_; -+ const uint32_t duration = kVideoPayloadTypeFrequency / framerate_fps_; - timestamp_ += duration; - - const size_t num_spatial_layers = -@@ -836,6 +833,17 @@ void LibaomAv1Encoder::SetRates(const RateControlParameters& parameters) { - SetEncoderControlParameters(AV1E_SET_SVC_PARAMS, &*svc_params_); - } - -+ if (adaptive_max_consec_drops_ && -+ (!rates_configured_ || framerate_fps_ != parameters.framerate_fps)) { -+ int max_consec_drops = GetMaxConsecDrops(parameters.framerate_fps); -+ if (!SetEncoderControlParameters(AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR, -+ max_consec_drops)) { -+ RTC_LOG(LS_WARNING) -+ << "Failed to set AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR to " -+ << max_consec_drops; -+ } -+ } -+ - framerate_fps_ = parameters.framerate_fps; - - rates_configured_ = true; -diff --git a/modules/video_coding/codecs/av1/libaom_av1_encoder_unittest.cc b/modules/video_coding/codecs/av1/libaom_av1_encoder_unittest.cc -index abb6fce0cf..a00b03aeda 100644 ---- a/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder_unittest.cc -+++ b/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder_unittest.cc -@@ -10,6 +10,7 @@ - - #include "modules/video_coding/codecs/av1/libaom_av1_encoder.h" - -+#include - #include - #include - #include -@@ -22,6 +23,7 @@ - #include "api/test/frame_generator_interface.h" - #include "api/video_codecs/video_codec.h" - #include "api/video_codecs/video_encoder.h" -+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" - #include "modules/video_coding/codecs/test/encoded_video_frame_producer.h" - #include "modules/video_coding/include/video_error_codes.h" - #include "test/gmock.h" -@@ -37,6 +39,7 @@ using ::testing::Eq; - using ::testing::Field; - using ::testing::IsEmpty; - using ::testing::SizeIs; -+using ::testing::Values; - - VideoCodec DefaultCodecSettings() { - VideoCodec codec_settings; -@@ -199,32 +202,54 @@ TEST(LibaomAv1EncoderTest, CheckOddDimensionsWithSpatialLayers) { - ASSERT_THAT(encoded_frames, SizeIs(6)); - } - --TEST(LibaomAv1EncoderTest, WithMaximumConsecutiveFrameDrop) { -- auto field_trials = std::make_unique( -- "WebRTC-LibaomAv1Encoder-MaxConsecFrameDrop/maxdrop:2/"); -- const Environment env = CreateEnvironment(std::move(field_trials)); -+class LibaomAv1EncoderMaxConsecDropTest -+ : public ::testing::TestWithParam {}; -+ -+TEST_P(LibaomAv1EncoderMaxConsecDropTest, MaxConsecDrops) { - VideoBitrateAllocation allocation; -- allocation.SetBitrate(0, 0, 1000); // some very low bitrate -- std::unique_ptr encoder = CreateLibaomAv1Encoder(env); -+ allocation.SetBitrate(0, 0, -+ 1000); // Very low bitrate to provoke frame drops. -+ std::unique_ptr encoder = -+ CreateLibaomAv1Encoder(CreateEnvironment()); - VideoCodec codec_settings = DefaultCodecSettings(); - codec_settings.SetFrameDropEnabled(true); - codec_settings.SetScalabilityMode(ScalabilityMode::kL1T1); - codec_settings.startBitrate = allocation.get_sum_kbps(); -+ codec_settings.maxFramerate = GetParam(); - ASSERT_EQ(encoder->InitEncode(&codec_settings, DefaultEncoderSettings()), - WEBRTC_VIDEO_CODEC_OK); - encoder->SetRates(VideoEncoder::RateControlParameters( - allocation, codec_settings.maxFramerate)); -- EncodedVideoFrameProducer evfp(*encoder); -- evfp.SetResolution( -- RenderResolution{codec_settings.width, codec_settings.height}); -- // We should code the first frame, skip two, then code another frame. - std::vector encoded_frames = -- evfp.SetNumInputFrames(4).Encode(); -- ASSERT_THAT(encoded_frames, SizeIs(2)); -- // The 4 frames have default Rtp-timestamps of 1000, 4000, 7000, 10000. -- ASSERT_THAT(encoded_frames[1].encoded_image.RtpTimestamp(), 10000); -+ EncodedVideoFrameProducer(*encoder) -+ .SetNumInputFrames(60) -+ .SetFramerateFps(codec_settings.maxFramerate) -+ .SetResolution(RenderResolution{320, 180}) -+ .Encode(); -+ ASSERT_GE(encoded_frames.size(), 2u); -+ -+ int max_consec_drops = 0; -+ for (size_t i = 1; i < encoded_frames.size(); ++i) { -+ uint32_t frame_duration_rtp = -+ encoded_frames[i].encoded_image.RtpTimestamp() - -+ encoded_frames[i - 1].encoded_image.RtpTimestamp(); -+ // X consecutive drops result in a freeze of (X + 1) frame duration. -+ // Subtract 1 to get pure number of drops. -+ int num_drops = frame_duration_rtp * codec_settings.maxFramerate / -+ kVideoPayloadTypeFrequency - -+ 1; -+ max_consec_drops = std::max(max_consec_drops, num_drops); -+ } -+ -+ const int expected_max_consec_drops = -+ std::ceil(0.25 * codec_settings.maxFramerate); -+ EXPECT_EQ(max_consec_drops, expected_max_consec_drops); - } - -+INSTANTIATE_TEST_SUITE_P(LibaomAv1EncoderMaxConsecDropTests, -+ LibaomAv1EncoderMaxConsecDropTest, -+ Values(1, 2, 5, 15, 30, 60)); -+ - TEST(LibaomAv1EncoderTest, EncoderInfoWithoutResolutionBitrateLimits) { - std::unique_ptr encoder = - CreateLibaomAv1Encoder(CreateEnvironment()); diff --git a/xml_document_parser-Wmissing-template-keyword.patch b/xml_document_parser-Wmissing-template-keyword.patch deleted file mode 100644 index de8ff39..0000000 --- a/xml_document_parser-Wmissing-template-keyword.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- src/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc.orig 2025-04-16 14:36:32.758721824 +0200 -+++ src/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc 2025-04-17 12:06:42.394992144 +0200 -@@ -1507,8 +1507,8 @@ static base::span Cop - base::span expanded_entity_chars) { - auto entity_buffer = - base::as_writable_chars(base::span(g_shared_xhtml_entity_result)); -- entity_buffer.first().copy_from(expanded_entity_chars); -- return entity_buffer.first(); -+ entity_buffer.template first().copy_from(expanded_entity_chars); -+ return entity_buffer.template first(); - } - - static base::span ConvertUTF16EntityToUTF8( diff --git a/xr_webgl_swap_chain-incomplete-StaticBitmapImage.patch b/xr_webgl_swap_chain-incomplete-StaticBitmapImage.patch new file mode 100644 index 0000000..8a6518e --- /dev/null +++ b/xr_webgl_swap_chain-incomplete-StaticBitmapImage.patch @@ -0,0 +1,10 @@ +--- src/third_party/blink/renderer/modules/xr/xr_webgl_swap_chain.h.orig 2025-08-15 17:32:29.469405073 +0200 ++++ src/third_party/blink/renderer/modules/xr/xr_webgl_swap_chain.h 2025-08-16 00:08:44.433036412 +0200 +@@ -8,6 +8,7 @@ + #include "third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h" + #include "third_party/blink/renderer/modules/webgl/webgl_unowned_texture.h" + #include "third_party/blink/renderer/modules/xr/xr_swap_chain.h" ++#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h" + #include "third_party/blink/renderer/platform/heap/garbage_collected.h" + #include "third_party/blink/renderer/platform/heap/member.h" +