Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package chromium for openSUSE:Factory 
checked in at 2023-02-10 14:34:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chromium (Old)
 and      /work/SRC/openSUSE:Factory/.chromium.new.1848 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chromium"

Fri Feb 10 14:34:30 2023 rev:368 rq:1064085 version:110.0.5481.77

Changes:
--------
--- /work/SRC/openSUSE:Factory/chromium/chromium.changes        2023-01-25 
17:45:27.880790391 +0100
+++ /work/SRC/openSUSE:Factory/.chromium.new.1848/chromium.changes      
2023-02-10 14:34:57.389790082 +0100
@@ -1,0 +2,27 @@
+Wed Feb  8 20:16:01 UTC 2023 - Andreas Stieger <andreas.stie...@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
+
+-------------------------------------------------------------------

Old:
----
  chromium-109-compiler.patch
  chromium-109.0.5414.119.tar.xz
  chromium-icu72-3.patch

New:
----
  chromium-110-CredentialUIEntry-const.patch
  chromium-110-DarkModeLABColorSpace-pow.patch
  chromium-110-NativeThemeBase-fabs.patch
  chromium-110-compiler.patch
  chromium-110-system-libffi.patch
  chromium-110.0.5481.77.tar.xz
  v8-move-the-Stack-object-from-ThreadLocalTop.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ chromium.spec ++++++
--- /var/tmp/diff_new_pack.JfleFk/_old  2023-02-10 14:34:58.157794671 +0100
+++ /var/tmp/diff_new_pack.JfleFk/_new  2023-02-10 14:34:58.165794719 +0100
@@ -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 @@
 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 @@
 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 @@
 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 @@
     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 @@
     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 @@
     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 @@
     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 @@
     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 @@
 %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}

++++++ chromium-110-CredentialUIEntry-const.patch ++++++
>From b4e56d22275cae5a910463a966a96345430a83ea Mon Sep 17 00:00:00 2001
From: Ivan Murashov <ivan.muras...@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 <ma...@chromium.org>
Commit-Queue: Mohamed Amir Yosef <ma...@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");
 

++++++ chromium-110-DarkModeLABColorSpace-pow.patch ++++++
>From 795c311aae4b718585bc6194189f061000c823a1 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <sth...@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


++++++ chromium-110-NativeThemeBase-fabs.patch ++++++
>From 07f0a87e4409f27854b3a1d17f270a3497f38947 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <sth...@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 <pkast...@chromium.org>
Commit-Queue: Stephan Hartmann <sth...@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;

++++++ chromium-109-compiler.patch -> chromium-110-compiler.patch ++++++
--- /work/SRC/openSUSE:Factory/chromium/chromium-109-compiler.patch     
2023-01-11 14:36:43.693798597 +0100
+++ /work/SRC/openSUSE:Factory/.chromium.new.1848/chromium-110-compiler.patch   
2023-02-10 14:34:42.581701596 +0100
@@ -1,6 +1,6 @@
 From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
 From: Mike Gilbert <flop...@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 @@
  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 @@
    # 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 @@
    # 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 @@
  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 @@
      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 @@
  
      # 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 @@
      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 @@
    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 @@
    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 @@
    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 @@
    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 @@
    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 @@
 +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 @@
    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 @@
      ldflags = [ "/DEBUG" ]
  
 -- 
-2.38.2
+2.37.4
 

++++++ chromium-110-system-libffi.patch ++++++
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" ]
-  }
-}

++++++ chromium-109.0.5414.119.tar.xz -> chromium-110.0.5481.77.tar.xz ++++++
/work/SRC/openSUSE:Factory/chromium/chromium-109.0.5414.119.tar.xz 
/work/SRC/openSUSE:Factory/.chromium.new.1848/chromium-110.0.5481.77.tar.xz 
differ: char 15, line 1

++++++ chromium-icu72-2.patch ++++++
--- /var/tmp/diff_new_pack.JfleFk/_old  2023-02-10 14:34:58.365795914 +0100
+++ /var/tmp/diff_new_pack.JfleFk/_new  2023-02-10 14:34:58.369795938 +0100
@@ -33,13 +33,13 @@
  .../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


++++++ chromium-system-libusb.patch ++++++
--- /var/tmp/diff_new_pack.JfleFk/_old  2023-02-10 14:34:58.401796129 +0100
+++ /var/tmp/diff_new_pack.JfleFk/_new  2023-02-10 14:34:58.405796153 +0100
@@ -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 @@
 +  ]
 +  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',

++++++ v8-move-the-Stack-object-from-ThreadLocalTop.patch ++++++
>From 7b6fbcd0a6700db498ad55db046ecda92c8ee8c1 Mon Sep 17 00:00:00 2001
From: Nikolaos Papaspyrou <nikol...@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 <mlippa...@chromium.org>
> Reviewed-by: Omer Katz <omerk...@chromium.org>
> Commit-Queue: Nikolaos Papaspyrou <nikol...@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);

Reply via email to