Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nodejs-electron for openSUSE:Factory 
checked in at 2023-01-18 13:12:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old)
 and      /work/SRC/openSUSE:Factory/.nodejs-electron.new.32243 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nodejs-electron"

Wed Jan 18 13:12:30 2023 rev:50 rq:1059260 version:22.0.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes  
2023-01-14 00:03:18.093740195 +0100
+++ 
/work/SRC/openSUSE:Factory/.nodejs-electron.new.32243/nodejs-electron.changes   
    2023-01-18 13:13:06.125406325 +0100
@@ -1,0 +2,40 @@
+Wed Jan 18 05:27:34 UTC 2023 - Bruno Pitrus <brunopit...@hotmail.com>
+- Update to 22.0.2
+  * ABI break: NODE_MODULE_VERSION is now 110. Native modules may need 
recompiling
+  * Chromium to 108.0.5359.179
+  * Node v16.17.1
+  * V8 v10.8
+  * Added WebContents input-event event.
+  * Deprecated BrowserWindow scroll-touch-* events.
+  * The deprecated new-window event has been removed.
+  * Added contextBridge.exposeInIsolatedWorld(worldId, key, api) to expose
+    an API to an isolatedWorld within a renderer from a preload script.
+  * Added webContents.close() method.
+  * Added new UtilityProcess API to launch chromium child process with node 
integration.
+  * Added new WebContents event content-bounds-updated.
+  * Added support for navigator.mediaDevices.getDisplayMedia via a new
+    session handler, ses.setDisplayMediaRequestHandler.
+  * Added support for serialPort.forget() as well as a new event
+    serial-port-revoked emitted when a given origin is revoked.
+- Drop patches applied upstream
+  * argument_spec-missing-isnan-isinf.patch
+  * chromium-103.0.5060.53-python3-do-not-use-deprecated-mode-U.patch
+  * content_language_parser-missing-string.patch
+  * gtk_ui_platform_stub-incomplete-type-LinuxInputMethodContext.patch
+  * node-system-libs.patch
+  * pending_beacon_dispatcher-virtual-functions-cannot-be-constexpr.patch
+  * std_lib_extras-missing-intptr_t.patch
+  * system-abseil-missing-shims.patch
+- Re-add electron_serial_delegate-ambiguous-Observer.patch due to upstream 
reintroducing the invalid code
+- Add patches to fix build errors
+  * chromium-108-abseil-shims.patch
+  * 
crashpad-elf_image_reader-ProgramHeaderTableSpecific-expected-unqualified-id.patch
+  * document_loader-private-DecodedBodyData.patch
+  * first_party_set_parser-IssueWithMetadata-no-known-conversion.patch
+  * print_dialog_gtk-no-kEnableOopPrintDriversJobPrint.patch
+  * swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch
+- Conditionally reverse upstream changes to fix build with old harfbuzz
+  * harfbuzz-replace-chromium-scoped-type.patch
+- Switch to bundled libjxl on Fedora 36 due to system version being too old
+  
+-------------------------------------------------------------------

Old:
----
  argument_spec-missing-isnan-isinf.patch
  chromium-103.0.5060.53-python3-do-not-use-deprecated-mode-U.patch
  content_language_parser-missing-string.patch
  electron-21.3.4.tar.zst
  gtk_ui_platform_stub-incomplete-type-LinuxInputMethodContext.patch
  node-system-libs.patch
  pending_beacon_dispatcher-virtual-functions-cannot-be-constexpr.patch
  std_lib_extras-missing-intptr_t.patch
  system-abseil-missing-shims.patch

New:
----
  chromium-108-abseil-shims.patch
  
crashpad-elf_image_reader-ProgramHeaderTableSpecific-expected-unqualified-id.patch
  document_loader-private-DecodedBodyData.patch
  electron-22.0.2.tar.zst
  electron_serial_delegate-ambiguous-Observer.patch
  first_party_set_parser-IssueWithMetadata-no-known-conversion.patch
  harfbuzz-replace-chromium-scoped-type.patch
  print_dialog_gtk-no-kEnableOopPrintDriversJobPrint.patch
  swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch

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

Other differences:
------------------
++++++ nodejs-electron.spec ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.465447064 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.473447107 +0100
@@ -23,7 +23,7 @@
 
 %define mod_name electron
 # https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json
-%define abi_version 109
+%define abi_version 110
 
 # Do not provide libEGL.so, etc…
 %define __provides_exclude ^lib.*\\.so.*$
@@ -103,29 +103,23 @@
 %endif
 
 
-%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400 || 0%{?fedora}
-%bcond_without system_harfbuzz
-%else
-%bcond_with system_harfbuzz
-%endif
-
-
-%bcond_without system_freetype
 %bcond_without system_nghttp2
-%bcond_without system_double_conversion
-%bcond_without system_woff2
 
 
 %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 || 0%{?fedora} >= 
37
+%bcond_without harfbuzz_5
 %bcond_without system_aom
 %bcond_without system_avif
+%bcond_without system_jxl
 %bcond_without icu_71
 %bcond_without ffmpeg_5
 %bcond_without system_dav1d
 %bcond_without system_spirv
 %else
+%bcond_with harfbuzz_5
 %bcond_with system_aom
 %bcond_with system_avif
+%bcond_with system_jxl
 %bcond_with icu_71
 %bcond_with ffmpeg_5
 %bcond_with system_dav1d
@@ -140,11 +134,7 @@
 %bcond_with system_nvctrl
 %endif
 
-%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 || 
0%{?fedora_version}
-%bcond_without system_jxl
-%else
-%bcond_with system_jxl
-%endif
+
 
 
 
@@ -203,7 +193,7 @@
 
 
 Name:           nodejs-electron
-Version:        21.3.4
+Version:        22.0.2
 Release:        0
 Summary:        Build cross platform desktop apps with JavaScript, HTML, and 
CSS
 License:        AFL-2.0 AND Apache-2.0 AND blessing AND BSD-2-Clause AND 
BSD-3-Clause AND BSD-Protection AND BSD-Source-Code AND bzip2-1.0.6 AND IJG AND 
ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND 
MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND 
MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11
@@ -225,6 +215,9 @@
 # …and against icu-69
 Source410:      NumberFormat-icu71-incrementExact.patch
 Source411:      intl-objects-icu71-UNUM_APPROXIMATELY_SIGN_FIELD.patch
+# and against harfbuzz 4
+Source415:      harfbuzz-replace-chromium-scoped-type.patch
+
 
 #Reverse upstream changes to build against system libavif.
 #All of this patch is dead code, so it can be reversed unconditionally.
@@ -268,7 +261,6 @@
 Patch1040:      system-jsoncpp.patch
 # 
https://sources.debian.org/patches/chromium/102.0.5005.115-1/system/zlib.patch/
 Patch1041:      system-zlib.patch
-Patch1043:      node-system-libs.patch
 Patch1044:      replace_gn_files-system-libs.patch
 Patch1045:      angle-system-xxhash.patch
 # 
https://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/SOURCES/chromium-99-pdfium-system-libtiff-libpng.patch
@@ -288,8 +280,8 @@
 Patch1072:      node-system-icu.patch
 Patch1073:      system-nasm.patch
 Patch1074:      no-zlib-headers.patch
-Patch1075:      system-abseil-missing-shims.patch
 Patch1076:      crashpad-use-system-abseil.patch
+Patch1077:      chromium-108-abseil-shims.patch
 
 # PATCHES to fix interaction with third-party software
 Patch2004:      chromium-gcc11.patch
@@ -315,6 +307,7 @@
 %else
 Source2033:      node-upgrade-llhttp-to-8.patch
 %endif
+Patch2034:      swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch
 
 # PATCHES that should be submitted upstream verbatim or near-verbatim
 Patch3016:      chromium-98-EnumTable-crash.patch
@@ -327,16 +320,10 @@
 Patch3056:      
async_shared_storage_database_impl-missing-absl-WrapUnique.patch
 # 
https://salsa.debian.org/chromium-team/chromium/-/blob/456851fc808b2a5b5c762921699994e957645917/debian/patches/upstream/nested-nested-nested-nested-nested-nested-regex-patterns.patch
 Patch3064:      nested-nested-nested-nested-nested-nested-regex-patterns.patch
-# Fedora patch to fix build with python3.11
-Patch3066:      
chromium-103.0.5060.53-python3-do-not-use-deprecated-mode-U.patch
 Patch3067:      reproducible-config.gypi.patch
-Patch3068:      content_language_parser-missing-string.patch
 Patch3069:      aggregatable_attribution_utils-do-not-assume-abseil-ABI.patch
+Patch3071:      electron_serial_delegate-ambiguous-Observer.patch
 Patch3072:      attribution_response_parsing-do-not-assume-abseil-ABI.patch
-Patch3074:      
pending_beacon_dispatcher-virtual-functions-cannot-be-constexpr.patch
-Patch3075:      std_lib_extras-missing-intptr_t.patch
-Patch3076:      
gtk_ui_platform_stub-incomplete-type-LinuxInputMethodContext.patch
-Patch3077:      argument_spec-missing-isnan-isinf.patch
 Patch3078:      select_file_dialog_linux_kde-Wodr.patch
 Patch3079:      web_contents_impl-Wsubobject-linkage.patch
 Patch3080:      compact_enc_det_generated_tables-Wnarrowing.patch
@@ -356,6 +343,10 @@
 Patch3095:      CVE-2022-43548.patch
 Patch3096:      remove-date-reproducible-builds.patch
 Patch3097:      shim_headers-fix-ninja.patch
+Patch3098:      document_loader-private-DecodedBodyData.patch
+Patch3099:      
crashpad-elf_image_reader-ProgramHeaderTableSpecific-expected-unqualified-id.patch
+Patch3100:      
first_party_set_parser-IssueWithMetadata-no-known-conversion.patch
+Patch3101:      print_dialog_gtk-no-kEnableOopPrintDriversJobPrint.patch
 
 %if %{with clang}
 BuildRequires:  clang
