From d85024bea2dd103945f4e59fd21e121b9a96eefa Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Wed, 8 Mar 2023 00:42:05 +0000 Subject: [PATCH] extra/chromium to 111.0.5563.64-1 --- .../0001-widevine-support-for-arm.patch | 2 +- ...-bindings-generation-single-threaded.patch | 2 +- ...003-Fix-eu-strip-build-for-newer-GCC.patch | 2 +- extra/chromium/PKGBUILD | 31 +-- ...y-to-handle-codecs-in-the-system-icu.patch | 60 ----- ...-constraints-on-VirtualCursor-layout.patch | 48 ++++ ...the-Stack-object-from-ThreadLocalTop.patch | 205 ------------------ 7 files changed, 61 insertions(+), 289 deletions(-) delete mode 100644 extra/chromium/fix-the-way-to-handle-codecs-in-the-system-icu.patch create mode 100644 extra/chromium/sql-relax-constraints-on-VirtualCursor-layout.patch delete mode 100644 extra/chromium/v8-move-the-Stack-object-from-ThreadLocalTop.patch diff --git a/extra/chromium/0001-widevine-support-for-arm.patch b/extra/chromium/0001-widevine-support-for-arm.patch index ef54a4323..0afc59ac3 100644 --- a/extra/chromium/0001-widevine-support-for-arm.patch +++ b/extra/chromium/0001-widevine-support-for-arm.patch @@ -1,4 +1,4 @@ -From 91ee825b0dcc82e6016ffc6f95e3e0dd1070ef93 Mon Sep 17 00:00:00 2001 +From b412032d8f94674c59056d69087f28ad7e597a22 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Thu, 18 Feb 2021 19:35:58 -0700 Subject: [PATCH 1/3] widevine support for arm diff --git a/extra/chromium/0002-Run-blink-bindings-generation-single-threaded.patch b/extra/chromium/0002-Run-blink-bindings-generation-single-threaded.patch index 5775bc667..c178b752c 100644 --- a/extra/chromium/0002-Run-blink-bindings-generation-single-threaded.patch +++ b/extra/chromium/0002-Run-blink-bindings-generation-single-threaded.patch @@ -1,4 +1,4 @@ -From d0e2fc333522b11f7a0a24c60f8e0d8e0e8b5bba Mon Sep 17 00:00:00 2001 +From 2f0db65730ea473ca9d0797c912d713a1240e1d8 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Tue, 2 Feb 2021 13:58:59 -0700 Subject: [PATCH 2/3] Run blink bindings generation single threaded diff --git a/extra/chromium/0003-Fix-eu-strip-build-for-newer-GCC.patch b/extra/chromium/0003-Fix-eu-strip-build-for-newer-GCC.patch index 2cb38687c..af9a6ffb2 100644 --- a/extra/chromium/0003-Fix-eu-strip-build-for-newer-GCC.patch +++ b/extra/chromium/0003-Fix-eu-strip-build-for-newer-GCC.patch @@ -1,4 +1,4 @@ -From 53b59f457af1196c30d72114b13e933bd64278dd Mon Sep 17 00:00:00 2001 +From fcadf57766b1d75ef9e0ed0a6e255ebd9c097dc6 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Wed, 21 Jul 2021 21:37:31 -0600 Subject: [PATCH 3/3] Fix eu-strip build for newer GCC diff --git a/extra/chromium/PKGBUILD b/extra/chromium/PKGBUILD index c86c4430d..45cd4d8bd 100644 --- a/extra/chromium/PKGBUILD +++ b/extra/chromium/PKGBUILD @@ -15,10 +15,10 @@ highmem=1 pkgname=chromium -pkgver=110.0.5481.177 +pkgver=111.0.5563.64 pkgrel=1 _launcher_ver=8 -_gcc_patchset=4 +_gcc_patchset=2 _manual_clone=0 pkgdesc="A web browser built for speed, simplicity, and security" arch=('x86_64') @@ -38,8 +38,7 @@ options=('!lto') # Chromium adds its own flags for ThinLTO source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz - fix-the-way-to-handle-codecs-in-the-system-icu.patch - v8-move-the-Stack-object-from-ThreadLocalTop.patch + sql-relax-constraints-on-VirtualCursor-layout.patch REVERT-roll-src-third_party-ffmpeg-m102.patch REVERT-roll-src-third_party-ffmpeg-m106.patch disable-GlobalMediaControlsCastStartStop.patch @@ -47,18 +46,17 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom 0001-widevine-support-for-arm.patch 0002-Run-blink-bindings-generation-single-threaded.patch 0003-Fix-eu-strip-build-for-newer-GCC.patch) -sha256sums=('7b2f454d1195270a39f94a9ff6d8d68126be315e0da4e31c20f4ba9183a1c9b7' +sha256sums=('7d5ca0e2bdb22a97713e6bfce74c651006d71aa883056c8e2c2a148039fe4074' '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' - '8c7f93037cc236024cc8be815b2c2bd84f6dc9e32685299e31d4c6c42efde8b7' - 'a5d5c532b0b059895bc13aaaa600d21770eab2afa726421b78cb597a78a3c7e3' - '49c3e599366909ddac6a50fa6f9420e01a7c0ffd029a20567a41d741a15ec9f7' + 'a016588340f1559198e4ce61c6e91c48cf863600f415cb5c46322de7e1f77909' + 'e66be069d932fe18811e789c57b96249b7250257ff91a3d82d15e2a7283891b7' '30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44' '4c12d31d020799d31355faa7d1fe2a5a807f7458e7f0c374adf55edb37032152' '7f3b1b22d6a271431c1f9fc92b6eb49c6d80b8b3f868bdee07a6a1a16630a302' 'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711' - '96c3431d475b5ee628cf406b5c28c53d5d5ebbc405e35ff91ffb6829a79b184c' - 'e364f67a3f1ec1dbc24f5815648bbcec27195a69302fb6fd3ce5d6d8a3d2c16c' - 'bd82ac3909b9f8fe86375ad7751e905db06f1272f3eddbc80ab78e10c6bd10ac') + '12cf566d11e2388fc2b1d629ac71aa2fd80d2dd133001d6612a1e325aea6bbb8' + 'a832a0cafb5ca2c5aa6dbf55c05f3aae2680cbf5418e5816cab5498ed9e3ae30' + 'c5377b9bb75b9de90893042825239545d8d871ee8699d81e9ec95fdff62b4bf1') if (( _manual_clone )); then source[0]=fetch-chromium-release @@ -142,12 +140,7 @@ prepare() { patch -Np1 -i ../use-oauth2-client-switches-as-default.patch # Upstream fixes - patch -Np1 -i ../fix-the-way-to-handle-codecs-in-the-system-icu.patch - - # https://crbug.com/v8/13630 - # https://crrev.com/c/4200636 - # https://github.com/nodejs/node/pull/46125#issuecomment-1407721276 - patch -Np1 -d v8 <../v8-move-the-Stack-object-from-ThreadLocalTop.patch + patch -Np1 -i ../sql-relax-constraints-on-VirtualCursor-layout.patch # Revert ffmpeg roll requiring new channel layout API support # https://crbug.com/1325301 @@ -160,10 +153,6 @@ prepare() { patch -Np1 -i ../disable-GlobalMediaControlsCastStartStop.patch # Fixes for building with libstdc++ instead of libc++ - patch -Np1 -i ../patches/chromium-103-VirtualCursor-std-layout.patch - patch -Np1 -i ../patches/chromium-110-NativeThemeBase-fabs.patch - patch -Np1 -i ../patches/chromium-110-CredentialUIEntry-const.patch - patch -Np1 -i ../patches/chromium-110-DarkModeLABColorSpace-pow.patch # Link to system tools required by the build mkdir -p third_party/node/linux/node-linux-x64/bin diff --git a/extra/chromium/fix-the-way-to-handle-codecs-in-the-system-icu.patch b/extra/chromium/fix-the-way-to-handle-codecs-in-the-system-icu.patch deleted file mode 100644 index 63c4cee93..000000000 --- a/extra/chromium/fix-the-way-to-handle-codecs-in-the-system-icu.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 4885090741554be61cb2ed10194cefb29bf8be64 Mon Sep 17 00:00:00 2001 -From: Yoshisato Yanagisawa -Date: Wed, 11 Jan 2023 23:51:39 +0000 -Subject: [PATCH] Fix the way to handle codecs in the system icu. - -The previous code does not register codecs whose standard name is -different from the bundled ICU. As a result, looking up such codecs -seems to fail unexpectedly. - -Bug: 1382032 -Change-Id: I8a61f77d0f70104415d24dd954b3b7061ffca556 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4154277 -Reviewed-by: Kent Tamura -Commit-Queue: Yoshisato Yanagisawa -Cr-Commit-Position: refs/heads/main@{#1091571} ---- - .../renderer/platform/wtf/text/text_codec_icu.cc | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) - -diff --git a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -index a70b359984f..33ce43f3563 100644 ---- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -+++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -@@ -116,6 +116,10 @@ void TextCodecICU::RegisterEncodingNames(EncodingNameRegistrar registrar) { - continue; - } - #endif -+ // Avoid codecs supported by `TextCodecCJK`. -+ if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) { -+ continue; -+ } - - // A number of these aliases are handled in Chrome's copy of ICU, but - // Chromium can be compiled with the system ICU. -@@ -144,12 +148,13 @@ void TextCodecICU::RegisterEncodingNames(EncodingNameRegistrar registrar) { - } - #endif - -- if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) { -- continue; -+ // Avoid registering codecs registered by -+ // `TextCodecCJK::RegisterEncodingNames`. -+ if (!is_text_codec_cjk_enabled || -+ !TextCodecCJK::IsSupported(standard_name)) { -+ registrar(standard_name, standard_name); - } - -- registrar(standard_name, standard_name); -- - uint16_t num_aliases = ucnv_countAliases(name, &error); - DCHECK(U_SUCCESS(error)); - if (U_SUCCESS(error)) -@@ -289,6 +294,7 @@ void TextCodecICU::RegisterCodecs(TextCodecRegistrar registrar) { - continue; - } - #endif -+ // Avoid codecs supported by `TextCodecCJK`. - if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) { - continue; - } diff --git a/extra/chromium/sql-relax-constraints-on-VirtualCursor-layout.patch b/extra/chromium/sql-relax-constraints-on-VirtualCursor-layout.patch new file mode 100644 index 000000000..d1e65ee15 --- /dev/null +++ b/extra/chromium/sql-relax-constraints-on-VirtualCursor-layout.patch @@ -0,0 +1,48 @@ +From 7d1394bd639e3bcf68082ac3fc33eeed6a00d2e6 Mon Sep 17 00:00:00 2001 +From: Elly Fong-Jones +Date: Thu, 2 Mar 2023 00:15:11 +0000 +Subject: [PATCH] sql: relax constraints on VirtualCursor layout + +VirtualCursor::FromSqliteCursor required that VirtualCursor had a +standard layout, but in fact VirtualCursor shouldn't have a standard +layout, and the fact that it does with libc++ is a deviation from the +C++ standard. This change: + +1. Relaxes the requirement that VirtualCursor has a standard layout, and +2. Relaxes the requirement that the sqlite_cursor_ field has to be at + offset 0 + +by use of offsetof() and pointer subtraction. This change both improves +standards compliance and makes this code build with libstdc++. + +Bug: 1380656 +Change-Id: I9c47abd9197b187da0360ca5619ccf7dadab4f33 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4292313 +Reviewed-by: Austin Sullivan +Commit-Queue: Elly Fong-Jones +Cr-Commit-Position: refs/heads/main@{#1111925} +--- + sql/recover_module/cursor.h | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h +index 1970bdca8c6..4cb06557009 100644 +--- a/sql/recover_module/cursor.h ++++ b/sql/recover_module/cursor.h +@@ -63,12 +63,10 @@ class VirtualCursor { + // |sqlite_cursor| must have been returned by VirtualTable::SqliteCursor(). + static inline VirtualCursor* FromSqliteCursor( + sqlite3_vtab_cursor* sqlite_cursor) { +- static_assert(std::is_standard_layout::value, +- "needed for the reinterpret_cast below"); +- static_assert(offsetof(VirtualCursor, sqlite_cursor_) == 0, +- "sqlite_cursor_ must be the first member of the class"); +- VirtualCursor* result = reinterpret_cast(sqlite_cursor); +- DCHECK_EQ(sqlite_cursor, &result->sqlite_cursor_); ++ VirtualCursor* result = reinterpret_cast( ++ (reinterpret_cast(sqlite_cursor) - ++ offsetof(VirtualCursor, sqlite_cursor_))); ++ CHECK_EQ(sqlite_cursor, &result->sqlite_cursor_); + return result; + } + diff --git a/extra/chromium/v8-move-the-Stack-object-from-ThreadLocalTop.patch b/extra/chromium/v8-move-the-Stack-object-from-ThreadLocalTop.patch deleted file mode 100644 index a06044834..000000000 --- a/extra/chromium/v8-move-the-Stack-object-from-ThreadLocalTop.patch +++ /dev/null @@ -1,205 +0,0 @@ -From 7b6fbcd0a6700db498ad55db046ecda92c8ee8c1 Mon Sep 17 00:00:00 2001 -From: Nikolaos Papaspyrou -Date: Sun, 29 Jan 2023 17:18:08 +0100 -Subject: [PATCH] Merge: [heap] Move the Stack object from ThreadLocalTop to - Isolate - -This is just for nodejs, do not backmerge to 11.0. -(cherry picked from commit 1e4b71d99fea5ea6bb4bf6420585a7819872bb0f) - -> Change-Id: I026a35af3bc6999a09b21f277756d4454c086343 -> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4152476 -> Reviewed-by: Michael Lippautz -> Reviewed-by: Omer Katz -> Commit-Queue: Nikolaos Papaspyrou -> Cr-Commit-Position: refs/heads/main@{#85445} - -Stack information is thread-specific and, until now, it was stored in a -field in ThreadLocalTop. This CL moves stack information to the isolate -and makes sure to update the stack start whenever a main thread enters -the isolate. At the same time, the Stack object is refactored and -simplified. - -As a side effect, after removing the Stack object, ThreadLocalTop -satisfies the std::standard_layout trait; this fixes some issues -observed with different C++ compilers. - -Bug: v8:13630 -Bug: v8:13257 -Change-Id: I4be1f04fe90699e1a6e456dad3e0dd623851acce ---- - src/execution/isolate.cc | 36 +++++++++++++++---------------- - src/execution/isolate.h | 6 ++++++ - src/execution/thread-local-top.cc | 2 -- - src/execution/thread-local-top.h | 6 +----- - src/heap/heap.cc | 4 +--- - 5 files changed, 25 insertions(+), 29 deletions(-) - -diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc -index 4edf364e0a..be4fd400d2 100644 ---- a/src/execution/isolate.cc -+++ b/src/execution/isolate.cc -@@ -3074,22 +3074,23 @@ void Isolate::AddSharedWasmMemory(Handle memory_object) { - void Isolate::RecordStackSwitchForScanning() { - Object current = root(RootIndex::kActiveContinuation); - DCHECK(!current.IsUndefined()); -- thread_local_top()->stack_.ClearStackSegments(); -- wasm::StackMemory* stack = Managed::cast( -- WasmContinuationObject::cast(current).stack()) -- .get() -- .get(); -+ stack().ClearStackSegments(); -+ wasm::StackMemory* wasm_stack = -+ Managed::cast( -+ WasmContinuationObject::cast(current).stack()) -+ .get() -+ .get(); - current = WasmContinuationObject::cast(current).parent(); -- thread_local_top()->stack_.SetStackStart( -- reinterpret_cast(stack->base())); -+ heap()->SetStackStart(reinterpret_cast(wasm_stack->base())); - // We don't need to add all inactive stacks. Only the ones in the active chain - // may contain cpp heap pointers. - while (!current.IsUndefined()) { - auto cont = WasmContinuationObject::cast(current); -- auto* stack = Managed::cast(cont.stack()).get().get(); -- thread_local_top()->stack_.AddStackSegment( -- reinterpret_cast(stack->base()), -- reinterpret_cast(stack->jmpbuf()->sp)); -+ auto* wasm_stack = -+ Managed::cast(cont.stack()).get().get(); -+ stack().AddStackSegment( -+ reinterpret_cast(wasm_stack->base()), -+ reinterpret_cast(wasm_stack->jmpbuf()->sp)); - current = cont.parent(); - } - } -@@ -3377,20 +3378,13 @@ void Isolate::Delete(Isolate* isolate) { - Isolate* saved_isolate = isolate->TryGetCurrent(); - SetIsolateThreadLocals(isolate, nullptr); - isolate->set_thread_id(ThreadId::Current()); -- isolate->thread_local_top()->stack_ = -- saved_isolate ? std::move(saved_isolate->thread_local_top()->stack_) -- : ::heap::base::Stack(base::Stack::GetStackStart()); -+ isolate->heap()->SetStackStart(base::Stack::GetStackStart()); - - bool owns_shared_isolate = isolate->owns_shared_isolate_; - Isolate* maybe_shared_isolate = isolate->shared_isolate_; - - isolate->Deinit(); - -- // Restore the saved isolate's stack. -- if (saved_isolate) -- saved_isolate->thread_local_top()->stack_ = -- std::move(isolate->thread_local_top()->stack_); -- - #ifdef DEBUG - non_disposed_isolates_--; - #endif // DEBUG -@@ -4647,6 +4641,10 @@ bool Isolate::Init(SnapshotData* startup_snapshot_data, - void Isolate::Enter() { - Isolate* current_isolate = nullptr; - PerIsolateThreadData* current_data = CurrentPerIsolateThreadData(); -+ -+ // Set the stack start for the main thread that enters the isolate. -+ heap()->SetStackStart(base::Stack::GetStackStart()); -+ - if (current_data != nullptr) { - current_isolate = current_data->isolate_; - DCHECK_NOT_NULL(current_isolate); -diff --git a/src/execution/isolate.h b/src/execution/isolate.h -index a32f999fe5..1cb6e10661 100644 ---- a/src/execution/isolate.h -+++ b/src/execution/isolate.h -@@ -32,6 +32,7 @@ - #include "src/execution/stack-guard.h" - #include "src/handles/handles.h" - #include "src/handles/traced-handles.h" -+#include "src/heap/base/stack.h" - #include "src/heap/factory.h" - #include "src/heap/heap.h" - #include "src/heap/read-only-heap.h" -@@ -2022,6 +2023,8 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory { - SimulatorData* simulator_data() { return simulator_data_; } - #endif - -+ ::heap::base::Stack& stack() { return stack_; } -+ - #ifdef V8_ENABLE_WEBASSEMBLY - wasm::StackMemory*& wasm_stacks() { return wasm_stacks_; } - // Update the thread local's Stack object so that it is aware of the new stack -@@ -2520,6 +2523,9 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory { - // The mutex only guards adding pages, the retrieval is signal safe. - base::Mutex code_pages_mutex_; - -+ // Stack information for the main thread. -+ ::heap::base::Stack stack_; -+ - #ifdef V8_ENABLE_WEBASSEMBLY - wasm::StackMemory* wasm_stacks_; - #endif -diff --git a/src/execution/thread-local-top.cc b/src/execution/thread-local-top.cc -index 0d7071ddda..05cc20b8e4 100644 ---- a/src/execution/thread-local-top.cc -+++ b/src/execution/thread-local-top.cc -@@ -37,14 +37,12 @@ void ThreadLocalTop::Clear() { - current_embedder_state_ = nullptr; - failed_access_check_callback_ = nullptr; - thread_in_wasm_flag_address_ = kNullAddress; -- stack_ = ::heap::base::Stack(); - } - - void ThreadLocalTop::Initialize(Isolate* isolate) { - Clear(); - isolate_ = isolate; - thread_id_ = ThreadId::Current(); -- stack_.SetStackStart(base::Stack::GetStackStart()); - #if V8_ENABLE_WEBASSEMBLY - thread_in_wasm_flag_address_ = reinterpret_cast
( - trap_handler::GetThreadInWasmThreadLocalAddress()); -diff --git a/src/execution/thread-local-top.h b/src/execution/thread-local-top.h -index 43fec0a7df..989c817f31 100644 ---- a/src/execution/thread-local-top.h -+++ b/src/execution/thread-local-top.h -@@ -10,7 +10,6 @@ - #include "include/v8-unwinder.h" - #include "src/common/globals.h" - #include "src/execution/thread-id.h" --#include "src/heap/base/stack.h" - #include "src/objects/contexts.h" - #include "src/utils/utils.h" - -@@ -30,7 +29,7 @@ class ThreadLocalTop { - // TODO(all): This is not particularly beautiful. We should probably - // refactor this to really consist of just Addresses and 32-bit - // integer fields. -- static constexpr uint32_t kSizeInBytes = 30 * kSystemPointerSize; -+ static constexpr uint32_t kSizeInBytes = 25 * kSystemPointerSize; - - // Does early low-level initialization that does not depend on the - // isolate being present. -@@ -147,9 +146,6 @@ class ThreadLocalTop { - - // Address of the thread-local "thread in wasm" flag. - Address thread_in_wasm_flag_address_; -- -- // Stack information. -- ::heap::base::Stack stack_; - }; - - } // namespace internal -diff --git a/src/heap/heap.cc b/src/heap/heap.cc -index 51a90ddcab..b5722ab6ec 100644 ---- a/src/heap/heap.cc -+++ b/src/heap/heap.cc -@@ -5851,9 +5851,7 @@ void Heap::SetStackStart(void* stack_start) { - stack().SetStackStart(stack_start); - } - --::heap::base::Stack& Heap::stack() { -- return isolate_->thread_local_top()->stack_; --} -+::heap::base::Stack& Heap::stack() { return isolate_->stack(); } - - void Heap::RegisterExternallyReferencedObject(Address* location) { - Object object = TracedHandles::Mark(location, TracedHandles::MarkMode::kAll);