chromium 110
OBS-URL: https://build.opensuse.org/package/show/network:chromium/chromium?expand=0&rev=1768
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cbcdef5ee71acb53790ded3adef86871812b46e9f208dce8ec3f8ab04958be2d
|
||||
size 1747968612
|
||||
41
chromium-110-CredentialUIEntry-const.patch
Normal file
41
chromium-110-CredentialUIEntry-const.patch
Normal file
@@ -0,0 +1,41 @@
|
||||
From b4e56d22275cae5a910463a966a96345430a83ea Mon Sep 17 00:00:00 2001
|
||||
From: Ivan Murashov <ivan.murashov@lge.com>
|
||||
Date: Sat, 17 Dec 2022 12:06:01 +0000
|
||||
Subject: [PATCH] libstdc++: Don't use const members in std::vector in password_manager::CredentialUIEntry
|
||||
|
||||
Otherwise build fails when building with use_custom_libcxx=false.
|
||||
The error example:
|
||||
std::vector must have a non-const, non-volatile value_type
|
||||
|
||||
Implementation of std::vector in libstdc++ does not allow const.
|
||||
|
||||
Bug: 957519
|
||||
Change-Id: I089de2d52df25138d74dbf01fdf61d6301b4d871
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111037
|
||||
Reviewed-by: Mohamed Amir Yosef <mamir@chromium.org>
|
||||
Commit-Queue: Mohamed Amir Yosef <mamir@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1084697}
|
||||
---
|
||||
|
||||
diff --git a/components/password_manager/core/browser/ui/credential_ui_entry.cc b/components/password_manager/core/browser/ui/credential_ui_entry.cc
|
||||
index 1e0766a..a9a34f7 100644
|
||||
--- a/components/password_manager/core/browser/ui/credential_ui_entry.cc
|
||||
+++ b/components/password_manager/core/browser/ui/credential_ui_entry.cc
|
||||
@@ -97,7 +97,7 @@
|
||||
// For cases when the notes differ within grouped passwords (e.g: a
|
||||
// credential exists in both account and profile stores), respective notes
|
||||
// should be concatenated and linebreak used as a delimiter.
|
||||
- std::vector<const std::u16string> notes_with_duplicates;
|
||||
+ std::vector<std::u16string> notes_with_duplicates;
|
||||
for (const auto& form : forms) {
|
||||
// Only notes with an empty `unique_display_name` are supported in the
|
||||
// settings UI.
|
||||
@@ -109,7 +109,7 @@
|
||||
}
|
||||
auto unique_notes =
|
||||
base::MakeFlatSet<std::u16string>(std::move(notes_with_duplicates));
|
||||
- note = base::JoinString(std::vector<const std::u16string>(
|
||||
+ note = base::JoinString(std::vector<std::u16string>(
|
||||
unique_notes.begin(), unique_notes.end()),
|
||||
u"\n");
|
||||
|
||||
37
chromium-110-DarkModeLABColorSpace-pow.patch
Normal file
37
chromium-110-DarkModeLABColorSpace-pow.patch
Normal file
@@ -0,0 +1,37 @@
|
||||
From 795c311aae4b718585bc6194189f061000c823a1 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Hartmann <stha09@googlemail.com>
|
||||
Date: Fri, 23 Dec 2022 14:28:55 +0000
|
||||
Subject: [PATCH] libstdc++: fix narrowing in blink::DarkModeLABColorSpace
|
||||
|
||||
Clang-14 errors out with narrowing from double to float. Use std::pow
|
||||
instead.
|
||||
---
|
||||
.../renderer/platform/graphics/dark_mode_lab_color_space.h | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
|
||||
index 999c3e5..c18ea7b 100644
|
||||
--- a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
|
||||
+++ b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
|
||||
@@ -125,7 +125,7 @@ class DarkModeLABColorSpace {
|
||||
// https://en.wikipedia.org/wiki/CIELAB_color_space#Reverse_transformation.
|
||||
SkV3 FromXYZ(const SkV3& v) const {
|
||||
auto f = [](float x) {
|
||||
- return x > kSigma3 ? pow(x, 1.0f / 3.0f)
|
||||
+ return x > kSigma3 ? std::pow(x, 1.0f / 3.0f)
|
||||
: x / (3 * kSigma2) + 4.0f / 29.0f;
|
||||
};
|
||||
|
||||
@@ -145,7 +145,8 @@ class DarkModeLABColorSpace {
|
||||
// https://en.wikipedia.org/wiki/CIELAB_color_space#Forward_transformation.
|
||||
SkV3 ToXYZ(const SkV3& lab) const {
|
||||
auto invf = [](float x) {
|
||||
- return x > kSigma ? pow(x, 3.0f) : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
|
||||
+ return x > kSigma ? std::pow(x, 3.0f)
|
||||
+ : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
|
||||
};
|
||||
|
||||
SkV3 v = {Clamp(lab.x, 0.0f, 100.0f), Clamp(lab.y, -128.0f, 128.0f),
|
||||
--
|
||||
2.38.2
|
||||
|
||||
29
chromium-110-NativeThemeBase-fabs.patch
Normal file
29
chromium-110-NativeThemeBase-fabs.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
From 07f0a87e4409f27854b3a1d17f270a3497f38947 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Hartmann <stha09@googlemail.com>
|
||||
Date: Mon, 19 Dec 2022 19:07:37 +0000
|
||||
Subject: [PATCH] GCC: use fabsf in ui::NativeThemeBase::OutlineColor
|
||||
|
||||
Template deduction fails for base::clamp, because return type of
|
||||
fabs is double and all other parameters are float.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: I34f1c9c99d13f69097d899bfcb0526cbdf4fe1c1
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110869
|
||||
Reviewed-by: Peter Kasting <pkasting@chromium.org>
|
||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
||||
Cr-Commit-Position: refs/heads/main@{#1085034}
|
||||
---
|
||||
|
||||
diff --git a/ui/native_theme/native_theme_base.cc b/ui/native_theme/native_theme_base.cc
|
||||
index 169c60c..36db49a 100644
|
||||
--- a/ui/native_theme/native_theme_base.cc
|
||||
+++ b/ui/native_theme/native_theme_base.cc
|
||||
@@ -1336,7 +1336,7 @@
|
||||
// The following code has been tested to look OK with all of the
|
||||
// default GTK themes.
|
||||
SkScalar min_diff = base::clamp((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f);
|
||||
- SkScalar diff = base::clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
|
||||
+ SkScalar diff = base::clamp(fabsf(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
|
||||
|
||||
if (hsv1[2] + hsv2[2] > 1.0)
|
||||
diff = -diff;
|
||||
@@ -1,6 +1,6 @@
|
||||
From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
|
||||
From: Mike Gilbert <floppym@gentoo.org>
|
||||
Date: Sat, 17 Dec 2022 10:49:23 +0000
|
||||
Date: Tue, 15 Nov 2022 10:27:58 +0000
|
||||
Subject: [PATCH] Disable various compiler configs
|
||||
|
||||
---
|
||||
@@ -8,7 +8,7 @@ Subject: [PATCH] Disable various compiler configs
|
||||
1 file changed, 17 insertions(+), 117 deletions(-)
|
||||
|
||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
index d72f810..35db3da 100644
|
||||
index bd039fc..4d3759a 100644
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -276,9 +276,7 @@ config("compiler") {
|
||||
@@ -59,7 +59,7 @@ index d72f810..35db3da 100644
|
||||
# Rust compiler setup (for either clang or rustc).
|
||||
if (enable_rust) {
|
||||
defines += [ "RUST_ENABLED" ]
|
||||
@@ -1300,46 +1267,6 @@ config("compiler_deterministic") {
|
||||
@@ -1301,46 +1268,6 @@ config("compiler_deterministic") {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ index d72f810..35db3da 100644
|
||||
# Tells the compiler not to use absolute paths when passing the default
|
||||
# paths to the tools it invokes. We don't want this because we don't
|
||||
# really need it and it can mess up the goma cache entries.
|
||||
@@ -1358,27 +1285,6 @@ config("compiler_deterministic") {
|
||||
@@ -1359,27 +1286,6 @@ config("compiler_deterministic") {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ index d72f810..35db3da 100644
|
||||
config("rustc_revision") {
|
||||
if (enable_rust && defined(rustc_version)) {
|
||||
# Similar to the above config, this is here so that all files get
|
||||
@@ -1668,7 +1574,7 @@ config("chromium_code") {
|
||||
@@ -1669,7 +1575,7 @@ config("chromium_code") {
|
||||
defines = [ "_HAS_NODISCARD" ]
|
||||
}
|
||||
} else {
|
||||
@@ -143,7 +143,7 @@ index d72f810..35db3da 100644
|
||||
if (treat_warnings_as_errors) {
|
||||
cflags += [ "-Werror" ]
|
||||
|
||||
@@ -1677,10 +1583,6 @@ config("chromium_code") {
|
||||
@@ -1678,10 +1584,6 @@ config("chromium_code") {
|
||||
# well.
|
||||
ldflags = [ "-Werror" ]
|
||||
}
|
||||
@@ -154,7 +154,7 @@ index d72f810..35db3da 100644
|
||||
|
||||
# In Chromium code, we define __STDC_foo_MACROS in order to get the
|
||||
# C99 macros on Mac and Linux.
|
||||
@@ -1689,16 +1591,6 @@ config("chromium_code") {
|
||||
@@ -1690,16 +1592,6 @@ config("chromium_code") {
|
||||
"__STDC_FORMAT_MACROS",
|
||||
]
|
||||
|
||||
@@ -171,7 +171,7 @@ index d72f810..35db3da 100644
|
||||
if (is_mac) {
|
||||
cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
|
||||
cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
|
||||
@@ -2091,7 +1983,8 @@ config("default_stack_frames") {
|
||||
@@ -2092,7 +1984,8 @@ config("default_stack_frames") {
|
||||
}
|
||||
|
||||
# Default "optimization on" config.
|
||||
@@ -181,7 +181,7 @@ index d72f810..35db3da 100644
|
||||
if (is_win) {
|
||||
if (chrome_pgo_phase != 2) {
|
||||
# Favor size over speed, /O1 must be before the common flags.
|
||||
@@ -2136,7 +2029,8 @@ config("optimize") {
|
||||
@@ -2137,7 +2030,8 @@ config("optimize") {
|
||||
}
|
||||
|
||||
# Turn off optimizations.
|
||||
@@ -191,7 +191,7 @@ index d72f810..35db3da 100644
|
||||
if (is_win) {
|
||||
cflags = [
|
||||
"/Od", # Disable optimization.
|
||||
@@ -2176,7 +2070,8 @@ config("no_optimize") {
|
||||
@@ -2177,7 +2071,8 @@ config("no_optimize") {
|
||||
# Turns up the optimization level. On Windows, this implies whole program
|
||||
# optimization and link-time code generation which is very expensive and should
|
||||
# be used sparingly.
|
||||
@@ -201,7 +201,7 @@ index d72f810..35db3da 100644
|
||||
if (is_nacl && is_nacl_irt) {
|
||||
# The NaCl IRT is a special case and always wants its own config.
|
||||
# Various components do:
|
||||
@@ -2209,7 +2104,8 @@ config("optimize_max") {
|
||||
@@ -2210,7 +2105,8 @@ config("optimize_max") {
|
||||
#
|
||||
# TODO(crbug.com/621335) - rework how all of these configs are related
|
||||
# so that we don't need this disclaimer.
|
||||
@@ -211,7 +211,7 @@ index d72f810..35db3da 100644
|
||||
if (is_nacl && is_nacl_irt) {
|
||||
# The NaCl IRT is a special case and always wants its own config.
|
||||
# Various components do:
|
||||
@@ -2235,7 +2131,8 @@ config("optimize_speed") {
|
||||
@@ -2236,7 +2132,8 @@ config("optimize_speed") {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -221,7 +221,7 @@ index d72f810..35db3da 100644
|
||||
cflags = [ "-O1" ] + common_optimize_on_cflags
|
||||
rustflags = [ "-Copt-level=1" ]
|
||||
ldflags = common_optimize_on_ldflags
|
||||
@@ -2355,7 +2252,8 @@ config("win_pdbaltpath") {
|
||||
@@ -2356,7 +2253,8 @@ config("win_pdbaltpath") {
|
||||
}
|
||||
|
||||
# Full symbols.
|
||||
@@ -230,8 +230,8 @@ index d72f810..35db3da 100644
|
||||
+config("xsymbols") {
|
||||
if (is_win) {
|
||||
if (is_clang) {
|
||||
cflags = [ "/Z7" ] # Debug information in the .obj files.
|
||||
@@ -2487,7 +2385,8 @@ config("symbols") {
|
||||
cflags = [
|
||||
@@ -2495,7 +2393,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.
|
||||
@@ -241,7 +241,7 @@ index d72f810..35db3da 100644
|
||||
if (is_win) {
|
||||
# Functions, files, and line tables only.
|
||||
cflags = []
|
||||
@@ -2560,7 +2459,8 @@ config("minimal_symbols") {
|
||||
@@ -2568,7 +2467,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.
|
||||
@@ -252,5 +252,5 @@ index d72f810..35db3da 100644
|
||||
ldflags = [ "/DEBUG" ]
|
||||
|
||||
--
|
||||
2.38.2
|
||||
2.37.4
|
||||
|
||||
26
chromium-110-system-libffi.patch
Normal file
26
chromium-110-system-libffi.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
Index: chromium-110.0.5481.30/build/config/linux/libffi/BUILD.gn
|
||||
===================================================================
|
||||
--- chromium-110.0.5481.30.orig/build/config/linux/libffi/BUILD.gn
|
||||
+++ chromium-110.0.5481.30/build/config/linux/libffi/BUILD.gn
|
||||
@@ -4,21 +4,6 @@
|
||||
|
||||
import("//build/config/linux/pkg_config.gni")
|
||||
|
||||
-declare_args() {
|
||||
- # Controls whether the build should use the version of libffi library shipped
|
||||
- # with the system. By default, we only use the system version on Chrome OS:
|
||||
- # on Linux, libffi must be statically linked to prevent a situation where the
|
||||
- # runtime version of libffi is different from the build-time version from the
|
||||
- # sysroot.
|
||||
- use_system_libffi = default_toolchain == "//build/toolchain/cros:target"
|
||||
-}
|
||||
-
|
||||
-if (use_system_libffi) {
|
||||
pkg_config("libffi") {
|
||||
packages = [ "libffi" ]
|
||||
}
|
||||
-} else {
|
||||
- config("libffi") {
|
||||
- libs = [ ":libffi_pic.a" ]
|
||||
- }
|
||||
-}
|
||||
3
chromium-110.0.5481.77.tar.xz
Normal file
3
chromium-110.0.5481.77.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e348ab2dc4311083e729d714a81e95dd9db108ff71437dde451c97ac939881ce
|
||||
size 1703346520
|
||||
@@ -33,13 +33,13 @@ Cr-Commit-Position: refs/heads/main@{#1073605}
|
||||
.../idn_spoof_checker_unittest.cc | 28 +++++++++++--------
|
||||
2 files changed, 25 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/components/url_formatter/spoof_checks/idn_spoof_checker.cc b/components/url_formatter/spoof_checks/idn_spoof_checker.cc
|
||||
index aaff7c60bb918..87f62e49f487f 100644
|
||||
--- a/components/url_formatter/spoof_checks/idn_spoof_checker.cc
|
||||
+++ b/components/url_formatter/spoof_checks/idn_spoof_checker.cc
|
||||
@@ -713,6 +713,15 @@ void IDNSpoofChecker::SetAllowedUnicodeSet(UErrorCode* status) {
|
||||
allowed_set.remove(0xA640u, 0xA69Fu); // Cyrillic Extended-B
|
||||
allowed_set.remove(0xA720u, 0xA7FFu); // Latin Extended-D
|
||||
Index: chromium-110.0.5481.38/components/url_formatter/spoof_checks/idn_spoof_checker.cc
|
||||
===================================================================
|
||||
--- chromium-110.0.5481.38.orig/components/url_formatter/spoof_checks/idn_spoof_checker.cc
|
||||
+++ chromium-110.0.5481.38/components/url_formatter/spoof_checks/idn_spoof_checker.cc
|
||||
@@ -722,6 +722,15 @@ void IDNSpoofChecker::SetAllowedUnicodeS
|
||||
allowed_set.remove(0x200Du); // Zero Width Joiner
|
||||
#endif
|
||||
|
||||
+#if U_ICU_VERSION_MAJOR_NUM < 72
|
||||
+ // Unicode 15 changes ZWJ and ZWNJ from allowed to restricted. Restrict them
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
From 2ada52cffbff11074abfaac18938bf02d85454f5 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}
|
||||
---
|
||||
src/date/dateparser-inl.h | 2 +-
|
||||
src/date/dateparser.h | 4 +++-
|
||||
test/intl/regress-13494.js | 47 ++++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 51 insertions(+), 2 deletions(-)
|
||||
create mode 100644 test/intl/regress-13494.js
|
||||
|
||||
diff --git a/src/date/dateparser-inl.h b/src/date/dateparser-inl.h
|
||||
index 623986d2b10..b45479dc516 100644
|
||||
--- a/v8/src/date/dateparser-inl.h
|
||||
+++ b/v8/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 1a0a0b15ab7..59b2f3c9fd2 100644
|
||||
--- a/v8/src/date/dateparser.h
|
||||
+++ b/v8/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 '-'.
|
||||
diff --git a/test/intl/regress-13494.js b/test/intl/regress-13494.js
|
||||
new file mode 100644
|
||||
index 00000000000..d1446aff073
|
||||
--- /dev/null
|
||||
+++ b/v8/test/intl/regress-13494.js
|
||||
@@ -0,0 +1,47 @@
|
||||
+// Copyright 2022 the V8 project authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+// Test the new Date( date.toLocaleString("en-US")) is not invalid.
|
||||
+// This is not guaranteed by the standard but many code use that to set the
|
||||
+// timezone as suggested in
|
||||
+// https://stackoverflow.com/questions/15141762/how-to-initialize-a-javascript-date-to-a-particular-time-zone
|
||||
+
|
||||
+let d = new Date();
|
||||
+
|
||||
+// https://tc39.es/ecma262/#sec-todatestring
|
||||
+// 21.4.4.41.4 ToDateString ( tv )
|
||||
+// 1. If tv is NaN, return "Invalid Date".
|
||||
+let invalid = "Invalid Date";
|
||||
+let largestDiff = 25*60*60*1000;
|
||||
+
|
||||
+let garbage = new Date("garbage");
|
||||
+assertTrue(invalid == garbage);
|
||||
+assertEquals(NaN, garbage.getTime());
|
||||
+
|
||||
+let d1 = new Date(d.toLocaleString("en-US"));
|
||||
+assertTrue(d1 != invalid);
|
||||
+assertTrue(d1.getTime() != NaN);
|
||||
+// The milliseconds are different between d1 and d.
|
||||
+assertTrue(Math.abs(d1-d) < 1000);
|
||||
+
|
||||
+// Force a version of date string which have U+202f before AM
|
||||
+let nnbsp_am = new Date("11/16/2022, 9:04:55\u202fAM");
|
||||
+assertTrue(nnbsp_am != invalid);
|
||||
+assertTrue(nnbsp_am.getTime() != NaN);
|
||||
+// Force a version of date string which have U+202f before PM
|
||||
+let nnbsp_pm = new Date("11/16/2022, 9:04:55\u202fPM");
|
||||
+assertTrue(nnbsp_pm != invalid);
|
||||
+assertTrue(nnbsp_pm.getTime() != NaN);
|
||||
+
|
||||
+let d2 = new Date(d.toLocaleString("en-US", {timeZone: "Asia/Taipei"}));
|
||||
+assertTrue(d2 != invalid);
|
||||
+assertTrue(d2.getTime() != NaN);
|
||||
+// The differences should be within 25 hours.
|
||||
+assertTrue(Math.abs(d2-d) < largestDiff);
|
||||
+
|
||||
+let d3 = new Date(d.toLocaleString("en-US", {timeZone: "Africa/Lusaka"}));
|
||||
+assertTrue(d3 != invalid);
|
||||
+assertTrue(d3.getTime() != NaN);
|
||||
+// The differences should be within 25 hours.
|
||||
+assertTrue(Math.abs(d3-d) < largestDiff);
|
||||
@@ -1,7 +1,7 @@
|
||||
Index: chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
|
||||
Index: chromium-110.0.5481.30/build/linux/unbundle/libusb.gn
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
|
||||
+++ chromium-110.0.5481.30/build/linux/unbundle/libusb.gn
|
||||
@@ -0,0 +1,24 @@
|
||||
+# Copyright 2016 The Chromium Authors. All rights reserved.
|
||||
+# Use of this source code is governed by a BSD-style license that can be
|
||||
@@ -27,13 +27,13 @@ Index: chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
|
||||
+ ]
|
||||
+ public_configs = [ ":system_libusb" ]
|
||||
+}
|
||||
Index: chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
|
||||
Index: chromium-110.0.5481.30/build/linux/unbundle/replace_gn_files.py
|
||||
===================================================================
|
||||
--- chromium-70.0.3538.54.orig/build/linux/unbundle/replace_gn_files.py
|
||||
+++ chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
|
||||
@@ -27,6 +27,7 @@ REPLACEMENTS = {
|
||||
--- chromium-110.0.5481.30.orig/build/linux/unbundle/replace_gn_files.py
|
||||
+++ chromium-110.0.5481.30/build/linux/unbundle/replace_gn_files.py
|
||||
@@ -54,6 +54,7 @@ REPLACEMENTS = {
|
||||
'libevent': 'third_party/libevent/BUILD.gn',
|
||||
'libjpeg': 'third_party/libjpeg.gni',
|
||||
'libjxl' : 'third_party/libjxl/BUILD.gn',
|
||||
'libpng': 'third_party/libpng/BUILD.gn',
|
||||
+ 'libusb': 'third_party/libusb/BUILD.gn',
|
||||
'libvpx': 'third_party/libvpx/BUILD.gn',
|
||||
|
||||
@@ -1,3 +1,30 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 8 20:16:01 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- Chromium 110.0.5481.77 (boo#1208029):
|
||||
* CVE-2023-0696: Type Confusion in V8
|
||||
* CVE-2023-0697: Inappropriate implementation in Full screen mode
|
||||
* CVE-2023-0698: Out of bounds read in WebRTC
|
||||
* CVE-2023-0699: Use after free in GPU
|
||||
* CVE-2023-0700: Inappropriate implementation in Download
|
||||
* CVE-2023-0701: Heap buffer overflow in WebUI
|
||||
* CVE-2023-0702: Type Confusion in Data Transfer
|
||||
* CVE-2023-0703: Type Confusion in DevTools
|
||||
* CVE-2023-0704: Insufficient policy enforcement in DevTools
|
||||
* CVE-2023-0705: Integer overflow in Core
|
||||
* Various fixes from internal audits, fuzzing and other initiatives
|
||||
- build with bundled libavif
|
||||
- dropped patches:
|
||||
* chromium-109-compiler.patch
|
||||
* chromium-icu72-3.patch
|
||||
- added patches:
|
||||
* chromium-110-compiler.patch
|
||||
* chromium-110-system-libffi.patch
|
||||
* chromium-110-NativeThemeBase-fabs.patch
|
||||
* chromium-110-CredentialUIEntry-const.patch
|
||||
* chromium-110-DarkModeLABColorSpace-pow.patch
|
||||
* v8-move-the-Stack-object-from-ThreadLocalTop.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 25 04:51:29 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
|
||||
@@ -40,15 +40,14 @@
|
||||
%bcond_without arm_bti
|
||||
%bcond_without system_icu
|
||||
%bcond_without ffmpeg_51
|
||||
%bcond_without system_avif
|
||||
%else
|
||||
%bcond_with system_harfbuzz
|
||||
%bcond_with system_freetype
|
||||
%bcond_with arm_bti
|
||||
%bcond_with system_icu
|
||||
%bcond_with ffmpeg_51
|
||||
%bcond_with system_avif
|
||||
%endif
|
||||
%bcond_with system_avif
|
||||
# LLVM version
|
||||
%if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150400
|
||||
%define llvm_version 12
|
||||
@@ -74,7 +73,7 @@
|
||||
%define ffmpeg_version 58
|
||||
%endif
|
||||
Name: chromium
|
||||
Version: 109.0.5414.119
|
||||
Version: 110.0.5481.77
|
||||
Release: 0
|
||||
Summary: Google's open source browser project
|
||||
License: BSD-3-Clause AND LGPL-2.1-or-later
|
||||
@@ -108,7 +107,7 @@ Patch9: system-libdrm.patch
|
||||
Patch10: chromium-disable-parallel-gold.patch
|
||||
Patch11: chromium-lp151-old-drm.patch
|
||||
# gentoo/fedora/arch patchset
|
||||
Patch15: chromium-109-compiler.patch
|
||||
Patch15: chromium-110-compiler.patch
|
||||
Patch17: chromium-86-ImageMemoryBarrierData-init.patch
|
||||
Patch40: chromium-91-java-only-allowed-in-android-builds.patch
|
||||
Patch50: chromium-clang-nomerge.patch
|
||||
@@ -121,6 +120,10 @@ Patch87: chromium-98-gtk4-build.patch
|
||||
Patch90: chromium-100-InMilliseconds-constexpr.patch
|
||||
Patch98: chromium-102-regex_pattern-array.patch
|
||||
Patch103: chromium-103-VirtualCursor-std-layout.patch
|
||||
Patch104: chromium-110-NativeThemeBase-fabs.patch
|
||||
Patch105: chromium-110-CredentialUIEntry-const.patch
|
||||
Patch106: chromium-110-DarkModeLABColorSpace-pow.patch
|
||||
Patch107: v8-move-the-Stack-object-from-ThreadLocalTop.patch
|
||||
Patch201: chromium-86-fix-vaapi-on-intel.patch
|
||||
# PATCH-FIX-SUSE: allow prop codecs to be set with chromium branding
|
||||
Patch202: chromium-prop-codecs.patch
|
||||
@@ -129,7 +132,7 @@ Patch205: chromium-disable-GlobalMediaControlsCastStartStop.patch
|
||||
Patch206: chromium-109-clang-lp154.patch
|
||||
Patch207: chromium-icu72-1.patch
|
||||
Patch208: chromium-icu72-2.patch
|
||||
Patch209: chromium-icu72-3.patch
|
||||
Patch210: chromium-110-system-libffi.patch
|
||||
BuildRequires: SDL-devel
|
||||
BuildRequires: bison
|
||||
BuildRequires: cups-devel
|
||||
@@ -413,11 +416,8 @@ keeplibs=(
|
||||
net/third_party/uri_template
|
||||
third_party/abseil-cpp
|
||||
third_party/angle
|
||||
third_party/angle/src/common/third_party/base
|
||||
third_party/angle/src/common/third_party/smhasher
|
||||
third_party/angle/src/common/third_party/xxhash
|
||||
third_party/angle/src/third_party/libXNVCtrl
|
||||
third_party/angle/src/third_party/trace_event
|
||||
third_party/angle/src/third_party/volk
|
||||
third_party/apple_apsl
|
||||
third_party/axe-core
|
||||
@@ -469,7 +469,6 @@ keeplibs=(
|
||||
third_party/devtools-frontend/src/front_end/third_party/i18n
|
||||
third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
|
||||
third_party/devtools-frontend/src/front_end/third_party/lighthouse
|
||||
third_party/devtools-frontend/src/front_end/third_party/lit-html
|
||||
third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
|
||||
third_party/devtools-frontend/src/front_end/third_party/marked
|
||||
third_party/devtools-frontend/src/front_end/third_party/puppeteer
|
||||
@@ -511,7 +510,6 @@ keeplibs=(
|
||||
third_party/libaom/source/libaom/third_party/SVT-AV1
|
||||
third_party/libgav1
|
||||
third_party/libjingle
|
||||
third_party/libjxl
|
||||
third_party/libphonenumber
|
||||
third_party/libsecret
|
||||
third_party/libsrtp
|
||||
@@ -550,7 +548,6 @@ keeplibs=(
|
||||
third_party/pdfium/third_party/bigint
|
||||
third_party/pdfium/third_party/freetype
|
||||
third_party/pdfium/third_party/lcms
|
||||
third_party/pdfium/third_party/libpng16
|
||||
third_party/pdfium/third_party/libtiff
|
||||
third_party/pdfium/third_party/skia_shared
|
||||
third_party/pdfium/third_party/libopenjpeg
|
||||
@@ -619,6 +616,7 @@ keeplibs=(
|
||||
v8/src/third_party/siphash
|
||||
v8/src/third_party/utf8-decoder
|
||||
v8/src/third_party/valgrind
|
||||
v8/third_party/glibc
|
||||
v8/third_party/inspector_protocol
|
||||
v8/third_party/v8/builtins
|
||||
)
|
||||
@@ -831,8 +829,6 @@ myconf_gn+=" use_system_harfbuzz=true"
|
||||
%if %{with system_freetype}
|
||||
myconf_gn+=" use_system_freetype=true"
|
||||
%endif
|
||||
myconf_gn+=" use_system_libwayland=true"
|
||||
myconf_gn+=" use_system_wayland_scanner=true"
|
||||
myconf_gn+=" enable_hangout_services_extension=true"
|
||||
myconf_gn+=" enable_vulkan=true"
|
||||
%if %{with pipewire}
|
||||
|
||||
205
v8-move-the-Stack-object-from-ThreadLocalTop.patch
Normal file
205
v8-move-the-Stack-object-from-ThreadLocalTop.patch
Normal 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/v8/src/execution/isolate.cc
|
||||
index 4edf364e0a..be4fd400d2 100644
|
||||
--- a/v8/src/execution/isolate.cc
|
||||
+++ b/v8/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/v8/src/execution/isolate.h b/v8/src/execution/isolate.h
|
||||
index a32f999fe5..1cb6e10661 100644
|
||||
--- a/v8/src/execution/isolate.h
|
||||
+++ b/v8/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/v8/src/execution/thread-local-top.cc b/v8/src/execution/thread-local-top.cc
|
||||
index 0d7071ddda..05cc20b8e4 100644
|
||||
--- a/v8/src/execution/thread-local-top.cc
|
||||
+++ b/v8/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/v8/src/execution/thread-local-top.h b/v8/src/execution/thread-local-top.h
|
||||
index 43fec0a7df..989c817f31 100644
|
||||
--- a/v8/src/execution/thread-local-top.h
|
||||
+++ b/v8/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/v8/src/heap/heap.cc b/v8/src/heap/heap.cc
|
||||
index 51a90ddcab..b5722ab6ec 100644
|
||||
--- a/v8/src/heap/heap.cc
|
||||
+++ b/v8/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);
|
||||
Reference in New Issue
Block a user