@@ -376,9 +367,7 @@
 %if %{with system_crc32c}
 BuildRequires:  cmake(Crc32c)
 %endif
-%if %{with system_double_conversion}
 BuildRequires:  double-conversion-devel
-%endif
 BuildRequires:  desktop-file-utils
 BuildRequires:  fdupes
 %if 0%{?fedora}
@@ -449,6 +438,7 @@
 %endif
 BuildRequires:  util-linux
 BuildRequires:  vulkan-headers
+BuildRequires:  wayland-devel
 BuildRequires:  zstd
 %if %{with system_abseil}
 BuildRequires:  pkgconfig(absl_algorithm_container) >= 20211000
@@ -496,18 +486,18 @@
 BuildRequires:  pkgconfig(dbus-1)
 BuildRequires:  pkgconfig(dri)
 BuildRequires:  pkgconfig(expat)
-%if %{with system_freetype}
 BuildRequires:  pkgconfig(freetype2)
-%endif
 BuildRequires:  pkgconfig(gbm)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(glproto)
 BuildRequires:  pkgconfig(gtest)
 BuildRequires:  pkgconfig(gtk+-3.0)
-%if %{with system_harfbuzz}
 BuildRequires:  pkgconfig(harfbuzz) >= 3
+%if %{with harfbuzz_5}
+BuildRequires:  pkgconfig(harfbuzz) >= 5
 %endif
 
+
 %if %{with icu_71}
 BuildRequires:  pkgconfig(icu-i18n) >= 71
 %else
@@ -542,7 +532,7 @@
 BuildRequires:  pkgconfig(libdrm)
 BuildRequires:  pkgconfig(libevent)
 %if %{with system_jxl}
-BuildRequires:  pkgconfig(libjxl)
+BuildRequires:  pkgconfig(libjxl) >= 0.7
 %endif
 %if 0%{?fedora} >= 38
 #Work around https://bugzilla.redhat.com/show_bug.cgi?id=2148612
@@ -558,9 +548,7 @@
 BuildRequires:  pkgconfig(libsecret-1)
 BuildRequires:  pkgconfig(libva)
 BuildRequires:  pkgconfig(libwebp) >= 0.4.0
-%if %{with system_woff2}
 BuildRequires:  pkgconfig(libwoff2dec)
-%endif
 BuildRequires:  pkgconfig(libxml-2.0) >= 2.9.5
 BuildRequires:  pkgconfig(libxslt)
 BuildRequires:  pkgconfig(libxxhash)
@@ -682,6 +670,10 @@
 patch -R -p1 < %SOURCE400
 %endif
 
+%if %{without harfbuzz_5}
+patch -R -p1 < %SOURCE415
+%endif
+
 %if %{without icu_71}
 patch -R -p1 < %SOURCE410
 patch -R -p1 < %SOURCE411
@@ -696,7 +688,9 @@
 patch -R -p1 < %SOURCE420
 
 # Link system wayland-protocols-devel into where chrome expects them
+mkdir -p third_party/wayland/src
 mkdir -p third_party/wayland-protocols/kde/src
+ln -svfT %{_datadir}/wayland third_party/wayland/src/protocol
 #mkdir -p third_party/wayland-protocols/mesa
 
 #ln -svfT %{_datadir}/wayland-protocols third_party/wayland-protocols/src
@@ -862,6 +856,7 @@
 export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--hash-size=30 
-Wl,--reduce-memory-overheads"
 %endif
 %endif
+export LDFLAGS="$LDFLAGS --param ggc-min-expand=30 --param 
ggc-min-heapsize=4096"
 
 %endif
 test "$_link_threads" -le 0 && _link_threads=1
@@ -870,10 +865,13 @@
 
 gn_system_libraries=(
     brotli
+    double-conversion
     ffmpeg
     flac
     flatbuffers
     fontconfig
+    freetype
+    harfbuzz-ng
     icu
     libdrm
     libevent
@@ -887,6 +885,7 @@
     opus
     re2
     snappy
+    woff2
     zlib
 )
 
@@ -901,6 +900,8 @@
    absl_flags
    absl_functional
    absl_hash
+   absl_log
+   absl_log_internal
    absl_memory
    absl_meta
    absl_numeric
@@ -942,11 +943,6 @@
 gn_system_libraries+=( dav1d )
 %endif
 
-%if %{with system_double_conversion}
-find base/third_party/double_conversion -type f ! -name "*.gn" -a ! -name 
"*.gni" -delete
-gn_system_libraries+=( double-conversion )
-%endif
-
 %if %{with system_nvctrl}
 find third_party/angle/src/third_party/libXNVCtrl/ -type f ! -name "*.gn" -a ! 
-name "*.gni" -delete
 gn_system_libraries+=( libXNVCtrl )
@@ -968,25 +964,11 @@
 )
 %endif
 
-%if %{with system_harfbuzz}
-find third_party/harfbuzz-ng -type f ! -name "*.gn" -a ! -name "*.gni" -a ! 
-path "third_party/harfbuzz-ng/utils/hb_scoped.h" -delete
-gn_system_libraries+=( harfbuzz-ng )
-%endif
-
-%if %{with system_freetype}
-find third_party/freetype -type f ! -name "*.gn" -a ! -name "*.gni" -delete
-gn_system_libraries+=( freetype )
-%endif
-
 %if %{with system_vpx}
 find third_party/libvpx -type f ! -name "*.gn" -a ! -name "*.gni" -delete
 gn_system_libraries+=( libvpx )
 %endif
 
-%if %{with system_woff2}
-find third_party/woff2 -type f ! -name "*.gn" -a ! -name "*.gni" -delete
-gn_system_libraries+=( woff2 )
-%endif
 
 %if %{with system_yuv}
 find third_party/libyuv -type f ! -name "*.gn" -a ! -name "*.gni" -delete
@@ -1179,12 +1161,9 @@
 myconf_gn+=" use_system_lcms2=true"
 myconf_gn+=" use_system_libopenjpeg2=true"
 myconf_gn+=" use_system_wayland_scanner=true"
-%if %{with system_harfbuzz}
+myconf_gn+=" use_system_libwayland=true"
 myconf_gn+=" use_system_harfbuzz=true"
-%endif
-%if %{with system_freetype}
 myconf_gn+=" use_system_freetype=true"
-%endif
 myconf_gn+=" use_system_cares=true"
 %if %{with system_nghttp2}
 myconf_gn+=" use_system_nghttp2=true"

++++++ CVE-2022-43548.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.533447430 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.533447430 +0100
@@ -23,12 +23,13 @@
 index ab1cdf1fa5bd..8001d893e1fd 100644
 --- a/third_party/electron_node/src/inspector_socket.cc
 +++ b/third_party/electron_node/src/inspector_socket.cc
-@@ -162,24 +162,70 @@ static std::string TrimPort(const std::string& host) {
+@@ -162,25 +162,70 @@ static std::string TrimPort(const std::string& host) {
  }
  
  static bool IsIPAddress(const std::string& host) {
 -  if (host.length() >= 4 && host.front() == '[' && host.back() == ']')
 -    return true;
+-  if (host.front() == '0') return false;
 -  uint_fast16_t accum = 0;
 -  uint_fast8_t quads = 0;
 -  bool empty = true;

++++++ NumberFormat-icu71-incrementExact.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.549447516 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.553447537 +0100
@@ -50,23 +50,4 @@
                      .withMinFraction(digit_options.minimum_fraction_digits);
    }
    if (trailing_zeros == JSNumberFormat::ShowTrailingZeros::kHide) {
-diff --git a/test/test262/test262.status b/test/test262/test262.status
-index d47d96c9dae..8d1e39d65d4 100644
---- a/v8/test/test262/test262.status
-+++ b/v8/test/test262/test262.status
-@@ -3128,14 +3128,6 @@
-   'language/identifiers/start-unicode-9*': [FAIL],
- }],  # no_i18n == True
- 
--['arch == arm64', {
--  # Problem in V8 Android Arm64 - N5X
--  'intl402/NumberFormat/prototype/format/format-rounding-increment-1000': 
[SKIP],
--  'intl402/NumberFormat/prototype/format/format-rounding-increment-2000': 
[SKIP],
--  'intl402/NumberFormat/prototype/format/format-rounding-increment-2500': 
[SKIP],
--  'intl402/NumberFormat/prototype/format/format-rounding-increment-5000': 
[SKIP],
--}],  # 'arch == arm64'
--
- ['arch == arm or arch == mipsel or arch == mips or arch == arm64 or arch == 
mips64 or arch == mips64el', {
- 
-   # Causes stack overflow on simulators due to eager compilation of
 

++++++ base-system-nspr.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.585447709 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.585447709 +0100
@@ -17,7 +17,7 @@
 +pkg_config("system_nspr") {
 +  packages = [ "nspr" ]
 +}
- # Copyright (c) 2013 The Chromium Authors. All rights reserved.
+ # Copyright 2013 The Chromium Authors
  # Use of this source code is governed by a BSD-style license that can be
  # found in the LICENSE file.
 @@ -826,8 +831,6 @@

++++++ chromium-102-compiler.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.605447817 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.609447839 +0100
@@ -99,7 +99,7 @@
    cflags = []
    ldflags = []
    defines = []
-@@ -1227,45 +1203,6 @@
+@@ -1227,46 +1203,6 @@
      }
    }
  
@@ -122,6 +122,7 @@
 -      # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
 -      # and -fcoverage-compilation-dir=.
 -      cflags += [ "-ffile-compilation-dir=." ]
