extra/chromium to 110.0.5481.77-1

This commit is contained in:
Kevin Mihelich 2023-02-08 01:52:08 +00:00
parent 623ec24c6e
commit 14e84d9599
7 changed files with 233 additions and 123 deletions

View file

@ -1,4 +1,4 @@
From c73efdeae5bd140073b8bb7f92a73e8993985160 Mon Sep 17 00:00:00 2001
From 91ee825b0dcc82e6016ffc6f95e3e0dd1070ef93 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Thu, 18 Feb 2021 19:35:58 -0700
Subject: [PATCH 1/3] widevine support for arm
@ -8,7 +8,7 @@ Subject: [PATCH 1/3] widevine support for arm
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third_party/widevine/cdm/widevine.gni b/third_party/widevine/cdm/widevine.gni
index a0241bca3251c..c86ac17ed5d81 100644
index 45e984205885f..3cf8c290728fd 100644
--- a/third_party/widevine/cdm/widevine.gni
+++ b/third_party/widevine/cdm/widevine.gni
@@ -26,7 +26,7 @@ if (is_chromeos && !is_chromeos_device) {
@ -21,5 +21,5 @@ index a0241bca3251c..c86ac17ed5d81 100644
(target_os == "win" &&
(target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64"))
--
2.37.3
2.39.1

View file

@ -1,4 +1,4 @@
From 7d726d07b38e3f1e07f19e0eda575a3c64f82a41 Mon Sep 17 00:00:00 2001
From d0e2fc333522b11f7a0a24c60f8e0d8e0e8b5bba Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Tue, 2 Feb 2021 13:58:59 -0700
Subject: [PATCH 2/3] Run blink bindings generation single threaded
@ -9,7 +9,7 @@ When not single threaded this process will eat all the RAM.
1 file changed, 1 insertion(+)
diff --git a/third_party/blink/renderer/bindings/BUILD.gn b/third_party/blink/renderer/bindings/BUILD.gn
index 1288dfbf63614..613d299f85038 100644
index 488b2ddf8462d..4d3b9f7f54373 100644
--- a/third_party/blink/renderer/bindings/BUILD.gn
+++ b/third_party/blink/renderer/bindings/BUILD.gn
@@ -148,6 +148,7 @@ template("generate_bindings") {
@ -21,5 +21,5 @@ index 1288dfbf63614..613d299f85038 100644
rebase_path(web_idl_database, root_build_dir),
"--root_src_dir",
--
2.37.3
2.39.1

View file

@ -1,4 +1,4 @@
From e8804544a4b9ec764b1da9d6d39e1906f21cce11 Mon Sep 17 00:00:00 2001
From 53b59f457af1196c30d72114b13e933bd64278dd Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Wed, 21 Jul 2021 21:37:31 -0600
Subject: [PATCH 3/3] Fix eu-strip build for newer GCC
@ -693,5 +693,5 @@ index 86f2b67f6bbd1..c073e9a15827a 100755
cd build
../configure --enable-maintainer-mode
--
2.37.3
2.39.1

View file

@ -15,17 +15,17 @@
highmem=1
pkgname=chromium
pkgver=109.0.5414.119
pkgver=110.0.5481.77
pkgrel=1
_launcher_ver=8
_gcc_patchset=1
_gcc_patchset=4
pkgdesc="A web browser built for speed, simplicity, and security"
arch=('x86_64')
url="https://www.chromium.org/Home"
license=('BSD')
depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'libva'
'wayland' 'desktop-file-utils' 'hicolor-icon-theme')
'libffi' 'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python' 'gn' 'ninja' 'clang' 'lld' 'gperf' 'nodejs' 'pipewire'
'qt5-base' 'java-runtime-headless' 'git')
optdepends=('pipewire: WebRTC desktop sharing under Wayland'
@ -37,29 +37,27 @@ 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
v8-enhance-Date-parser-to-take-Unicode-SPACE.patch
fix-the-way-to-handle-codecs-in-the-system-icu.patch
v8-move-the-Stack-object-from-ThreadLocalTop.patch
REVERT-roll-src-third_party-ffmpeg-m102.patch
REVERT-roll-src-third_party-ffmpeg-m106.patch
disable-GlobalMediaControlsCastStartStop.patch
angle-wayland-include-protocol.patch
use-oauth2-client-switches-as-default.patch
0001-widevine-support-for-arm.patch
0002-Run-blink-bindings-generation-single-threaded.patch
0003-Fix-eu-strip-build-for-newer-GCC.patch)
sha256sums=('cbcdef5ee71acb53790ded3adef86871812b46e9f208dce8ec3f8ab04958be2d'
sha256sums=('e348ab2dc4311083e729d714a81e95dd9db108ff71437dde451c97ac939881ce'
'213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a'
'1ca780a2ad5351f60671a828064392096c8da7b589086ee999f25c9e6e799a7b'
'b83406a881d66627757d9cbc05e345cbb2bd395a48b6d4c970e5e1cb3f6ed454'
'8c7f93037cc236024cc8be815b2c2bd84f6dc9e32685299e31d4c6c42efde8b7'
'a5d5c532b0b059895bc13aaaa600d21770eab2afa726421b78cb597a78a3c7e3'
'49c3e599366909ddac6a50fa6f9420e01a7c0ffd029a20567a41d741a15ec9f7'
'30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44'
'4c12d31d020799d31355faa7d1fe2a5a807f7458e7f0c374adf55edb37032152'
'7f3b1b22d6a271431c1f9fc92b6eb49c6d80b8b3f868bdee07a6a1a16630a302'
'cd0d9d2a1d6a522d47c3c0891dabe4ad72eabbebc0fe5642b9e22efa3d5ee572'
'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711'
'e1162f40e736043ea88e9f5960232476130d3067c1663cf4b147c803abc8b94f'
'306ea7ae2971d7cc3e9eaec70f7afd34330ff75d7fab414de1f241c61ae9c652'
'4b2392f3bbcdb7ea6d6f13b53dfba12e2b436b036168dbeb59ff3e5a52145c3c')
'96c3431d475b5ee628cf406b5c28c53d5d5ebbc405e35ff91ffb6829a79b184c'
'e364f67a3f1ec1dbc24f5815648bbcec27195a69302fb6fd3ce5d6d8a3d2c16c'
'bd82ac3909b9f8fe86375ad7751e905db06f1272f3eddbc80ab78e10c6bd10ac')
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
# Keys are the names in the above script; values are the dependencies in Arch
@ -74,7 +72,7 @@ declare -gA _system_libs=(
[icu]=icu
[jsoncpp]=jsoncpp
[libaom]=aom
[libavif]=libavif # needs https://github.com/AOMediaCodec/libavif/commit/d22d4de94120
#[libavif]=libavif # https://github.com/AOMediaCodec/libavif/commit/4d2776a3
[libdrm]=
[libjpeg]=libjpeg
[libpng]=libpng
@ -135,9 +133,13 @@ prepare() {
patch -Np1 -i ../use-oauth2-client-switches-as-default.patch
# Upstream fixes
patch -Np1 -d v8 <../v8-enhance-Date-parser-to-take-Unicode-SPACE.patch
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
# Revert ffmpeg roll requiring new channel layout API support
# https://crbug.com/1325301
patch -Rp1 -i ../REVERT-roll-src-third_party-ffmpeg-m102.patch
@ -148,11 +150,11 @@ prepare() {
# https://crbug.com/1314342
patch -Np1 -i ../disable-GlobalMediaControlsCastStartStop.patch
# https://crbug.com/angleproject/7582
patch -Np0 -i ../angle-wayland-include-protocol.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
@ -213,8 +215,7 @@ build() {
'use_gnome_keyring=false'
'use_gold=false'
'use_sysroot=false'
'use_system_libwayland=true'
'use_system_wayland_scanner=true'
'use_system_libffi=true'
'enable_hangout_services_extension=true'
'enable_widevine=true'
'enable_nacl=false'

View file

@ -1,38 +0,0 @@
diff -upr third_party/angle.orig/BUILD.gn third_party/angle/BUILD.gn
--- third_party/angle.orig/BUILD.gn 2022-08-17 19:38:11.000000000 +0000
+++ third_party/angle/BUILD.gn 2022-08-18 11:04:09.061751111 +0000
@@ -489,6 +489,12 @@ config("angle_vulkan_wayland_config") {
if (angle_enable_vulkan && angle_use_wayland &&
defined(vulkan_wayland_include_dirs)) {
include_dirs = vulkan_wayland_include_dirs
+ } else if (angle_enable_vulkan && angle_use_wayland) {
+ include_dirs = [
+ "$wayland_gn_dir/src/src",
+ "$wayland_gn_dir/include/src",
+ "$wayland_gn_dir/include/protocol",
+ ]
}
}
@@ -1073,6 +1079,7 @@ if (angle_use_wayland) {
include_dirs = [
"$wayland_dir/egl",
"$wayland_dir/src",
+ "$wayland_gn_dir/include/protocol",
]
}
diff -upr third_party/angle.orig/src/third_party/volk/BUILD.gn third_party/angle/src/third_party/volk/BUILD.gn
--- third_party/angle.orig/src/third_party/volk/BUILD.gn 2022-08-17 19:38:12.000000000 +0000
+++ third_party/angle/src/third_party/volk/BUILD.gn 2022-08-18 11:04:36.499828006 +0000
@@ -21,6 +21,9 @@ source_set("volk") {
configs += [ "$angle_root:angle_no_cfi_icall" ]
public_deps = [ "$angle_vulkan_headers_dir:vulkan_headers" ]
if (angle_use_wayland) {
- include_dirs = [ "$wayland_dir/src" ]
+ include_dirs = [
+ "$wayland_dir/src",
+ "$wayland_gn_dir/include/protocol",
+ ]
}
}

View file

@ -1,58 +0,0 @@
From 81dd64c3705f89653859a5d0001dd0ca983a92e2 Mon Sep 17 00:00:00 2001
From: Frank Tang <ftang@chromium.org>
Date: Wed, 16 Nov 2022 09:18:45 -0800
Subject: [PATCH] [intl] Enhance Date parser to take Unicode SPACE
This is needed to prepare for the landing of ICU72.
Allow U+202F in the Date String, which the toLocaleString("en-US")
will generate w/ ICU72.
Bug: v8:13494
Change-Id: I41b83c4094ce3d0737a72dcd6310b52c68fdcdca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4027341
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84308}
(cherry picked from commit 2ada52cffbff11074abfaac18938bf02d85454f5)
---
src/date/dateparser-inl.h | 2 +-
src/date/dateparser.h | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/date/dateparser-inl.h b/src/date/dateparser-inl.h
index 623986d2b1..b45479dc51 100644
--- a/src/date/dateparser-inl.h
+++ b/src/date/dateparser-inl.h
@@ -192,7 +192,7 @@ DateParser::DateToken DateParser::DateStringTokenizer<CharType>::Scan() {
if (in_->Skip('+')) return DateToken::Symbol('+');
if (in_->Skip('.')) return DateToken::Symbol('.');
if (in_->Skip(')')) return DateToken::Symbol(')');
- if (in_->IsAsciiAlphaOrAbove()) {
+ if (in_->IsAsciiAlphaOrAbove() && !in_->IsWhiteSpaceChar()) {
DCHECK_EQ(KeywordTable::kPrefixLength, 3);
uint32_t buffer[3] = {0, 0, 0};
int length = in_->ReadWord(buffer, 3);
diff --git a/src/date/dateparser.h b/src/date/dateparser.h
index 1a0a0b15ab..59b2f3c9fd 100644
--- a/src/date/dateparser.h
+++ b/src/date/dateparser.h
@@ -91,7 +91,8 @@ class DateParser : public AllStatic {
// Return word length.
int ReadWord(uint32_t* prefix, int prefix_size) {
int len;
- for (len = 0; IsAsciiAlphaOrAbove(); Next(), len++) {
+ for (len = 0; IsAsciiAlphaOrAbove() && !IsWhiteSpaceChar();
+ Next(), len++) {
if (len < prefix_size) prefix[len] = AsciiAlphaToLower(ch_);
}
for (int i = len; i < prefix_size; i++) prefix[i] = 0;
@@ -115,6 +116,7 @@ class DateParser : public AllStatic {
bool IsEnd() const { return ch_ == 0; }
bool IsAsciiDigit() const { return IsDecimalDigit(ch_); }
bool IsAsciiAlphaOrAbove() const { return ch_ >= 'A'; }
+ bool IsWhiteSpaceChar() const { return IsWhiteSpace(ch_); }
bool IsAsciiSign() const { return ch_ == '+' || ch_ == '-'; }
// Return 1 for '+' and -1 for '-'.

View file

@ -0,0 +1,205 @@
From 7b6fbcd0a6700db498ad55db046ecda92c8ee8c1 Mon Sep 17 00:00:00 2001
From: Nikolaos Papaspyrou <nikolaos@chromium.org>
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 <mlippautz@chromium.org>
> Reviewed-by: Omer Katz <omerkatz@chromium.org>
> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
> 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<WasmMemoryObject> memory_object) {
void Isolate::RecordStackSwitchForScanning() {
Object current = root(RootIndex::kActiveContinuation);
DCHECK(!current.IsUndefined());
- thread_local_top()->stack_.ClearStackSegments();
- wasm::StackMemory* stack = Managed<wasm::StackMemory>::cast(
- WasmContinuationObject::cast(current).stack())
- .get()
- .get();
+ stack().ClearStackSegments();
+ wasm::StackMemory* wasm_stack =
+ Managed<wasm::StackMemory>::cast(
+ WasmContinuationObject::cast(current).stack())
+ .get()
+ .get();
current = WasmContinuationObject::cast(current).parent();
- thread_local_top()->stack_.SetStackStart(
- reinterpret_cast<void*>(stack->base()));
+ heap()->SetStackStart(reinterpret_cast<void*>(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<wasm::StackMemory>::cast(cont.stack()).get().get();
- thread_local_top()->stack_.AddStackSegment(
- reinterpret_cast<const void*>(stack->base()),
- reinterpret_cast<const void*>(stack->jmpbuf()->sp));
+ auto* wasm_stack =
+ Managed<wasm::StackMemory>::cast(cont.stack()).get().get();
+ stack().AddStackSegment(
+ reinterpret_cast<const void*>(wasm_stack->base()),
+ reinterpret_cast<const void*>(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<Address>(
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);