+-      swiftflags += [ "-file-compilation-dir=." ]
 -    }
 -    if (!is_win) {
 -      # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
@@ -182,7 +183,7 @@
 -    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
 -        current_cpu != "s390" && current_cpu != "ppc64" &&
 -        current_cpu != "mips" && current_cpu != "mips64" &&
--        current_cpu != "riscv64") {
+-        current_cpu != "riscv64" && current_cpu != "loong64") {
 -      # Non-chromium code is not guaranteed to compile cleanly with
 -      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
 -      # disabled, so only do that for Release build.

++++++ chromium-108-abseil-shims.patch ++++++
--- /dev/null
+++ b/build/linux/unbundle/absl_log.gn
@@ -0,0 +1,13 @@
+source_set("basic_log_test") {}
+source_set("check_test") {}
+source_set("die_if_null_test") {}
+source_set("flags_test") {}
+source_set("globals_test") {}
+source_set("log_entry_test") {}
+source_set("log_format_test") {}
+source_set("log_macro_hygiene_test") {}
+source_set("log_modifier_methods_test") {}
+source_set("log_sink_test") {}
+source_set("log_streamer_test") {}
+source_set("scoped_mock_log_test") {}
+source_set("stripping_test") {}
--- /dev/null
+++ b/build/linux/unbundle/absl_log_internal.gn
@@ -0,0 +1,1 @@
+source_set("stderr_log_sink_test") {}
--- a/build/linux/unbundle/replace_gn_files.py
+++ b/build/linux/unbundle/replace_gn_files.py
@@ -15,7 +15,7 @@
 
 
 REPLACEMENTS = {
-  # Use system libabsl_2xxx. These 18 shims MUST be used together.
+  # Use system libabsl_2xxx. These 20 shims MUST be used together.
   'absl_algorithm': 'third_party/abseil-cpp/absl/algorithm/BUILD.gn',
   'absl_base': 'third_party/abseil-cpp/absl/base/BUILD.gn',
   'absl_cleanup': 'third_party/abseil-cpp/absl/cleanup/BUILD.gn',
@@ -24,6 +24,8 @@
   'absl_flags': 'third_party/abseil-cpp/absl/flags/BUILD.gn',
   'absl_functional': 'third_party/abseil-cpp/absl/functional/BUILD.gn',
   'absl_hash': 'third_party/abseil-cpp/absl/hash/BUILD.gn',
+  'absl_log': 'third_party/abseil-cpp/absl/log/BUILD.gn',
+  'absl_log_internal': 'third_party/abseil-cpp/absl/log/internal/BUILD.gn',
   'absl_memory': 'third_party/abseil-cpp/absl/memory/BUILD.gn',
   'absl_meta': 'third_party/abseil-cpp/absl/meta/BUILD.gn',
   'absl_numeric': 'third_party/abseil-cpp/absl/numeric/BUILD.gn',
--- a/build/linux/unbundle/absl_container.gn
+++ b/build/linux/unbundle/absl_container.gn
@@ -109,6 +109,8 @@
   public_configs = [ ":system_absl_node_hash_set" ]
 }
 
+source_set("common_policy_traits_test") {
+}
 source_set("inlined_vector_test") {
 }
 source_set("node_slot_policy_test") {
--- a/build/linux/unbundle/absl_functional.gn
+++ b/build/linux/unbundle/absl_functional.gn
@@ -45,3 +45,5 @@
   deps = [ ":function_ref_shim" ]
   public_configs = [ ":system_absl_function_ref" ]
 }
+
+source_set("any_invocable_test") {}

++++++ chromium-98-EnumTable-crash.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.645448032 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.645448032 +0100
@@ -1,7 +1,7 @@
 diff --git a/components/cast_channel/enum_table.h 
b/components/cast_channel/enum_table.h
 index 842553a..89de703 100644
---- a/components/cast_channel/enum_table.h
-+++ b/components/cast_channel/enum_table.h
+--- a/components/media_router/common/providers/cast/channel/enum_table.h
++++ b/components/media_router/common/providers/cast/channel/enum_table.h
 @@ -8,6 +8,7 @@
  #include <cstdint>
  #include <cstring>

++++++ chromium-gcc11.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.665448139 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.669448162 +0100
@@ -1,15 +1,3 @@
-Index: electron-17.1.0/third_party/angle/src/libANGLE/HandleAllocator.cpp
-===================================================================
---- electron-17.1.0.orig/third_party/angle/src/libANGLE/HandleAllocator.cpp    
2022-03-07 17:22:29.553295179 +0100
-+++ electron-17.1.0/third_party/angle/src/libANGLE/HandleAllocator.cpp 
2022-03-09 08:25:10.346569313 +0100
-@@ -9,6 +9,7 @@
- 
- #include "libANGLE/HandleAllocator.h"
- 
-+#include <limits>
- #include <algorithm>
- #include <functional>
- 
 Index: 
electron-17.1.0/third_party/perfetto/src/trace_processor/containers/string_pool.cc
 ===================================================================
 --- 
electron-17.1.0.orig/third_party/perfetto/src/trace_processor/containers/string_pool.cc
    2022-03-07 17:28:24.814737660 +0100

++++++ chromium-norar.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.681448226 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.681448226 +0100
@@ -48,18 +48,19 @@
        ":download_type_util",
 -      ":rar_analyzer",
        "//components/safe_browsing/core/common",
+       "//third_party/lzma_sdk/google:seven_zip_reader",
      ]
- 
 Index: electron-17.1.0/chrome/common/safe_browsing/DEPS
 ===================================================================
 --- electron-17.1.0.orig/chrome/common/safe_browsing/DEPS      2022-03-07 
17:20:32.164818543 +0100
 +++ electron-17.1.0/chrome/common/safe_browsing/DEPS   2022-03-09 
08:25:16.218473339 +0100
-@@ -3,6 +3,5 @@ include_rules = [
+@@ -3,7 +3,6 @@ include_rules = [
    "+components/safe_browsing/core/common",
    "+third_party/maldoca",
    "+third_party/protobuf",
 -  "+third_party/unrar",
    "+third_party/zlib",
+   "+third_party/lzma_sdk/google",
  ]
 Index: electron-17.1.0/chrome/services/file_util/BUILD.gn
 ===================================================================
@@ -77,7 +78,7 @@
 ===================================================================
 --- electron-17.1.0.orig/chrome/services/file_util/safe_archive_analyzer.cc    
2022-03-07 17:20:32.264818949 +0100
 +++ electron-17.1.0/chrome/services/file_util/safe_archive_analyzer.cc 
2022-03-09 08:25:16.218473339 +0100
-@@ -44,10 +44,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
+@@ -44,12 +44,16 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
  void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
                                           base::File temporary_file,
                                           AnalyzeRarFileCallback callback) {
@@ -92,4 +93,6 @@
 +  NOTREACHED();
 +#endif
  }
+ 
+ void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
 

++++++ 
crashpad-elf_image_reader-ProgramHeaderTableSpecific-expected-unqualified-id.patch
 ++++++
>From 0acdadf032955add4a996332c19e08f7cecd7558 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <sth...@googlemail.com>
Date: Fri, 30 Sep 2022 14:07:07 +0200
Subject: [PATCH] snapshot: remove redundant template parameter

GCC 12 does not allow it in C++20 mode anymore.

Bug: chromium:819294
Change-Id: I025dda8046739fefc4ff449d4496ef496374eff5
Reviewed-on: 
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3929186
Commit-Queue: Mark Mentovai <m...@chromium.org>
Reviewed-by: Mark Mentovai <m...@chromium.org>
---
 snapshot/elf/elf_image_reader.cc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/snapshot/elf/elf_image_reader.cc b/snapshot/elf/elf_image_reader.cc
index 9d3ba43ab..30e8b987c 100644
--- a/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader.cc
+++ b/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader.cc
@@ -56,14 +56,14 @@ template <typename PhdrType>
 class ElfImageReader::ProgramHeaderTableSpecific
     : public ElfImageReader::ProgramHeaderTable {
  public:
-  ProgramHeaderTableSpecific<PhdrType>() {}
+  ProgramHeaderTableSpecific() {}
 
-  ProgramHeaderTableSpecific<PhdrType>(
+  ProgramHeaderTableSpecific(
       const ProgramHeaderTableSpecific<PhdrType>&) = delete;
   ProgramHeaderTableSpecific<PhdrType>& operator=(
       const ProgramHeaderTableSpecific<PhdrType>&) = delete;
 
-  ~ProgramHeaderTableSpecific<PhdrType>() {}
+  ~ProgramHeaderTableSpecific() {}
 
   bool Initialize(const ProcessMemoryRange& memory,
                   VMAddress address,

++++++ create_tarball.sh ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.725448462 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.729448483 +0100
@@ -213,7 +213,6 @@
     third_party/electron_node #Integral part of electron
     third_party/emoji-segmenter #not available as a shared library
     third_party/fdlibm #derived code, not vendored dep
-    third_party/harfbuzz-ng/utils  #There are new google files within this 
directory.
     third_party/highway #Not in Leap
     third_party/hunspell #heavily forked version
     third_party/iccjpeg #not in any distro
@@ -226,6 +225,7 @@
     third_party/libaddressinput #seems not to be available as a separate 
library
     third_party/libaom #version in Factory is too old
     third_party/libaom/source/libaom/third_party/fastfeat
+    third_party/libaom/source/libaom/third_party/SVT-AV1
     third_party/libaom/source/libaom/third_party/vector
     third_party/libaom/source/libaom/third_party/x86inc
     third_party/libavif #leap too old
@@ -253,7 +253,6 @@
     third_party/metrics_proto #integral part of chrome
     third_party/modp_b64 #not in any distro
     third_party/node #javascript code
-    third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2/
     third_party/one_euro_filter #not in any distro
     third_party/openscreen #Integral part of chrome, needed even if you're 
building without.
     third_party/openscreen/src/third_party/mozilla #derived code, not vendored 
dependency
@@ -275,8 +274,6 @@
     third_party/rnnoise #use of private headers
     third_party/shell-encryption #not available on any distro, also heavily 
patched
     third_party/skia #integral part of chrome
-    third_party/skia/include/third_party/skcms #part of skia, not available as 
a separate library
-    third_party/skia/third_party/skcms #part of skia, not available as a 
separate library
     third_party/smhasher #not in Rawhide or Factory. AltLinux has it 
(libsmhasher) CONSIDER UNBUNDLING if we have it
     third_party/speech-dispatcher #Headers for a delay-loaded optional 
dependency
     third_party/sqlite #heavily forked version
@@ -306,7 +303,6 @@
     third_party/webrtc/rtc_base/third_party/sigslot #derived code, not 
vendored dep
     third_party/webrtc_overrides #Integral part of chrome
     third_party/widevine #Integral part of chrome. Needed.
-    third_party/wayland/protocol #added chromium code
     third_party/wayland/stubs #added chromium code
     third_party/wayland/wayland_scanner_wrapper.py #wrapper script
     third_party/wayland-protocols/gtk/gdk/wayland/protocol #Imagine 
downloading 100MB of gtk source just to get one file.

++++++ disable-catapult.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.741448549 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.745448570 +0100
@@ -204,7 +204,7 @@
 --- a/content/browser/tracing/BUILD.gn
 +++ /dev/null
 @@ -1,39 +0,0 @@
--# Copyright 2014 The Chromium Authors. All rights reserved.
+-# Copyright 2014 The Chromium Authors
 -# Use of this source code is governed by a BSD-style license that can be
 -# found in the LICENSE file.
 -

++++++ disable-webspeech.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.761448656 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.765448678 +0100
@@ -158,9 +158,9 @@
    map->Add<blink::mojom::SpeechSynthesis>(base::BindRepeating(
        &RenderFrameHostImpl::GetSpeechSynthesis, base::Unretained(host)));
 @@ -1099,6 +1107,7 @@ void PopulateBinderMapWithContext(
-     map->Add<blink::mojom::DirectSocketsService>(
-         base::BindRepeating(&DirectSocketsServiceImpl::CreateForFrame));
-   }
+ #if !BUILDFLAG(IS_ANDROID)
+   map->Add<blink::mojom::DirectSocketsService>(
+       base::BindRepeating(&DirectSocketsServiceImpl::CreateForFrame));
 +#if BUILDFLAG(ENABLE_WEB_SPEECH)
    map->Add<media::mojom::SpeechRecognitionContext>(base::BindRepeating(
        &EmptyBinderForFrame<media::mojom::SpeechRecognitionContext>));

++++++ document_loader-private-DecodedBodyData.patch ++++++
>From 82827b0a8683c5c9c7285db48cefb7fa8ea92ffe Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdap...@igalia.com>
Date: Thu, 20 Oct 2022 16:27:27 +0000
Subject: [PATCH] GCC: declare DocumentLoader::DecodedBodyData as public

Fix build with GCC as DocumentLoader::DecodedBodyData was not
declaring SameSizeAsDocumentLoader. This works in Clang because
declaring it as friend of DocumentLoader implicitly declares it
as friend of its class members. But GCC does not accept that.

Bug: 819294
Change-Id: Iba6a4138fbd90831e7a65fae8445ad4b1736594f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3963839
Commit-Queue: José Dapena Paz <jdap...@igalia.com>
Reviewed-by: Nate Chapin <jap...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1061645}
---

diff --git a/third_party/blink/renderer/core/loader/document_loader.h 
b/third_party/blink/renderer/core/loader/document_loader.h
index b22fe2a..37a4230 100644
--- a/third_party/blink/renderer/core/loader/document_loader.h
+++ b/third_party/blink/renderer/core/loader/document_loader.h
@@ -434,6 +434,11 @@
       const KURL& url,
       const ResourceResponse& response);
 
+  // This needs to be kept as public to be accessible from
+  // SameSizeAsDocumentLoader as GCC will fail to allow access
+  // even if it is friend of DocumentLoader
+  class DecodedBodyData;
+
  protected:
   // Based on its MIME type, if the main document's response corresponds to an
   // MHTML archive, then every resources will be loaded from this archive.
@@ -465,7 +470,6 @@
   friend struct SameSizeAsDocumentLoader;
   class BodyData;
   class EncodedBodyData;
-  class DecodedBodyData;
 
   Frame* CalculateOwnerFrame();
   scoped_refptr<SecurityOrigin> CalculateOrigin(Document* owner_document);


++++++ electron_serial_delegate-ambiguous-Observer.patch ++++++
--- a/electron/shell/browser/serial/electron_serial_delegate.h  2022-09-16 
12:31:19.704082600 +0200
+++ b/electron/shell/browser/serial/electron_serial_delegate.h  2022-09-16 
21:30:57.247975900 +0200
@@ -38,9 +38,9 @@
   device::mojom::SerialPortManager* GetPortManager(
       content::RenderFrameHost* frame) override;
   void AddObserver(content::RenderFrameHost* frame,
-                   Observer* observer) override;
+                   content::SerialDelegate::Observer* observer) override;
   void RemoveObserver(content::RenderFrameHost* frame,
-                      Observer* observer) override;
+                      content::SerialDelegate::Observer* observer) override;
 
   void DeleteControllerForFrame(content::RenderFrameHost* render_frame_host);
 

++++++ enable-jxl.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.849449129 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.849449129 +0100
@@ -3,11 +3,11 @@
 --- a/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
 @@ -767,7 +767,7 @@
-     "OffsetParentNewSpecBehavior", base::FEATURE_DISABLED_BY_DEFAULT};
+                                                          "delay-in-ms", 0};
  
  // Enables the JPEG XL Image File Format (JXL).
--const base::Feature kJXL{"JXL", base::FEATURE_DISABLED_BY_DEFAULT};
-+const base::Feature kJXL{"JXL", base::FEATURE_ENABLED_BY_DEFAULT};
+-BASE_FEATURE(kJXL, "JXL", base::FEATURE_DISABLED_BY_DEFAULT);
++BASE_FEATURE(kJXL, "JXL", base::FEATURE_ENABLED_BY_DEFAULT);
  
  // Make all pending 'display: auto' web fonts enter the swap or failure period
  // immediately before reaching the LCP time limit (~2500ms), so that web fonts

++++++ first_party_set_parser-IssueWithMetadata-no-known-conversion.patch ++++++
--- src/content/browser/first_party_sets/first_party_set_parser.cc.old  
2022-11-30 11:28:02.726199100 +0100
+++ src/content/browser/first_party_sets/first_party_set_parser.cc      
2022-12-01 06:53:17.058993800 +0100
@@ -182,7 +182,7 @@
           ParseSiteAndValidate(item, set_entries, elements, emit_errors);
       if (!alias_or_error.has_value()) {
         return base::unexpected(
-            ParseError(alias_or_error.error(), {kCCTLDsField, site, i}));
+            ParseError(alias_or_error.error(), {kCCTLDsField, site, 
static_cast<int>(i)}));
       }
 
       const net::SchemefulSite alias = alias_or_error.value();
@@ -195,7 +195,7 @@
         if (warnings) {
           warnings->push_back(
               ParseWarning(ParseWarningType::kAliasNotCctldVariant,
-                           {kCCTLDsField, site, i}));
+                           {kCCTLDsField, site, static_cast<int>(i)}));
         }
         continue;
       }
@@ -230,7 +230,7 @@
     base::expected<net::SchemefulSite, ParseErrorType> site_or_error =
         ParseSiteAndValidate(item, set_entries, other_sets_sites, emit_errors);
     if (!site_or_error.has_value())
-      return ParseError(site_or_error.error(), {descriptor.field_name, index});
+      return ParseError(site_or_error.error(), {descriptor.field_name, 
static_cast<int>(index)});
     if (exempt_from_limits || !descriptor.size_limit.has_value() ||
         static_cast<int>(index) < descriptor.size_limit.value()) {
       set_entries.emplace_back(

++++++ fpic.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.889449345 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.893449366 +0100
@@ -95,11 +95,11 @@
 +  asmflags = ["-fpic", "-fno-semantic-interposition"]
  }
  
- shared_library("qt5_shim") {
+ if (!use_sysroot) {
 @@ -76,6 +78,8 @@
-     # 3. Manually add copyright header.
-     "qt_shim_moc.cc",
-   ]
+     sources += get_target_outputs(":generate_moc")
+     deps += [ ":generate_moc" ]
+   }
 +  cflags = ["-fpic", "-fno-semantic-interposition"]
 +  asmflags = ["-fpic", "-fno-semantic-interposition"]
  }

++++++ harfbuzz-replace-chromium-scoped-type.patch ++++++
>From aa2ff2bee16776301bd840a4e18bdebdfb916822 Mon Sep 17 00:00:00 2001
From: Munira Tursunova <moon...@google.com>
Date: Tue, 04 Oct 2022 14:20:04 +0000
Subject: [PATCH] Replacing Chromium scoped types with HarfBuzz custom types.

Removed the Chromium side type HbScoped and move to the
HarfBuzz custom type.

Bug: 1363228
Change-Id: I9d390808953e2c36651533cbf5f4958beff2e14d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3927859
Reviewed-by: Dominik Röttsches <dr...@chromium.org>
Reviewed-by: Rune Lillesveen <futh...@chromium.org>
Reviewed-by: Calder Kitagawa <ckitag...@chromium.org>
Commit-Queue: Munira Tursunova <moon...@google.com>
Cr-Commit-Position: refs/heads/main@{#1054692}
---

diff --git a/components/paint_preview/DEPS b/components/paint_preview/DEPS
index bcc6288..28f2c7a 100644
--- a/components/paint_preview/DEPS
+++ b/components/paint_preview/DEPS
@@ -3,7 +3,6 @@
   "+components/memory_pressure",
   "+mojo/public/cpp",
   "+third_party/harfbuzz-ng/src/src",
-  "+third_party/harfbuzz-ng/utils/hb_scoped.h",
   "+third_party/skia/include/core",
   "+ui/gfx/geometry",
 ]
diff --git a/components/paint_preview/common/BUILD.gn 
b/components/paint_preview/common/BUILD.gn
index 377dc92..c39757d 100644
--- a/components/paint_preview/common/BUILD.gn
+++ b/components/paint_preview/common/BUILD.gn
@@ -37,7 +37,6 @@
     "//components/crash/core/common:crash_key_lib",
     "//skia",
     "//third_party:freetype_harfbuzz",
-    "//third_party/harfbuzz-ng:hb_scoped_util",
     "//ui/gfx/geometry",
     "//url",
   ]
diff --git a/components/paint_preview/common/subset_font.cc 
b/components/paint_preview/common/subset_font.cc
index 8298861d5..147dfc3 100644
--- a/components/paint_preview/common/subset_font.cc
+++ b/components/paint_preview/common/subset_font.cc
@@ -7,6 +7,7 @@
 // clang-format off
 #include <hb.h>
 #include <hb-subset.h>
+#include <hb-cplusplus.hh>
 // clang-format on
 
 #include <memory>
@@ -17,7 +18,6 @@
 #include "base/callback.h"
 #include "base/numerics/safe_conversions.h"
 #include "components/crash/core/common/crash_key.h"
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
 #include "third_party/skia/include/core/SkStream.h"
 #include "third_party/skia/include/core/SkTypeface.h"
 
@@ -45,11 +45,11 @@
 }
 
 // Converts SkData to a hb_blob_t.
-HbScoped<hb_blob_t> MakeBlob(sk_sp<SkData> data) {
+hb::unique_ptr<hb_blob_t> MakeBlob(sk_sp<SkData> data) {
   if (!data ||
       !base::IsValueInRangeForNumericType<unsigned int, size_t>(data->size()))
-    return nullptr;
-  return HbScoped<hb_blob_t>(
+    return hb::unique_ptr<hb_blob_t>(nullptr);
+  return hb::unique_ptr<hb_blob_t>(
       hb_blob_create(static_cast<const char*>(data->data()),
                      static_cast<unsigned int>(data->size()),
                      HB_MEMORY_MODE_READONLY, nullptr, nullptr));
@@ -72,8 +72,9 @@
                                                   family_name.c_str());
   int ttc_index = 0;
   sk_sp<SkData> data = StreamToData(typeface->openStream(&ttc_index));
-  HbScoped<hb_face_t> face(hb_face_create(MakeBlob(data).get(), ttc_index));
-  HbScoped<hb_subset_input_t> input(hb_subset_input_create_or_fail());
+  hb::unique_ptr<hb_face_t> face(
+      hb_face_create(MakeBlob(data).get(), ttc_index));
+  hb::unique_ptr<hb_subset_input_t> input(hb_subset_input_create_or_fail());
   if (!face || !input) {
     return nullptr;
   }
@@ -102,14 +103,16 @@
   hb_set_add(skip_subset, HB_TAG('G', 'S', 'U', 'B'));
   hb_set_add(skip_subset, HB_TAG('G', 'P', 'O', 'S'));
 
-  HbScoped<hb_face_t> subset_face(hb_subset_or_fail(face.get(), input.get()));
+  hb::unique_ptr<hb_face_t> subset_face(
+      hb_subset_or_fail(face.get(), input.get()));
   if (!subset_face) {
     return nullptr;
   }
   // Store the correct collection index for the subsetted font.
   const int final_ttc_index = hb_face_get_index(subset_face.get());
 
-  HbScoped<hb_blob_t> subset_blob(hb_face_reference_blob(subset_face.get()));
+  hb::unique_ptr<hb_blob_t> subset_blob(
+      hb_face_reference_blob(subset_face.get()));
   if (!subset_blob) {
     return nullptr;
   }
diff --git a/third_party/blink/renderer/platform/BUILD.gn 
b/third_party/blink/renderer/platform/BUILD.gn
index 88cef3c..ae88e5a 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1683,7 +1683,6 @@
     "//third_party/blink/renderer/platform/wtf",
     "//third_party/ced",
     "//third_party/emoji-segmenter",
-    "//third_party/harfbuzz-ng:hb_scoped_util",
     "//third_party/icu",
     "//third_party/libyuv",
     "//third_party/one_euro_filter",
diff --git 
a/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc 
b/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc
index 7c7057b..d43668f1 100644
--- a/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc
+++ b/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc
@@ -7,10 +7,10 @@
 // Include HarfBuzz to have a cross-platform way to retrieve table tags without
 // having to rely on the platform being able to instantiate this font format.
 #include <hb.h>
+#include <hb-cplusplus.hh>
 
 #include "base/sys_byteorder.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
 #include "third_party/skia/include/core/SkTypeface.h"
 
 namespace blink {
@@ -27,7 +27,8 @@
   const unsigned int kMinCOLRHeaderSize = 14;
   if (table_tags.size() && table_tags.Contains(kCOLRTag) &&
       table_tags.Contains(HB_TAG('C', 'P', 'A', 'L'))) {
-    HbScoped<hb_blob_t> table_blob(hb_face_reference_table(face, kCOLRTag));
+    hb::unique_ptr<hb_blob_t> table_blob(
+        hb_face_reference_table(face, kCOLRTag));
     if (hb_blob_get_length(table_blob.get()) < kMinCOLRHeaderSize)
       return FontFormatCheck::COLRVersion::kNoCOLR;
 
@@ -51,11 +52,11 @@
 }  // namespace
 
 FontFormatCheck::FontFormatCheck(sk_sp<SkData> sk_data) {
-  HbScoped<hb_blob_t> font_blob(
+  hb::unique_ptr<hb_blob_t> font_blob(
       hb_blob_create(reinterpret_cast<const char*>(sk_data->bytes()),
                      base::checked_cast<unsigned>(sk_data->size()),
                      HB_MEMORY_MODE_READONLY, nullptr, nullptr));
-  HbScoped<hb_face_t> face(hb_face_create(font_blob.get(), 0));
+  hb::unique_ptr<hb_face_t> face(hb_face_create(font_blob.get(), 0));
 
   unsigned table_count = 0;
   table_count = hb_face_get_table_tags(face.get(), 0, nullptr, nullptr);
diff --git 
a/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.cc 
b/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.cc
index 5e6d1f2..73b984a 100644
--- 
a/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.cc
+++ 
b/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.cc
@@ -5,10 +5,10 @@
 // clang-format off
 #include <hb.h>
 #include <hb-aat.h>
+#include <hb-cplusplus.hh>
 // clang-format on
 
 #include 
"third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.h"
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
 
 namespace blink {
 
@@ -146,9 +146,9 @@
     hb_face_t* const hb_face =
         hb_font_get_face(harfbuzz_face_->GetScaledFont());
 
-    HbScoped<hb_blob_t> morx_blob(
+    hb::unique_ptr<hb_blob_t> morx_blob(
         hb_face_reference_table(hb_face, HB_TAG('m', 'o', 'r', 'x')));
-    HbScoped<hb_blob_t> mort_blob(
+    hb::unique_ptr<hb_blob_t> mort_blob(
         hb_face_reference_table(hb_face, HB_TAG('m', 'o', 'r', 't')));
 
     // TODO(crbug.com/911149): Use hb_aat_layout_has_substitution() for
diff --git 
a/third_party/blink/renderer/platform/fonts/opentype/open_type_cpal_lookup.cc 
b/third_party/blink/renderer/platform/fonts/opentype/open_type_cpal_lookup.cc
index 86c289c..98cbd7a 100644
--- 
a/third_party/blink/renderer/platform/fonts/opentype/open_type_cpal_lookup.cc
+++ 
b/third_party/blink/renderer/platform/fonts/opentype/open_type_cpal_lookup.cc
@@ -6,11 +6,11 @@
 
 #include 
"third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
 #include "third_party/skia/include/core/SkStream.h"
 
 // clang-format off
 #include <hb.h>
+#include <hb-cplusplus.hh>
 #include <hb-ot.h>
 // clang-format on
 
@@ -28,7 +28,7 @@
   if (!typeface || !typeface->getTableSize(kCpalTag))
     return absl::nullopt;
 
-  HbScoped<hb_face_t> face(HbFaceFromSkTypeface(typeface));
+  hb::unique_ptr<hb_face_t> face(HbFaceFromSkTypeface(typeface));
 
   if (!face || !hb_ot_color_has_palettes(face.get()))
     return absl::nullopt;
diff --git 
a/third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.cc 
b/third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.cc
index ebab0fa8..4ecd886 100644
--- a/third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.cc
+++ b/third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.cc
@@ -4,12 +4,12 @@
 
 #include 
"third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.h"
 
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
 #include "third_party/skia/include/core/SkStream.h"
 #include "third_party/skia/include/core/SkTypeface.h"
 
 // clang-format off
 #include <hb.h>
+#include <hb-cplusplus.hh>
 #include <hb-ot.h>
 // clang-format on
 
@@ -23,11 +23,11 @@
     return output;
   sk_sp<SkData> sk_data =
       SkData::MakeFromStream(stream.get(), stream->getLength());
-  HbScoped<hb_blob_t> blob(
+  hb::unique_ptr<hb_blob_t> blob(
       hb_blob_create(reinterpret_cast<const char*>(sk_data->bytes()),
                      base::checked_cast<unsigned>(sk_data->size()),
                      HB_MEMORY_MODE_READONLY, nullptr, nullptr));
-  HbScoped<hb_face_t> face(hb_face_create(blob.get(), 0));
+  hb::unique_ptr<hb_face_t> face(hb_face_create(blob.get(), 0));
   unsigned axes_count = hb_ot_var_get_axis_count(face.get());
   std::unique_ptr<hb_ot_var_axis_info_t[]> axes =
       std::make_unique<hb_ot_var_axis_info_t[]>(axes_count);
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc 
b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
index b4bb5a3..b6ee0a8f 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
@@ -32,6 +32,7 @@
 
 // clang-format off
 #include <hb.h>
+#include <hb-cplusplus.hh>
 #include <hb-ot.h>
 // clang-format on
 
@@ -52,7 +53,6 @@
 #include "third_party/blink/renderer/platform/resolution_units.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
 #include "third_party/skia/include/core/SkPaint.h"
 #include "third_party/skia/include/core/SkPath.h"
 #include "third_party/skia/include/core/SkPoint.h"
@@ -203,7 +203,7 @@
   const hb_codepoint_t kInvalidCodepoint = static_cast<hb_codepoint_t>(-1);
   hb_codepoint_t space = kInvalidCodepoint;
 
-  HbScoped<hb_set_t> glyphs(hb_set_create());
+  hb::unique_ptr<hb_set_t> glyphs(hb_set_create());
 
   // Check whether computing is needed and compute for gpos/gsub.
   if (features & kKerning &&
@@ -391,8 +391,8 @@
 }
 
 // TODO(yosin): We should move |CreateFace()| to "harfbuzz_font_cache.cc".
-static HbScoped<hb_face_t> CreateFace(FontPlatformData* platform_data) {
-  HbScoped<hb_face_t> face;
+static hb::unique_ptr<hb_face_t> CreateFace(FontPlatformData* platform_data) {
+  hb::unique_ptr<hb_face_t> face;
 
   sk_sp<SkTypeface> typeface = sk_ref_sp(platform_data->Typeface());
   CHECK(typeface);
@@ -402,8 +402,8 @@
 
   // Fallback to table copies if there is no in-memory access.
   if (!face) {
-    face.reset(hb_face_create_for_tables(HarfBuzzSkiaGetTable, typeface.get(),
-                                         nullptr));
+    face = hb::unique_ptr<hb_face_t>(hb_face_create_for_tables(
+        HarfBuzzSkiaGetTable, typeface.get(), nullptr));
   }
 
   DCHECK(face);
@@ -415,7 +415,7 @@
 static scoped_refptr<HarfBuzzFontData> CreateHarfBuzzFontData(
     hb_face_t* face,
     SkTypeface* typeface) {
-  HbScoped<hb_font_t> ot_font(hb_font_create(face));
+  hb::unique_ptr<hb_font_t> ot_font(hb_font_create(face));
   hb_ot_font_set_funcs(ot_font.get());
 
   int axis_count = typeface->getVariationDesignPosition(nullptr, 0);
@@ -445,7 +445,7 @@
     FontPlatformData* platform_data) {
   const auto& result = font_map_.insert(platform_data->UniqueID(), nullptr);
   if (result.is_new_entry) {
-    HbScoped<hb_face_t> face = CreateFace(platform_data);
+    hb::unique_ptr<hb_face_t> face = CreateFace(platform_data);
     result.stored_value->value =
         CreateHarfBuzzFontData(face.get(), platform_data->Typeface());
   }
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h 
b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
index cbfb1c15..eb0dcb75 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
@@ -38,9 +38,9 @@
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
 
 #include <hb.h>
+#include <hb-cplusplus.hh>
 
 namespace blink {
 
diff --git 
a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.cc
 
b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.cc
index 4561bc9..a2d2eb1d 100644
--- 
a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.cc
+++ 
b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.cc
@@ -16,9 +16,8 @@
 }  // namespace
 
 namespace blink {
-
-HbScoped<hb_face_t> HbFaceFromSkTypeface(sk_sp<SkTypeface> typeface) {
-  HbScoped<hb_face_t> return_face(nullptr);
+hb::unique_ptr<hb_face_t> HbFaceFromSkTypeface(sk_sp<SkTypeface> typeface) {
+  hb::unique_ptr<hb_face_t> return_face(nullptr);
   int ttc_index = 0;
 
   // Have openStream() write the ttc index of this typeface within the stream 
to
@@ -28,7 +27,7 @@
   if (tf_stream && tf_stream->getMemoryBase()) {
     const void* tf_memory = tf_stream->getMemoryBase();
     size_t tf_size = tf_stream->getLength();
-    HbScoped<hb_blob_t> face_blob(hb_blob_create(
+    hb::unique_ptr<hb_blob_t> face_blob(hb_blob_create(
         reinterpret_cast<const char*>(tf_memory),
         base::checked_cast<unsigned int>(tf_size), HB_MEMORY_MODE_READONLY,
         tf_stream.release(), DeleteTypefaceStream));
@@ -38,7 +37,8 @@
     // See https://github.com/harfbuzz/harfbuzz/issues/248 .
     unsigned int num_hb_faces = hb_face_count(face_blob.get());
     if (0 < num_hb_faces && static_cast<unsigned>(ttc_index) < num_hb_faces) {
-      return_face.reset(hb_face_create(face_blob.get(), ttc_index));
+      return_face =
+          hb::unique_ptr<hb_face_t>(hb_face_create(face_blob.get(), 
ttc_index));
     }
   }
   return return_face;
diff --git 
a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h
 
b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h
index 8817f06..f00d6f2 100644
--- 
a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h
+++ 
b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h
@@ -8,9 +8,8 @@
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/skia/include/core/SkTypeface.h"
 
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
-
 #include <hb.h>
+#include <hb-cplusplus.hh>
 
 namespace blink {
 
@@ -25,7 +24,7 @@
 // from copying all font tables on Mac into newly allocated memory, causing a
 // potentially quite large allocations (in the megabytes range). See the
 // implementation of SkTypeface_Mac::onOpenStream.
-PLATFORM_EXPORT HbScoped<hb_face_t> HbFaceFromSkTypeface(
+PLATFORM_EXPORT hb::unique_ptr<hb_face_t> HbFaceFromSkTypeface(
     sk_sp<SkTypeface> typeface);
 }  // namespace blink
 
diff --git 
a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc 
b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc
index 763f3a3..c50910df 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc
@@ -5,7 +5,6 @@
 #include 
"third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h"
 #include 
"third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h"
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
 
 namespace blink {
 
diff --git 
a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h 
b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h
index 1b0accf..eaedd0b 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h
@@ -7,7 +7,6 @@
 
 #include "third_party/blink/renderer/platform/fonts/font_metrics.h"
 #include "third_party/blink/renderer/platform/fonts/unicode_range_set.h"
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
 
 namespace blink {
 
diff --git 
a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h 
b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
index caf5d49..0d4b6f9 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
@@ -5,6 +5,8 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARFBUZZ_FONT_DATA_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARFBUZZ_FONT_DATA_H_
 
+#include <hb-cplusplus.hh>
+
 #include "base/check_op.h"
 #include "third_party/blink/renderer/platform/fonts/font_platform_data.h"
 #include 
"third_party/blink/renderer/platform/fonts/opentype/open_type_vertical_data.h"
@@ -81,7 +83,7 @@
     return vertical_data_;
   }
 
-  HbScoped<hb_font_t> unscaled_font_;
+  hb::unique_ptr<hb_font_t> unscaled_font_;
   SkFont font_;
 
   // Capture these scaled fallback metrics from FontPlatformData so that a
diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
index 522e164d..4b64e1b 100644
--- a/third_party/harfbuzz-ng/BUILD.gn
+++ b/third_party/harfbuzz-ng/BUILD.gn
@@ -41,6 +41,7 @@
       "src/src/hb-blob.h",
       "src/src/hb-buffer.h",
       "src/src/hb-common.h",
+      "src/src/hb-cplusplus.hh",
       "src/src/hb-deprecated.h",
       "src/src/hb-face.h",
       "src/src/hb-font.h",
@@ -409,15 +410,9 @@
   }
 }
 
-source_set("hb_scoped_util") {
-  sources = [ "utils/hb_scoped.h" ]
-  deps = [ "//third_party:freetype_harfbuzz" ]
-}
-
 fuzzer_test("hb_shape_fuzzer") {
   sources = [ "fuzz/hb_shape_fuzzer.cc" ]
   deps = [
-    ":hb_scoped_util",
     "//base",
     "//third_party:freetype_harfbuzz",
   ]
@@ -427,7 +422,6 @@
 fuzzer_test("hb_subset_fuzzer") {
   sources = [ "fuzz/hb_subset_fuzzer.cc" ]
   deps = [
-    ":hb_scoped_util",
     "//base",
     "//third_party:freetype_harfbuzz",
   ]
diff --git a/third_party/harfbuzz-ng/utils/hb_scoped.h 
b/third_party/harfbuzz-ng/utils/hb_scoped.h
deleted file mode 100644
index 887f6b90..0000000
--- a/third_party/harfbuzz-ng/utils/hb_scoped.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_HARFBUZZ_NG_UTILS_HB_SCOPED_H_
-#define THIRD_PARTY_HARFBUZZ_NG_UTILS_HB_SCOPED_H_
-
-// clang-format off
-#include <hb.h>
-#include <hb-subset.h>
-// clang-format on
-
-#include <memory>
-#include <type_traits>
-
-template <typename T>
-struct always_false : std::false_type {};
-
-template <class T>
-struct HbSpecializedDeleter {
-  inline void operator()(T* obj) {
-    static_assert(always_false<T>::value,
-                  "HbScoped is only allowed for HarfBuzz types that have a "
-                  "deleter specialization.");
-  }
-};
-
-// Defines a scoped pointer type HbScoped based on std::unique_ptr, using the
-// corresponsing HarfBuzz destructors to commonly used public HarfBuzz types.
-// The interface of HbScoped is the same as that of std::unique_ptr.
-//
-//  void MyFunction() {
-//    HbScoped<hb_blob_t> scoped_harfbuzz_blob(
-//        hb_blob_create(mydata, mylength));
-//
-//    DoSomethingWithBlob(scoped_harfbuzz_blob.get());
-//  }
-//
-// When |scoped_harfbuzz_buffer| goes out of scope, hb_blob_destroy() is called
-// for the hb_blob_t* created from hb_blob_create().
-template <class T>
-using HbScoped = std::unique_ptr<T, HbSpecializedDeleter<T>>;
-
-#define SPECIALIZED_DELETER_FOR_HARFBUZZ_TYPE(TYPE, DESTRUCTOR) \
-  template <>                                                   \
-  struct HbSpecializedDeleter<TYPE> {                           \
-    inline void operator()(TYPE* obj) { DESTRUCTOR(obj); }      \
-  };
-
-#define HB_TYPE_DESTRUCTOR_PAIRS_REPEAT(F) \
-  F(hb_blob_t, hb_blob_destroy)            \
-  F(hb_buffer_t, hb_buffer_destroy)        \
-  F(hb_face_t, hb_face_destroy)            \
-  F(hb_font_t, hb_font_destroy)            \
-  F(hb_set_t, hb_set_destroy)              \
-  F(hb_subset_input_t, hb_subset_input_destroy)
-
-HB_TYPE_DESTRUCTOR_PAIRS_REPEAT(SPECIALIZED_DELETER_FOR_HARFBUZZ_TYPE)
-
-#endif  // THIRD_PARTY_HARFBUZZ_NG_UTILS_HB_SCOPED_H_

++++++ ipcz-safe_math-Wuninitialized.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.921449517 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.925449539 +0100
@@ -7,7 +7,7 @@
 
 --- src/third_party/ipcz/src/util/safe_math.h.old      2022-10-20 
19:00:41.567140300 +0200
 +++ src/third_party/ipcz/src/util/safe_math.h  2022-10-29 22:46:07.312067200 
+0200
-@@ -17,24 +17,24 @@
+@@ -17,8 +17,8 @@
    // This throws a compile-time error on evaluating the constexpr if it can be
    // determined at compile-time as failing, otherwise it will fail an
    // assertion at runtime.
@@ -18,6 +18,7 @@
    return static_cast<Dst>(value);
  }
  
+@@ -38,16 +38,16 @@
  template <typename T>
  constexpr T CheckAdd(T a, T b) {
    T result;

++++++ partition_alloc-no-lto.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.957449711 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.961449732 +0100
@@ -24,33 +24,33 @@
 +  }
 +}
 +
- target(partition_alloc_target_type, "partition_alloc") {
+ component("partition_alloc") {
    sources = [
      "address_pool_manager.cc",
 @@ -262,20 +278,10 @@
-       "partition_alloc_base/mac/scoped_typeref.h",
-     ]
+     }
    }
--  if (current_cpu == "x64") {
--    defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
--    sources += [ "starscan/stack/asm/x64/push_registers_asm.cc" ]
--  } else if (current_cpu == "x86") {
--    defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
--    sources += [ "starscan/stack/asm/x86/push_registers_asm.cc" ]
--  } else if (current_cpu == "arm") {
--    defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
--    sources += [ "starscan/stack/asm/arm/push_registers_asm.cc" ]
--  } else if (current_cpu == "arm64") {
-+  deps = []
-+  if (current_cpu == "x64" || current_cpu == "x86" || current_cpu == "arm" || 
current_cpu == "arm64") {
-     defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
--    sources += [ "starscan/stack/asm/arm64/push_registers_asm.cc" ]
--  } else {
--    # To support a trampoline for another arch, please refer to 
v8/src/heap/base.
-+    deps += [ ":partition_alloc_asm" ]
+   if (build_with_chromium) {
+-    if (current_cpu == "x64") {
+-      defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
+-      sources += [ "starscan/stack/asm/x64/push_registers_asm.cc" ]
+-    } else if (current_cpu == "x86") {
+-      defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
+-      sources += [ "starscan/stack/asm/x86/push_registers_asm.cc" ]
+-    } else if (current_cpu == "arm") {
+-      defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
+-      sources += [ "starscan/stack/asm/arm/push_registers_asm.cc" ]
+-    } else if (current_cpu == "arm64") {
++    deps = []
++    if (current_cpu == "x64" || current_cpu == "x86" || current_cpu == "arm" 
|| current_cpu == "arm64") {
+       defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
+-      sources += [ "starscan/stack/asm/arm64/push_registers_asm.cc" ]
+-    } else {
+-      # To support a trampoline for another arch, please refer to 
v8/src/heap/base.
++      deps += [ ":partition_alloc_asm" ]
+     }
    }
    public_deps = [
-     ":chromecast_buildflags",
 @@ -289,7 +295,6 @@
      ":partition_alloc_implementation",
      ":memory_tagging",

++++++ print_dialog_gtk-no-kEnableOopPrintDriversJobPrint.patch ++++++
>From e3fcdb9c67501e7e4b86ea904e154ea615b5187e Mon Sep 17 00:00:00 2001
From: Lei Zhang <thes...@chromium.org>
Date: Tue, 18 Oct 2022 17:51:09 +0000
Subject: [PATCH] Fix build when enable_oop_printing=false.

https://crrev.com/1050907 changed print_dialog_gtk.cc to start checking
`kEnableOopPrintDriversJobPrint`, assuming it is unconditionally
defined.

Similarly, various CLs like https://crrev.com/992136 changed
print_browsertest.cc without the proper conditionals.

Change-Id: Ie7efe976bba4b7583be104fad37984bea07f8773
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3962532
Reviewed-by: Alan Screen <awscr...@chromium.org>
Commit-Queue: Lei Zhang <thes...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1060540}
---

diff --git a/chrome/browser/printing/print_browsertest.cc 
b/chrome/browser/printing/print_browsertest.cc
index a70cd643..c66456f 100644
--- a/chrome/browser/printing/print_browsertest.cc
+++ b/chrome/browser/printing/print_browsertest.cc
@@ -2733,6 +2733,7 @@
 
   void PrimeAsRepeatingErrorGenerator() { reset_errors_after_check_ = false; }
 
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
   void PrimeForSpoolingSharedMemoryErrors() {
     simulate_spooling_memory_errors_ = true;
   }
@@ -2784,6 +2785,7 @@
   bool print_backend_service_use_detected() const {
     return print_backend_service_use_detected_;
   }
+#endif  // BUILDFLAG(ENABLE_OOP_PRINTING)
 
   mojom::ResultCode use_default_settings_result() const {
     return use_default_settings_result_;
@@ -2838,7 +2840,6 @@
     return std::make_unique<TestPrintJobWorker>(
         rfh_id, &test_print_job_worker_callbacks_);
   }
-#endif  // BUILDFLAG(ENABLE_OOP_PRINTING)
 
   void OnUseDefaultSettings() {
     did_use_default_settings_ = true;
@@ -2861,6 +2862,7 @@
       print_backend_service_use_detected_ = true;
     }
   }
+#endif  // BUILDFLAG(ENABLE_OOP_PRINTING)
 
   void ErrorCheck(mojom::ResultCode result) {
     // Interested to reset any trigger for causing access-denied errors, so
diff --git a/ui/gtk/printing/print_dialog_gtk.cc 
b/ui/gtk/printing/print_dialog_gtk.cc
index 98985bc..0596691 100644
--- a/ui/gtk/printing/print_dialog_gtk.cc
+++ b/ui/gtk/printing/print_dialog_gtk.cc
@@ -13,6 +13,7 @@
 
 #include "base/bind.h"
 #include "base/check_op.h"
+#include "base/dcheck_is_on.h"
 #include "base/files/file_util.h"
 #include "base/logging.h"
 #include "base/memory/raw_ptr.h"
@@ -22,6 +23,7 @@
 #include "base/task/thread_pool.h"
 #include "base/threading/sequenced_task_runner_handle.h"
 #include "base/values.h"
+#include "printing/buildflags/buildflags.h"
 #include "printing/metafile.h"
 #include "printing/mojom/print.mojom.h"
 #include "printing/print_job_constants.h"
@@ -419,11 +421,19 @@
 
 void PrintDialogGtk::PrintDocument(const printing::MetafilePlayer& metafile,
                                    const std::u16string& document_name) {
+#if DCHECK_IS_ON()
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+  const bool kOopPrinting =
+      printing::features::kEnableOopPrintDriversJobPrint.Get();
+#else
+  const bool kOopPrinting = false;
+#endif  // BUILDFLAG(ENABLE_OOP_PRINTING)
+
   // For in-browser printing, this runs on the print worker thread, so it does
   // not block the UI thread.  For OOP it runs on the service document task
   // runner.
-  DCHECK_EQ(owning_task_runner()->RunsTasksInCurrentSequence(),
-            printing::features::kEnableOopPrintDriversJobPrint.Get());
+  DCHECK_EQ(owning_task_runner()->RunsTasksInCurrentSequence(), kOopPrinting);
+#endif  // DCHECK_IS_ON()
 
   // The document printing tasks can outlive the PrintingContext that created
   // this dialog.

++++++ remove-date-reproducible-builds.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:13.985449861 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:13.985449861 +0100
@@ -4,8 +4,8 @@
  import re
  
  CHROMIUM_LICENSE = (
--"""// Copyright %d The Chromium Authors. All rights reserved.
-+"""// Copyright 2022 The Chromium Authors. All rights reserved.
+-"""// Copyright %d The Chromium Authors
++"""// Copyright 2022 The Chromium Authors
  // Use of this source code is governed by a BSD-style license that can be
 -// found in the LICENSE file.""" % datetime.now().year
 +// found in the LICENSE file."""
@@ -18,8 +18,8 @@
  import struct_generator
  import element_generator
  
--HEAD = u"""// Copyright %d The Chromium Authors. All rights reserved.
-+HEAD = u"""// Copyright 2022 The Chromium Authors. All rights reserved.
+-HEAD = u"""// Copyright %d The Chromium Authors
++HEAD = u"""// Copyright 2022 The Chromium Authors
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
@@ -38,8 +38,8 @@
  
  # The template for the header file of the generated FeatureProvider.
  HEADER_FILE_TEMPLATE = """
--// Copyright %(year)s The Chromium Authors. All rights reserved.
-+// Copyright 2022 The Chromium Authors. All rights reserved.
+-// Copyright %(year)s The Chromium Authors
++// Copyright 2022 The Chromium Authors
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
@@ -47,8 +47,8 @@
  
  # The beginning of the .cc file for the generated FeatureProvider.
  CC_FILE_BEGIN = """
--// Copyright %(year)s The Chromium Authors. All rights reserved.
-+// Copyright 2022 The Chromium Authors. All rights reserved.
+-// Copyright %(year)s The Chromium Authors
++// Copyright 2022 The Chromium Authors
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  

++++++ skia-system-vulkan-headers.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:14.005449969 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:14.009449990 +0100
@@ -1,7 +1,7 @@
 Unbundle only Skia's vulkan headers. ANGLE needs the bleeding-edge ones in 
vulkan-deps
 
---- a/third_party/skia/include/gpu/vk/GrVkVulkan.h
-+++ b/third_party/skia/include/gpu/vk/GrVkVulkan.h
+--- a/third_party/skia/include/private/gpu/vk/SkiaVulkan.h
++++ b/third_party/skia/include/private/gpu/vk/SkiaVulkan.h
 @@ -11,7 +11,7 @@
  #include "include/core/SkTypes.h"
  

++++++ swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch ++++++
Compiler complains about missing symbol on arm64:

[ 1362s] ../../third_party/swiftshader/src/Reactor/LLVMJIT.cpp: In member 
function 'void rr::JITBuilder::runPasses()':
[ 1362s] ../../third_party/swiftshader/src/Reactor/LLVMJIT.cpp:942:34: error: 
'AddressSanitizerPass' is not a member of 'llvm'; did you mean 
'AddressSanitizerOptions'?
[ 1362s]   942 |                 
pm.addPass(llvm::AddressSanitizerPass(llvm::AddressSanitizerOptions{}));
[ 1362s]       |                                  ^~~~~~~~~~~~~~~~~~~~
[ 1362s]       |                                  AddressSanitizerOptions

The offending code is dead, and this patch proves it.

--- src/third_party/swiftshader/src/Reactor/LLVMJIT.cpp.old     2022-11-30 
10:29:13.429851800 +0000
+++ src/third_party/swiftshader/src/Reactor/LLVMJIT.cpp 2022-11-30 
21:19:08.387147100 +0000
@@ -930,18 +930,19 @@
        {
                
pm.addPass(llvm::createModuleToFunctionPassAdaptor(std::move(fpm)));
        }
-
+#if __has_feature(memory_sanitizer)
        if(__has_feature(memory_sanitizer) && msanInstrumentation)
        {
                llvm::MemorySanitizerOptions msanOpts(0 /* TrackOrigins */, 
false /* Recover */, false /* Kernel */, true /* EagerChecks */);
                pm.addPass(llvm::MemorySanitizerPass(msanOpts));
        }
-
+#endif
+#if __has_feature(address_sanitizer)
        if(__has_feature(address_sanitizer) && 
ADDRESS_SANITIZER_INSTRUMENTATION_SUPPORTED)
        {
                
pm.addPass(llvm::AddressSanitizerPass(llvm::AddressSanitizerOptions{}));
        }
-
+#endif
        pm.run(*module, mam);
 #else  // Legacy pass manager
        llvm::legacy::PassManager passManager;
@@ -961,18 +962,19 @@
                passManager.add(llvm::createSROAPass());
                passManager.add(llvm::createInstructionCombiningPass());
        }
-
+#if __has_feature(memory_sanitizer)
        if(__has_feature(memory_sanitizer) && msanInstrumentation)
        {
                llvm::MemorySanitizerOptions msanOpts(0 /* TrackOrigins */, 
false /* Recover */, false /* Kernel */);
                
passManager.add(llvm::createMemorySanitizerLegacyPassPass(msanOpts));
        }
-
+#endif
+#if __has_feature(address_sanitizer)
        if(__has_feature(address_sanitizer) && 
ADDRESS_SANITIZER_INSTRUMENTATION_SUPPORTED)
        {
                passManager.add(llvm::createAddressSanitizerFunctionPass());
        }
-
+#endif
        passManager.run(*module);
 #endif
 }

++++++ system-libdrm.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:14.049450206 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:14.053450227 +0100
@@ -19,27 +19,27 @@
 --- chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/crtc_controller.h
 +++ chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/crtc_controller.h
 @@ -11,7 +11,7 @@
+ #include <xf86drmMode.h>
  
  #include "base/memory/weak_ptr.h"
- #include "base/trace_event/traced_value.h"
 -#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
 +#include <drm_fourcc.h>
+ #include 
"third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"
  #include "ui/gfx/swap_result.h"
  #include "ui/ozone/platform/drm/common/scoped_drm_types.h"
- #include "ui/ozone/platform/drm/gpu/drm_overlay_plane.h"
 Index: 
chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
 ===================================================================
 --- 
chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
 +++ 
chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
 @@ -20,7 +20,7 @@
- #include "base/trace_event/trace_conversion_helper.h"
- #include "base/trace_event/trace_event.h"
- #include "base/trace_event/traced_value.h"
+ #include "base/ranges/algorithm.h"
+ #include "base/strings/stringprintf.h"
+ #include "base/trace_event/typed_macros.h"
 -#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
 +#include <drm_fourcc.h>
+ #include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
  #include "third_party/skia/include/core/SkCanvas.h"
  #include "third_party/skia/include/core/SkImage.h"
- #include "ui/gfx/geometry/point.h"
 Index: 
chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
 ===================================================================
 --- 
chromium-98.0.4758.80.orig/media/gpu/chromeos/video_decoder_pipeline_unittest.cc

++++++ system-pydeps.patch ++++++
--- /var/tmp/diff_new_pack.cEEplk/_old  2023-01-18 13:13:14.065450292 +0100
+++ /var/tmp/diff_new_pack.cEEplk/_new  2023-01-18 13:13:14.069450313 +0100
@@ -82,4 +82,47 @@
  import optparse
  import sys
  
+--- 
src/third_party/blink/renderer/bindings/scripts/check_generated_file_list.pydeps.old
       2022-11-30 10:28:05.822183900 +0000
++++ 
src/third_party/blink/renderer/bindings/scripts/check_generated_file_list.pydeps
   2022-11-30 19:51:45.562760400 +0000
+@@ -1,28 +1,8 @@
+ # Generated by running:
+ #   build/print_python_deps.py --root 
third_party/blink/renderer/bindings/scripts --output 
third_party/blink/renderer/bindings/scripts/check_generated_file_list.pydeps 
third_party/blink/renderer/bindings/scripts/check_generated_file_list.py
+-../../../../mako/mako/mako/__init__.py
+-../../../../mako/mako/mako/_ast_util.py
+-../../../../mako/mako/mako/ast.py
+-../../../../mako/mako/mako/cache.py
+-../../../../mako/mako/mako/codegen.py
+-../../../../mako/mako/mako/compat.py
+-../../../../mako/mako/mako/exceptions.py
+-../../../../mako/mako/mako/ext/__init__.py
+-../../../../mako/mako/mako/filters.py
+-../../../../mako/mako/mako/lexer.py
+-../../../../mako/mako/mako/parsetree.py
+-../../../../mako/mako/mako/pygen.py
+-../../../../mako/mako/mako/pyparser.py
+-../../../../mako/mako/mako/runtime.py
+-../../../../mako/mako/mako/template.py
+-../../../../mako/mako/mako/util.py
+ ../../../../markupsafe/__init__.py
+ ../../../../markupsafe/_compat.py
+ ../../../../markupsafe/_native.py
+-../../../../pyjson5/src/json5/__init__.py
+-../../../../pyjson5/src/json5/lib.py
+-../../../../pyjson5/src/json5/parser.py
+-../../../../pyjson5/src/json5/version.py
+ ../../build/scripts/blinkbuild/__init__.py
+ ../../build/scripts/blinkbuild/name_style_converter.py
+ bind_gen/__init__.py
+--- 
src/third_party/blink/renderer/bindings/scripts/validate_web_idl.pydeps.old     
   2022-11-30 10:28:05.822183900 +0000
++++ src/third_party/blink/renderer/bindings/scripts/validate_web_idl.pydeps    
2022-11-30 20:00:16.870556700 +0000
+@@ -1,9 +1,5 @@
+ # Generated by running:
+ #   build/print_python_deps.py --root 
third_party/blink/renderer/bindings/scripts --output 
third_party/blink/renderer/bindings/scripts/validate_web_idl.pydeps 
third_party/blink/renderer/bindings/scripts/validate_web_idl.py
+-../../../../pyjson5/src/json5/__init__.py
+-../../../../pyjson5/src/json5/lib.py
+-../../../../pyjson5/src/json5/parser.py
+-../../../../pyjson5/src/json5/version.py
+ ../../build/scripts/blinkbuild/__init__.py
+ ../../build/scripts/blinkbuild/name_style_converter.py
+ validate_web_idl.py
 

Reply via email to