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 2024-04-21 20:26:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old)
 and      /work/SRC/openSUSE:Factory/.nodejs-electron.new.26366 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nodejs-electron"

Sun Apr 21 20:26:07 2024 rev:113 rq:1169279 version:29.3.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes  
2024-04-12 17:39:36.166398151 +0200
+++ 
/work/SRC/openSUSE:Factory/.nodejs-electron.new.26366/nodejs-electron.changes   
    2024-04-21 20:27:11.733733097 +0200
@@ -1,0 +2,64 @@
+Fri Apr 19 20:11:24 UTC 2024 - Bruno Pitrus <brunopit...@hotmail.com>
+
+- Update to electron 29.3.1
+  * ABI break: NODE_MODULE_VERSION is now 121
+  * Chromium 122.0.6261.156
+  * Node 20.9.0
+  * V8 12.2
+  * The deprecated gpu-process-crashed event on app has been removed.
+  * The deprecated renderer-process-crashed event on app and crashed
+    event on WebContents and <webview> have been removed.
+  * Added WebContentsView and BaseWindow, replacing the now-deprecated 
BrowserView APIs.
+  * Added new webUtils.getPathForFile method to replace File.path 
augmentation. 
+  * see https://www.electronjs.org/blog/electron-29-0 and 
https://github.com/electron/electron/releases/tag/v29.0.0 for more
+  * Security fixes for Angle (CVE-2024-3516) and Compositing (CVE-2024-3157)
+- Drop upstreamed patches
+  * atspi.patch
+  * chromium-117-blink-BUILD-mnemonic.patch
+  * 
local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
+  * node-upgrade-llhttp-to-8.patch
+  * policy_templates-deterministic.patch
+  * v8-hide-private-symbols.patch
+  * web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
+- Add patches to fix build errors
+  * aarch64-Xclang.patch
+  * absl2023-encapsulated_web_transport-StrCat.patch
+  * boringssl-internal-addc-cxx.patch
+  * chromium-122-avoid-SFINAE-TypeConverter.patch
+  * chromium-122-BookmarkNode-missing-operator.patch
+  * distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
+  * distributed_point_functions-evaluate_prg_hwy-signature.patch
+  * fake_ssl_socket_client-Wlto-type-mismatch.patch
+  * grid_sizing_tree-Wchanges-meaning.patch
+  * hit_test_request-missing-optional.patch
+  * InternalAllocator-too-many-initializers.patch
+  * mt21_util-flax-vector-conversions.patch
+  * plus_address_types-missing-optional.patch
+  * race_network_request_write_buffer_manager-missing-optional.patch
+  * resolution_monitor-missing-bitset.patch
+  * script_promise_resolver-explicit-specialization.patch
+  * search_engine_choice_service-missing-optional.patch
+  * system-yuv.patch
+- Replace abseil-remove-unused-targets.patch with 
chromium-122-abseil-shims.patch
+- Remove dead code from third_party/
+  * aom-vpx-no-thread-wrapper.patch
+  * remove-dawn.patch
+  * remove-openscreen.patch
+  * remove-password-manager-and-policy.patch
+  * remove-puffin.patch
+  * remove-rust.patch
+  * remove AFL-2.0, BSD-Protection and IJG from licence list,
+    because the relevant libraries (xdg-mime, bsdiff and iccjpeg)
+    are no longer shipped.
+- Leap, Fedora: use bundled re2
+  * drop replace-StringPiece-with-string_view.patch
+- Fedora 38: use bundled abseil
+  * drop pending_task_safety_flag-abseil-2022-nullability.patch
+  * drop thread_annotations-fix-build-with-system-abseil.patch
+- Leap 15.5: Reverse upstream changes to build with old wayland
+  * wayland-proto-31-cursor-shape.patch
+- Leap 15.5/6: Reverse upstream changes to build with old ffmpeg
+  * Cr122-ffmpeg-new-channel-layout.patch
+- aarch64: reduce debuginfo due to linker OOM
+
+-------------------------------------------------------------------

Old:
----
  abseil-remove-unused-targets.patch
  atspi.patch
  chromium-117-blink-BUILD-mnemonic.patch
  electron-28.3.0.tar.zst
  
local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
  node-upgrade-llhttp-to-8.patch
  pending_task_safety_flag-abseil-2022-nullability.patch
  policy_templates-deterministic.patch
  replace-StringPiece-with-string_view.patch
  thread_annotations-fix-build-with-system-abseil.patch
  v8-hide-private-symbols.patch
  web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch

New:
----
  Cr122-ffmpeg-new-channel-layout.patch
  InternalAllocator-too-many-initializers.patch
  aarch64-Xclang.patch
  absl2023-encapsulated_web_transport-StrCat.patch
  aom-vpx-no-thread-wrapper.patch
  boringssl-internal-addc-cxx.patch
  chromium-122-BookmarkNode-missing-operator.patch
  chromium-122-abseil-shims.patch
  chromium-122-avoid-SFINAE-TypeConverter.patch
  distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
  distributed_point_functions-evaluate_prg_hwy-signature.patch
  electron-29.3.1.tar.zst
  fake_ssl_socket_client-Wlto-type-mismatch.patch
  grid_sizing_tree-Wchanges-meaning.patch
  hit_test_request-missing-optional.patch
  mt21_util-flax-vector-conversions.patch
  plus_address_types-missing-optional.patch
  race_network_request_write_buffer_manager-missing-optional.patch
  remove-dawn.patch
  remove-openscreen.patch
  remove-password-manager-and-policy.patch
  remove-puffin.patch
  remove-rust.patch
  resolution_monitor-missing-bitset.patch
  script_promise_resolver-explicit-specialization.patch
  search_engine_choice_service-missing-optional.patch
  system-yuv.patch
  wayland-proto-31-cursor-shape.patch

BETA DEBUG BEGIN:
  Old:  * system-yuv.patch
- Replace abseil-remove-unused-targets.patch with 
chromium-122-abseil-shims.patch
- Remove dead code from third_party/
  Old:- Drop upstreamed patches
  * atspi.patch
  * chromium-117-blink-BUILD-mnemonic.patch
  Old:  * atspi.patch
  * chromium-117-blink-BUILD-mnemonic.patch
  * 
local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
  Old:  * chromium-117-blink-BUILD-mnemonic.patch
  * 
local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
  * node-upgrade-llhttp-to-8.patch
  Old:  * 
local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
  * node-upgrade-llhttp-to-8.patch
  * policy_templates-deterministic.patch
  Old:- Fedora 38: use bundled abseil
  * drop pending_task_safety_flag-abseil-2022-nullability.patch
  * drop thread_annotations-fix-build-with-system-abseil.patch
  Old:  * node-upgrade-llhttp-to-8.patch
  * policy_templates-deterministic.patch
  * v8-hide-private-symbols.patch
  Old:- Leap, Fedora: use bundled re2
  * drop replace-StringPiece-with-string_view.patch
- Fedora 38: use bundled abseil
  Old:  * drop pending_task_safety_flag-abseil-2022-nullability.patch
  * drop thread_annotations-fix-build-with-system-abseil.patch
- Leap 15.5: Reverse upstream changes to build with old wayland
  Old:  * policy_templates-deterministic.patch
  * v8-hide-private-symbols.patch
  * web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
  Old:  * v8-hide-private-symbols.patch
  * web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
- Add patches to fix build errors
BETA DEBUG END:

BETA DEBUG BEGIN:
  New:- Leap 15.5/6: Reverse upstream changes to build with old ffmpeg
  * Cr122-ffmpeg-new-channel-layout.patch
- aarch64: reduce debuginfo due to linker OOM
  New:  * hit_test_request-missing-optional.patch
  * InternalAllocator-too-many-initializers.patch
  * mt21_util-flax-vector-conversions.patch
  New:- Add patches to fix build errors
  * aarch64-Xclang.patch
  * absl2023-encapsulated_web_transport-StrCat.patch
  New:  * aarch64-Xclang.patch
  * absl2023-encapsulated_web_transport-StrCat.patch
  * boringssl-internal-addc-cxx.patch
  New:- Remove dead code from third_party/
  * aom-vpx-no-thread-wrapper.patch
  * remove-dawn.patch
  New:  * absl2023-encapsulated_web_transport-StrCat.patch
  * boringssl-internal-addc-cxx.patch
  * chromium-122-avoid-SFINAE-TypeConverter.patch
  New:  * chromium-122-avoid-SFINAE-TypeConverter.patch
  * chromium-122-BookmarkNode-missing-operator.patch
  * distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
  New:  * system-yuv.patch
- Replace abseil-remove-unused-targets.patch with 
chromium-122-abseil-shims.patch
- Remove dead code from third_party/
  New:  * boringssl-internal-addc-cxx.patch
  * chromium-122-avoid-SFINAE-TypeConverter.patch
  * chromium-122-BookmarkNode-missing-operator.patch
  New:  * chromium-122-BookmarkNode-missing-operator.patch
  * distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
  * distributed_point_functions-evaluate_prg_hwy-signature.patch
  New:  * 
distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
  * distributed_point_functions-evaluate_prg_hwy-signature.patch
  * fake_ssl_socket_client-Wlto-type-mismatch.patch
  New:  * distributed_point_functions-evaluate_prg_hwy-signature.patch
  * fake_ssl_socket_client-Wlto-type-mismatch.patch
  * grid_sizing_tree-Wchanges-meaning.patch
  New:  * fake_ssl_socket_client-Wlto-type-mismatch.patch
  * grid_sizing_tree-Wchanges-meaning.patch
  * hit_test_request-missing-optional.patch
  New:  * grid_sizing_tree-Wchanges-meaning.patch
  * hit_test_request-missing-optional.patch
  * InternalAllocator-too-many-initializers.patch
  New:  * InternalAllocator-too-many-initializers.patch
  * mt21_util-flax-vector-conversions.patch
  * plus_address_types-missing-optional.patch
  New:  * mt21_util-flax-vector-conversions.patch
  * plus_address_types-missing-optional.patch
  * race_network_request_write_buffer_manager-missing-optional.patch
  New:  * plus_address_types-missing-optional.patch
  * race_network_request_write_buffer_manager-missing-optional.patch
  * resolution_monitor-missing-bitset.patch
  New:  * aom-vpx-no-thread-wrapper.patch
  * remove-dawn.patch
  * remove-openscreen.patch
  New:  * remove-dawn.patch
  * remove-openscreen.patch
  * remove-password-manager-and-policy.patch
  New:  * remove-openscreen.patch
  * remove-password-manager-and-policy.patch
  * remove-puffin.patch
  New:  * remove-password-manager-and-policy.patch
  * remove-puffin.patch
  * remove-rust.patch
  New:  * remove-puffin.patch
  * remove-rust.patch
  * remove AFL-2.0, BSD-Protection and IJG from licence list,
  New:  * race_network_request_write_buffer_manager-missing-optional.patch
  * resolution_monitor-missing-bitset.patch
  * script_promise_resolver-explicit-specialization.patch
  New:  * resolution_monitor-missing-bitset.patch
  * script_promise_resolver-explicit-specialization.patch
  * search_engine_choice_service-missing-optional.patch
  New:  * script_promise_resolver-explicit-specialization.patch
  * search_engine_choice_service-missing-optional.patch
  * system-yuv.patch
  New:  * search_engine_choice_service-missing-optional.patch
  * system-yuv.patch
- Replace abseil-remove-unused-targets.patch with 
chromium-122-abseil-shims.patch
  New:- Leap 15.5: Reverse upstream changes to build with old wayland
  * wayland-proto-31-cursor-shape.patch
- Leap 15.5/6: Reverse upstream changes to build with old ffmpeg
BETA DEBUG END:

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

Other differences:
------------------
++++++ nodejs-electron.spec ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.486090938 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.486090938 +0200
@@ -22,7 +22,7 @@
 
 %define mod_name electron
 # https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json
-%define abi_version 119
+%define abi_version 121
 
 # Do not provide libEGL.so, etc…
 %define __provides_exclude ^lib.*\\.so.*$
@@ -54,10 +54,24 @@
 #the QT ui is currently borderline unusable (too small fonts in menu and wrong 
colors)
 %bcond_with qt
 
-%bcond_with vaapi
 
 
 
+%ifarch aarch64 riscv64
+#Video acceleration API to support. Useful for e.g. signal messenger.
+#One cannot enable both, unfortunately.
+#Apparently more arm hardware supports v4l2 than vaapi,
+#but that code does not build on armv{6,7}hl due to too high cpu requirements.
+#bcond_without v4l2
+#bcond_with vaapi
+%else
+#bcond_with v4l2
+#bcond_without vaapi
+%endif
+
+#DISABLING THIS — cannot use video acceleration with system aom/vpx
+%bcond_with v4l2
+%bcond_with vaapi
 
 
 
@@ -74,11 +88,6 @@
 %endif
 
 
-%bcond_without system_nghttp2
-%bcond_without system_crc32c
-%bcond_without system_dav1d
-%bcond_without system_highway
-%bcond_without system_nvctrl
 
 %if 0%{?suse_version} || 0%{?fedora} < 40
 %bcond_without system_minizip
@@ -97,11 +106,13 @@
 %bcond_without system_spirv
 %bcond_without harfbuzz_5
 %bcond_without link_vulkan
+%bcond_without wayland_32
 %else
 %bcond_with system_aom
 %bcond_with system_spirv
 %bcond_with harfbuzz_5
 %bcond_with link_vulkan
+%bcond_with wayland_32
 %endif
 
 
@@ -121,20 +132,20 @@
 
 %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} >= 
39
 %bcond_without bro_11
+%bcond_without ffmpeg_6
 %else
 %bcond_with bro_11
+%bcond_with ffmpeg_6
 %endif
 
 
 
 %if 0%{?fedora}
 %bcond_without system_llhttp
-%bcond_without llhttp_8
 %bcond_without system_histogram
 %bcond_without system_simdutf
 %else
 %bcond_with system_llhttp
-%bcond_with llhttp_8
 %bcond_with system_histogram
 %bcond_with system_simdutf
 %endif
@@ -146,27 +157,22 @@
 %bcond_with system_vma
 %endif
 
+
 #requires `imageSequenceTrackPresent` and `enableParsingGainMapMetadata` both 
of which are only in post-1.0.0 nightlies
 %bcond_with system_avif
 
 # Some chromium code assumes absl::string_view is a typedef for 
std::string_view. This is not true on GCC7 systems such as Leap.
-%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} >= 
37
-%bcond_without system_abseil
-
 %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} >= 
39
-%bcond_without abseil_2023
+%bcond_without system_abseil
 %else
-%bcond_with abseil_2023
+%bcond_with system_abseil
 %endif
 
 %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700
-%bcond_without re2_11
-%else
-%bcond_with re2_11
-%endif
-
+#re2-11 has abseil as a public dependency. If you use system re2 you must use 
system abseil.
+%bcond_without system_re2
 %else
-%bcond_with system_abseil
+%bcond_with system_re2
 %endif
 
 %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora}
@@ -201,10 +207,10 @@
 
 
 Name:           nodejs-electron
-Version:        28.3.0
+Version:        29.3.1
 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%{!?with_system_minizip: AND Zlib}
+License:        Apache-2.0 AND blessing AND BSD-2-Clause AND BSD-3-Clause AND 
BSD-Source-Code AND bzip2-1.0.6 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%{!?with_system_minizip: AND Zlib}
 Group:          Development/Languages/NodeJS
 URL:            https://github.com/electron/electron
 Source0:        %{mod_name}-%{version}.tar.zst
@@ -216,16 +222,15 @@
 # Reverse upstream changes to be able to build against ffmpeg-4
 Source400:      ffmpeg-new-channel-layout.patch
 Source401:      audio_file_reader-ffmpeg-AVFrame-duration.patch
+Source402:      Cr122-ffmpeg-new-channel-layout.patch
 # and against harfbuzz 4
 Source415:      harfbuzz-replace-chromium-scoped-type.patch
 Source416:      harfbuzz-replace-HbScopedPointer.patch
 # and icu 71
 Source417:      v8-icu73-alt_calendar.patch
 Source418:      v8-icu73-simple-case-folding.patch
-# and re2 10
-Source430:      replace-StringPiece-with-string_view.patch
-# and abseil 2022
-Source440:      pending_task_safety_flag-abseil-2022-nullability.patch
+# and wayland 1.31
+Source450:      wayland-proto-31-cursor-shape.patch
 
 
 # PATCHES for openSUSE-specific things
@@ -252,10 +257,16 @@
 Patch76:        disable-devtools-tests.patch
 Patch77:        angle_link_glx.patch
 Patch78:        rdynamic.patch
-Patch79:        v8-hide-private-symbols.patch
 Patch80:        icon.patch
 Patch81:        disable-tests.patch
 Patch82:        node-compiler.patch
+Patch83:        remove-rust.patch
+Patch84:        aarch64-Xclang.patch
+Patch85:        remove-dawn.patch
+Patch86:        aom-vpx-no-thread-wrapper.patch
+Patch87:        remove-openscreen.patch
+Patch88:        remove-password-manager-and-policy.patch
+Patch89:        remove-puffin.patch
 
 # PATCHES to use system libs
 Patch1000:      do-not-build-libvulkan.so.patch
@@ -268,7 +279,6 @@
 Patch1047:      cares_public_headers.patch
 Patch1048:      chromium-remove-bundled-roboto-font.patch
 Patch1053:      swiftshader-use-system-llvm.patch
-Patch1054:      thread_annotations-fix-build-with-system-abseil.patch
 Patch1063:      system-libbsd.patch
 Patch1065:      base-system-nspr.patch
 Patch1066:      system-gtest.patch
@@ -283,6 +293,8 @@
 Patch1077:      system-wayland.patch
 Patch1078:      system-simdutf.patch
 Patch1079:      system-libm.patch
+Patch1080:      system-yuv.patch
+Patch1081:      chromium-122-abseil-shims.patch
 
 
 # PATCHES to fix interaction with third-party software
@@ -305,18 +317,10 @@
 Patch2029:      electron-16-webpack-fix-openssl-3.patch
 Patch2031:      partition_alloc-no-lto.patch
 Patch2032:      seccomp_bpf-no-lto.patch
-# adjust to llhttp 8 api changes
-%if %{with llhttp_8}
-Patch2033:       node-upgrade-llhttp-to-8.patch
-%else
-Source2033:      node-upgrade-llhttp-to-8.patch
-%endif
 Patch2034:      swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch
 Patch2035:      RenderFrameHostImpl-use-after-free.patch
-Patch2037:      abseil-remove-unused-targets.patch
 # https://github.com/electron/electron/pull/40032
 Patch2040:      build-without-extensions.patch
-Patch2041:      chromium-117-blink-BUILD-mnemonic.patch
 %if %{without bro_11}
 Patch2042:      brotli-remove-shared-dictionary.patch
 %else
@@ -329,8 +333,7 @@
 %else
 Patch2047:      bundled-minizip.patch
 %endif
-# 
https://sources.debian.org/patches/chromium/119.0.6045.199-1/fixes/atspi.patch/
-Patch2048:      atspi.patch
+Patch2048:      absl2023-encapsulated_web_transport-StrCat.patch
 
 # PATCHES that should be submitted upstream verbatim or near-verbatim
 Patch3016:      chromium-98-EnumTable-crash.patch
@@ -346,24 +349,34 @@
 Patch3096:      remove-date-reproducible-builds.patch
 Patch3118:      material_color_utilities-tones-missing-round.patch
 Patch3126:      perfetto-numeric_storage-double_t.patch
-Patch3127:      policy_templates-deterministic.patch
 Patch3129:      
text_break_iterator-icu74-breakAllLineBreakClassTable-should-be-consistent.patch
-Patch3130:      
web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
-Patch3131:      
local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
 Patch3132:      v8-instance-type-inl-constexpr-used-before-its-definition.patch
 Patch3133:      swiftshader-llvm18-LLVMReactor-getInt8PtrTy.patch
 Patch3134:      swiftshader-llvm18-LLVMJIT-Host.patch
 Patch3135:      swiftshader-llvm18-LLVMJIT-CodeGenOptLevel.patch
 Patch3136:      CVE-2024-30260-undici-clear-proxy-authorization.patch
 Patch3137:      CVE-2024-30261-undici-fetch-integrity.patch
+Patch3138:      
distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
+Patch3139:      chromium-122-avoid-SFINAE-TypeConverter.patch
+Patch3140:      plus_address_types-missing-optional.patch
+Patch3141:      chromium-122-BookmarkNode-missing-operator.patch
+Patch3142:      search_engine_choice_service-missing-optional.patch
+Patch3143:      
race_network_request_write_buffer_manager-missing-optional.patch
+Patch3144:      mt21_util-flax-vector-conversions.patch
+Patch3145:      script_promise_resolver-explicit-specialization.patch
+Patch3146:      hit_test_request-missing-optional.patch
+Patch3147:      grid_sizing_tree-Wchanges-meaning.patch
+Patch3148:      resolution_monitor-missing-bitset.patch
+Patch3149:      boringssl-internal-addc-cxx.patch
+Patch3150:      InternalAllocator-too-many-initializers.patch
+Patch3151:      distributed_point_functions-evaluate_prg_hwy-signature.patch
+Patch3152:      fake_ssl_socket_client-Wlto-type-mismatch.patch 
 
 BuildRequires:  brotli
 %if %{with system_cares}
 BuildRequires:  c-ares-devel
 %endif
-%if %{with system_crc32c}
 BuildRequires:  cmake(Crc32c)
-%endif
 BuildRequires:  double-conversion-devel
 BuildRequires:  desktop-file-utils
 %if 0%{?fedora}
@@ -387,15 +400,9 @@
 %endif
 BuildRequires:  libbsd-devel
 BuildRequires:  libpng-devel
-%if %{with system_nvctrl}
 BuildRequires:  libXNVCtrl-devel
-%endif
 %if %{with system_llhttp}
-%if %{with llhttp_8}
 BuildRequires:  llhttp-devel >= 8
-%else
-BuildRequires:  llhttp-devel < 8
-%endif
 %endif
 %if %{with swiftshader} && %{without subzero}
 BuildRequires:  llvm-devel >= 16
@@ -442,6 +449,7 @@
 BuildRequires:  wayland-devel >= 1.20
 BuildRequires:  zstd
 %if %{with system_abseil}
+BuildRequires:  pkgconfig(absl_absl_check)
 BuildRequires:  pkgconfig(absl_algorithm_container)
 BuildRequires:  pkgconfig(absl_any_invocable)
 BuildRequires:  pkgconfig(absl_base)
@@ -479,15 +487,11 @@
 BuildRequires:  pkgconfig(absl_type_traits)
 BuildRequires:  pkgconfig(absl_utility)
 BuildRequires:  pkgconfig(absl_variant)
-%if %{with abseil_2023}
 BuildRequires:  pkgconfig(absl_core_headers) >= 20230000
 %endif
-%endif
 BuildRequires:  pkgconfig(alsa)
 BuildRequires:  pkgconfig(cairo) >= 1.6
-%if %{with system_dav1d}
 BuildRequires:  pkgconfig(dav1d) >= 1
-%endif
 BuildRequires:  pkgconfig(dbus-1)
 BuildRequires:  pkgconfig(dri)
 BuildRequires:  pkgconfig(expat)
@@ -512,6 +516,9 @@
 %if 0%{?fedora}
 Recommends: (ffmpeg-libs%{_isa} or libavcodec-freeworld%{_isa})
 %endif
+%if %{with ffmpeg_6}
+BuildRequires:  pkgconfig(libavcodec) >= 60
+%endif
 %if %{with ffmpeg_5}
 BuildRequires:  pkgconfig(libavcodec) >= 59
 BuildRequires:  pkgconfig(libavformat) >= 59
@@ -543,12 +550,8 @@
 BuildRequires:  pkgconfig(libcurl)
 BuildRequires:  pkgconfig(libdrm)
 BuildRequires:  pkgconfig(libevent)
-%if %{with system_highway}
 BuildRequires:  pkgconfig(libhwy) >= 1
-%endif
-%if %{with system_nghttp2}
 BuildRequires:  pkgconfig(libnghttp2)
-%endif
 BuildRequires:  pkgconfig(libnotify)
 BuildRequires:  pkgconfig(libpci)
 BuildRequires:  pkgconfig(libpulse)
@@ -580,12 +583,8 @@
 BuildRequires:  pkgconfig(Qt5Core)
 BuildRequires:  pkgconfig(Qt5Widgets)
 %endif
-BuildRequires:  pkgconfig(re2)
-%if %{without system_abseil}
-#re2-11 has abseil as a public dependency. The headers collide with the 
bundled ones, causing linker errors.
-BuildRequires:  cmake(re2) < 11
-%endif
-%if %{with system_abseil} && %{with re2_11}
+%if %{with system_abseil} && %{with system_re2}
+#re2-11 has abseil as a public dependency. If you use system re2 you must use 
system abseil.
 BuildRequires:  cmake(re2) >= 11
 %endif
 %if %{with system_spirv}
@@ -600,6 +599,9 @@
 BuildRequires:  pkgconfig(vulkan) >= 1.3
 %endif
 BuildRequires:  pkgconfig(wayland-protocols)
+%if %{with wayland_32}
+BuildRequires:  pkgconfig(wayland-protocols) >= 1.32
+%endif
 BuildRequires:  pkgconfig(xkbcommon)
 BuildRequires:  pkgconfig(xshmfence)
 BuildRequires:  pkgconfig(zlib)
@@ -669,20 +671,18 @@
 # Use stable path to source to make use of ccache
 %autosetup -n src -p1
 
+
+
+
 # Sanity check if macro corresponds to the actual ABI
 test $(grep ^node_module_version electron/build/args/all.gn | sed 's/.* = //') 
= %abi_version
 
 %if %{without system_abseil}
-patch -R -p1 < %PATCH1054
 patch -R -p1 < %PATCH1076
 %endif
 
-%if %{with system_abseil} && %{with abseil_2023}
-patch -R -p1 < %PATCH1054
-%endif
-
-%if %{with system_abseil} && %{without abseil_2023}
-patch -R -p1 < %SOURCE440
+%if %{without ffmpeg_6}
+patch -R -p1 < %SOURCE402
 %endif
 
 %if %{with ffmpeg_5}
@@ -693,7 +693,6 @@
 
 
 
-
 %if %{without harfbuzz_5}
 patch -R -p1 < %SOURCE415
 patch -R -p1 < %SOURCE416
@@ -704,14 +703,14 @@
 patch -R -p1 < %SOURCE418
 %endif
 
+%if %{without wayland_32}
+patch -R -p1 < %SOURCE450
+%endif
+
 
 # This one depends on an ffmpeg nightly, reverting unconditionally.
 patch -R -p1 < %SOURCE401
 
-%if %{without system_abseil} || (%{with system_abseil} && %{without re2_11})
-patch -R -p1 < %SOURCE430
-%endif
-
 # Link system wayland-protocols-devel into where chrome expects them
 mkdir -p third_party/wayland/src
 mkdir -p third_party/wayland-protocols/kde/src
@@ -782,7 +781,6 @@
 ARCH_FLAGS="$(echo $ARCH_FLAGS | sed -e 's/ -fexceptions / /g')"
 %endif
 
-
 # for wayland
 export CXXFLAGS="${ARCH_FLAGS} -I/usr/include/wayland 
-I/usr/include/libxkbcommon"
 export CFLAGS="${CXXFLAGS}"
@@ -841,7 +839,7 @@
 %ifarch %ix86 %arm
 %limit_build -m 1200
 %else
-%limit_build -m 3500
+%limit_build -m 4000
 %endif
 
 %ifarch aarch64
@@ -852,7 +850,7 @@
 
 %if %{with lto}
 %ifarch aarch64
-export LDFLAGS="$LDFLAGS -flto=auto --param ggc-min-expand=20 --param 
ggc-min-heapsize=32768 --param lto-max-streaming-parallelism=1 
-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
+export LDFLAGS="$LDFLAGS -flto=3 --param ggc-min-expand=20 --param 
ggc-min-heapsize=32768 --param lto-max-streaming-parallelism=1 
-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
 %else
 # x64 is fine with the the default settings (the machines have 30GB+ ram)
 export LDFLAGS="$LDFLAGS -flto=auto"
@@ -861,6 +859,8 @@
 
 gn_system_libraries=(
     brotli
+    crc32c
+    dav1d
     double-conversion
     ffmpeg
     flac
@@ -868,6 +868,7 @@
     fontconfig
     freetype
     harfbuzz-ng
+    highway
     icu
     jsoncpp
     libdrm
@@ -877,10 +878,10 @@
     libsecret
     libusb
     libwebp
+    libXNVCtrl
     libxml
     libxslt
     opus
-    re2
     snappy
     woff2
     zlib
@@ -892,6 +893,7 @@
    absl_algorithm
    absl_base
    absl_cleanup
+   absl_crc
    absl_container
    absl_debugging
    absl_flags
@@ -923,38 +925,25 @@
 gn_system_libraries+=( libavif )
 %endif
 
-%if %{with system_crc32c}
-find third_party/crc32c -type f ! -name "*.gn" -a ! -name "*.gni" -delete
-gn_system_libraries+=( crc32c )
-%endif
-
 
 
-%if %{with system_dav1d}
-find third_party/dav1d -type f ! -name "*.gn" -a ! -name "*.gni" -delete
-gn_system_libraries+=( dav1d )
-%endif
-
-%if %{with system_highway}
-find third_party/highway -type f ! -name "*.gn" -a ! -name "*.gni" -delete
-gn_system_libraries+=( highway )
-%endif
 
 %if %{with system_minizip}
 find third_party/zlib/contrib -type f ! -name "*.gn" -a ! -name "*.gni" -delete
 %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 )
+%if %{with system_re2}
+find third_party/re2 -type f ! -name "*.gn" -a ! -name "*.gni" -delete
+gn_system_libraries+=( re2 )
 %endif
 
+
 %if %{with system_spirv}
-rm -rf third_party/swiftshader/third_party/SPIRV-Headers/include
+find  third_party/swiftshader/third_party/SPIRV-Headers/ -type f ! -name 
"*.gn" -a ! -name "*.gni"  -delete
 find  third_party/swiftshader/third_party/SPIRV-Tools/ -type f ! -name "*.gn" 
-a ! -name "*.gni"  -delete
 
-rm -rf third_party/vulkan-deps/spirv-headers/src/include
+find third_party/vulkan-deps/spirv-headers/ -type f ! -name "*.gn" -a ! -name 
"*.gni"  -delete
 find third_party/vulkan-deps/spirv-tools/ -type f ! -name "*.gn" -a ! -name 
"*.gni"  -delete
 
 gn_system_libraries+=(
@@ -988,10 +977,6 @@
 find third_party/angle/src/third_party/volk -type f ! -name "*.gn" -a ! -name 
"*.gni"  -delete
 %endif
 
-%if %{with system_nghttp2}
-find third_party/electron_node/deps/nghttp2 -type f ! -name "*.gn" -a ! -name 
"*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
-%endif
-
 %if %{with system_llhttp}
 find third_party/electron_node/deps/llhttp -type f ! -name "*.gn" -a ! -name 
"*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
 %endif
@@ -1089,6 +1074,7 @@
 myconf_gn+=" enable_printing=false"
 myconf_gn+=" enable_basic_printing=false"
 myconf_gn+=' use_cups=false'
+myconf_gn+=' enable_print_content_analysis=false'
 #we don't build PDF support, so disabling the below:
 #myconf_gn+=" use_system_lcms2=true"
 #myconf_gn+=" use_system_libopenjpeg2=true"
@@ -1097,6 +1083,8 @@
 #do not build chrome pepper plugins support
 myconf_gn+=" enable_plugins=false"
 myconf_gn+=" enable_ppapi=false"
+#it is set by default to enable_ppapi but is required by 
electron_api_web_frame.cc
+myconf_gn+=' content_enable_legacy_ipc=true'
 
 #do not build webextensions support
 myconf_gn+=' enable_electron_extensions=false'
@@ -1122,14 +1110,15 @@
 myconf_gn+=" blink_symbol_level=0"
 myconf_gn+=" v8_symbol_level=0"
 %endif
-%ifarch aarch64 #“No space left on device” with symbol level 2
-myconf_gn+=" symbol_level=1"
-myconf_gn+=" blink_symbol_level=1"
-myconf_gn+=" v8_symbol_level=1"
+%ifarch aarch64
+# linker OOM, sorry.
+# we still seem to get some debug generated during linking when LTO is enabled
+myconf_gn+=' symbol_level=0'
+myconf_gn+=' blink_symbol_level=0'
+myconf_gn+=' v8_symbol_level=0'
 %endif
 
 
-
 # do not build some chrome features not used by electron
 # (some of these only go to buildflag_headers and are dead code rn, but 
disabling them preemptively as long as they're visible)
 myconf_gn+=" enable_vr=false"
@@ -1168,21 +1157,22 @@
 myconf_gn+=' enable_compose=false'
 myconf_gn+=' enterprise_cloud_content_analysis=false'
 myconf_gn+=' enterprise_local_content_analysis=false'
+myconf_gn+=' enterprise_data_controls=false'
 myconf_gn+=' enterprise_client_certificates=false'
 myconf_gn+=' enterprise_watermark=false'
 myconf_gn+=' enterprise_content_analysis=false'
 
 
-
 #FIXME: possibly enable this when skia gets built with rust code by default.
 #Need to patch in optflags and possibly FFI LTO hacks (see signal-desktop 
package for how it's done)
 myconf_gn+=' enable_rust=false'
+myconf_gn+=' enable_chromium_prelude=false'
 
 #See net/base/features.cc. It's not enabled yet.
 #FIXME: enable this and add shims to build with system zstd when it's enabled
 myconf_gn+=' disable_zstd_filter=true'
 
-myconf_gn+=' chrome_root_store_policy_supported=false'
+myconf_gn+=' chrome_certificate_policies_supported=false'
 myconf_gn+=' use_kerberos=false'
 
 myconf_gn+=' disable_histogram_support=true'
@@ -1197,7 +1187,6 @@
 #disable some debug/tracing hooks, they increase size and we do not build 
chrome://tracing anyway (see disable-catapult.patch)
 myconf_gn+=" enable_trace_logging=false"
 myconf_gn+=" optional_trace_events_enabled=false"
-myconf_gn+=" use_runtime_vlog=false"
 myconf_gn+=" rtc_disable_logging=true"
 myconf_gn+=" rtc_disable_metrics=true"
 myconf_gn+=" rtc_disable_trace_events=true"
@@ -1223,13 +1212,15 @@
 myconf_gn+=" use_lld=false"
 
 %if %{with vaapi}
-myconf_gn+=' use_vaapi=true'
-myconf_gn+=' use_vaapi_x11=true'
-myconf_gn+=' use_libgav1_parser=true'
-%else
-myconf_gn+=' use_vaapi=false'
-myconf_gn+=' use_vaapi_x11=false'
-myconf_gn+=' use_libgav1_parser=false'
+myconf_gn+=' use_vaapi=true use_vaapi_image_codecs=true'
+%else
+myconf_gn+=' use_vaapi=false use_vaapi_image_codecs=false'
+%endif
+
+%if %{with v4l2}
+myconf_gn+=' use_v4l2_codec=true'
+%else
+myconf_gn+=' use_v4l2_codec=false'
 %endif
 
 myconf_gn+=" treat_warnings_as_errors=false"
@@ -1251,9 +1242,7 @@
 myconf_gn+=" use_system_harfbuzz=true"
 myconf_gn+=" use_system_freetype=true"
 myconf_gn+=" use_system_cares=true"
-%if %{with system_nghttp2}
 myconf_gn+=" use_system_nghttp2=true"
-%endif
 %if %{with system_llhttp}
 myconf_gn+=" use_system_llhttp=true"
 %endif
@@ -1271,21 +1260,6 @@
 # endif with lto
 %endif
 
-%ifarch %arm
-# Bundled libaom is broken on ARMv7
-%if %{without system_aom}
-# [74796s] FAILED: v8_context_snapshot_generator
-# [74796s] python3 "../../build/toolchain/gcc_link_wrapper.py" 
--output="./v8_context_snapshot_generator" -- g++ -Wl,--build-id=sha1 -fPIC 
-Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -rdynamic -Wl,-z,defs 
-Wl,--as-needed -pie -Wl,--disable-new-dtags -Wl,-rpath=\$ORIGIN  
-Wl,--as-needed -fuse-ld=lld -o "./v8_context_snapshot_generator" 
-Wl,--start-group @"./v8_context_snapshot_generator.rsp"  -Wl,--end-group  
-latomic -ldl -lpthread -lrt -lgmodule-2.0 -lglib-2.0 -lgobject-2.0 
-lgthread-2.0 -ljsoncpp -labsl_base -labsl_raw_logging_internal 
-labsl_log_severity -labsl_spinlock_wait -labsl_cord -labsl_cordz_info 
-labsl_cord_internal -labsl_cordz_functions -labsl_exponential_biased 
-labsl_cordz_handle -labsl_synchronization -labsl_graphcycles_internal 
-labsl_stacktrace -labsl_symbolize -labsl_debugging_internal 
-labsl_demangle_internal -labsl_malloc_internal -labsl_time -labsl_civil_time 
-labsl_time_zone -labsl_bad_optional_access -labsl_strings 
-labsl_strings_internal -labsl_int128 -labsl
 _throw_delegate -labsl_hash -labsl_city -labsl_bad_variant_access 
-labsl_low_level_hash -labsl_raw_hash_set -labsl_hashtablez_sampler 
-labsl_failure_signal_handler -labsl_examine_stack -labsl_random_distributions 
-labsl_random_seed_sequences -labsl_random_internal_pool_urbg 
-labsl_random_internal_randen -labsl_random_internal_randen_hwaes 
-labsl_random_internal_randen_hwaes_impl -labsl_random_internal_randen_slow 
-labsl_random_internal_platform -labsl_random_internal_seed_material 
-labsl_random_seed_gen_exception -labsl_status -labsl_str_format_internal 
-labsl_strerror -labsl_statusor -licui18n -licuuc -licudata -lsmime3 -lnss3 
-lnssutil3 -lplds4 -lplc4 -lnspr4 -ldouble-conversion -levent -lz -ljpeg 
-lpng16 -lxml2 -lxslt -lresolv -lgio-2.0 -lbrotlidec -lwebpdemux -lwebpmux 
-lwebp -lfreetype -lexpat -lfontconfig -lharfbuzz-subset -lharfbuzz -lyuv 
-lopus -lvpx -lm -ldav1d -lX11 -lXcomposite -lXdamage -lXext -lXfixes -lXrender 
-lXrandr -lXtst -lpipewire-0.3 -lgbm -lEGL -ldrm -lcrc32c -
 lbsd -lxcb -lxkbcommon -lwayland-client -ldbus-1 -lre2 -lpangocairo-1.0 
-lpango-1.0 -lcairo -latk-1.0 -latk-bridge-2.0 -lasound -lpulse -lavcodec 
-lavformat -lavutil -lXi -lpci -lxxhash -lXNVCtrl -lsnappy -lavif -ljxl 
-lwoff2dec -latspi
-# [74796s] ld.lld: error: undefined symbol: aom_arm_cpu_caps
-# [74796s] >>> referenced by av1_rtcd.h:1079 
(../../third_party/libaom/source/config/linux/arm/config/av1_rtcd.h:1079)
-# [74796s] >>>               libaom/av1_rtcd.o:(setup_rtcd_internal) in 
archive obj/third_party/libaom/libaom.a
-# [74796s] >>> referenced by aom_dsp_rtcd.h:3560 
(../../third_party/libaom/source/config/linux/arm/config/aom_dsp_rtcd.h:3560)
-# [74796s] >>>               libaom/aom_dsp_rtcd.o:(setup_rtcd_internal) in 
archive obj/third_party/libaom/libaom.a
-# [74796s] >>> referenced by aom_scale_rtcd.h:162 
(../../third_party/libaom/source/config/linux/arm/config/aom_scale_rtcd.h:162)
-# [74796s] >>>               libaom/aom_scale_rtcd.o:(setup_rtcd_internal) in 
archive obj/third_party/libaom/libaom.a
-myconf_gn+=" enable_libaom=false"
-%endif
-%endif
 
 %if %{with pipewire}
 myconf_gn+=" rtc_use_pipewire=true rtc_link_pipewire=true"
@@ -1298,6 +1272,7 @@
 
 # Do not build WebGPU support. It is huge and not used by ANY known apps (we 
would know if it was — it's hidden behind an experimental flag).
 myconf_gn+=" use_dawn=false"
+myconf_gn+=' skia_use_dawn=false'
 
 # The proprietary codecs just force the chromium to say they can use it and
 # offload the actual computation to the ffmpeg, otherwise the chromium

++++++ Cr122-ffmpeg-new-channel-layout.patch ++++++
>From 84d1d7adcd1697348e3f821811179c525d3b5717 Mon Sep 17 00:00:00 2001
From: Dale Curtis <dalecur...@chromium.org>
Date: Tue, 28 Nov 2023 00:41:42 +0000
Subject: [PATCH] Roll src/third_party/ffmpeg/ c1d0dc413..866768f35 (492
 commits)

https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/c1d0dc4135ec..866768f35c22

$ git log c1d0dc413..866768f35 --date=short --no-merges --format='%ad %ae %s'
2023-11-22 dalecurtis README.chromium file
2023-11-22 dalecurtis Chromium patches file
2023-11-22 dalecurtis GN Configuration
2023-11-21 dalecurtis Switch to remoteexec for robosushi
2023-11-12 mypopydev vulkan_decode: fix the print format of VkDeviceSize
2023-08-28 mypopydev avdevice/decklink_dec: add explicit specifier
2023-11-20 jamrial avcodec: bump version after EVC additions
2023-09-19 d.kozinski avcodec/evc_decoder: Provided support for EVC decoder
2023-09-19 d.kozinski avcodec/evc_encoder: Provided support for EVC encoder
2023-10-17 michael avcodec/h264dec: Support skipping frames that used gray gap 
frames
2023-10-17 michael avcodec/h264: Avoid using gray gap frames as references
2023-10-17 michael avcodec/h264: keep track of which frames used gray references
2023-10-02 michael avcodec/h264dec: More elaborate documentation for 
frame_recovered
2023-10-02 michael avcodec/h264: Use FRAME_RECOVERED_HEURISTIC instead of 
IDR/SEI
2023-10-02 michael avcodec/h264: Seperate SEI and IDR recovery handling
2023-11-19 onemda avfilter/af_afir: remove flag that is not needed
2023-11-19 onemda avfilter/af_afir: no need to dynamically add outpad
2023-11-19 onemda avfilter/af_afir: refactor crossfade code
2023-11-19 onemda avfilter/af_afir: add timeline support
2023-11-16 remi riscv: set fast half-precision conversion
2023-11-19 onemda avfilter/af_afir: remove IR response video rendering support
2023-11-19 onemda doc/filters: add one more example for afir filter usage
2023-11-14 anton tools/general_assembly: update to conform to new rules
2023-11-14 anton tools/general_assembly: make the script executable
2023-11-18 onemda avfilter/avf_showvolume: improve step for vertical orientation
2023-11-18 onemda avfilter/avf_showvolume: draw channel names directly into 
output frame
2023-11-15 remi lavc/llviddsp: R-V V add_bytes
2023-11-15 remi lavc/flacdsp: R-V V LPC16 function
2023-11-15 remi lavc/flacdsp: R-V V LPC32
2023-11-15 remi checkasm/flacdsp: add LPC test
2023-11-15 remi riscv: fix builds without Zbb support
2023-11-18 mypopydev lavfi/Makefile: fix vf_cropdetect missed edge_common
2023-11-10 ffmpeg-devel apply spelling fixes
2023-11-18 onemda avfilter/af_afir: add irnorm and irlink options
2023-11-14 remi lavc/flacdsp: R-V V decorrelate_indep 16-bit packed
2023-11-14 remi lavc/flacdsp: R-V V decorrelate_indep 32-bit packed
2023-11-13 remi lavc/flacdsp: R-V V decorrelate_ms packed
2023-08-16 remi lavc/flacdsp: R-V V packed decorrelate_{l,r}s
2023-11-13 remi checkasm/flacdsp: fix ls/rs/ms tests
2023-11-08 onemda avfilter/af_adynamicequalizer: add adaptive detection mode
2023-11-06 onemda avfilter/af_adynamicequalizer: do gain calculations in log 
domain
2023-11-03 sunyuechi af_afir: RISC-V V fcmul_add
2023-11-12 remi lavc/llauddsp: R-V V scalarproduct_and_madd_int32
2023-11-12 remi lavc/llauddsp: R-V V scalarproduct_and_madd_int16
2023-11-12 remi checkasm: add lossless audio DSP
2023-11-15 jamrial x86/flacds: clear the high bits from pred_order in lpc_32 
functions
2023-11-13 jianhui.j.dai-at-intel.com avcodec/cbs_vp8: Add support for VP8 
codec bitstream
2023-11-13 jianhui.j.dai-at-intel.com avcodec/vp8: Export 
`vp8_token_update_probs` variable
2023-11-12 remi lavc/huffyuvdsp: basic R-V V add_hfyu_left_pred_bgr32
2023-11-12 remi checkasm/huffyuvdsp: test for add_hfyu_left_pred_bgr32
(...)
2022-08-04 andreas.rheinhardt avcodec/cbs: Use RefStruct-API for unit content
2022-08-04 andreas.rheinhardt avcodec/refstruct: Allow checking for exclusive 
ownership
2022-08-04 andreas.rheinhardt avcodec/dovi_rpu: Use RefStruct API for Vdr data
2022-08-04 andreas.rheinhardt avcodec/wavpack: Use RefStruct API for DSD context
2023-07-17 andreas.rheinhardt avcodec/vp8: Use RefStruct API for seg_map
2022-08-04 andreas.rheinhardt avcodec/hevc_ps: Use RefStruct API for parameter 
sets
2022-08-04 andreas.rheinhardt avcodec/h264_ps: Use RefStruct API for SPS/PPS
2022-08-04 andreas.rheinhardt avcodec/get_buffer: Use RefStruct API for 
FramePool
2022-08-04 andreas.rheinhardt avcodec/refstruct: Add simple API for refcounted 
objects
2023-10-03 remi lavu/fixed_dsp: R-V V scalarproduct
2023-10-07 onemda avformat/wavdec: w64: do not error out for broken files if 
data start is found
2023-10-06 onemda avcodec/mlpenc: rename some variables related to thd
2023-10-03 andreas.rheinhardt avcodec/mpegvideo: Move allocating new_picture to 
the encoder
2023-07-17 jamrial fftools/ffplay: stop injecting stream side data in packets
2023-07-17 jamrial fftools/ffmpeg: stop injecting stream side data in packets
2023-07-17 jamrial avcodec/decode: propagate global side data to frames
2023-07-17 jamrial avcodec/hevcdec: check for DOVI configuration record in 
AVCodecContext side data
2023-07-16 jamrial fftools/ffprobe: stop using AVStream.side_data
2023-07-16 jamrial fftools/ffplay: stop using AVStream.side_data
2023-07-16 jamrial fftools/ffmpeg: stop using AVStream.side_data
2023-09-26 jamrial avcodec/packet: add some documentation for AVPacketSideData
2023-07-16 jamrial avformat/avformat: use the side data from AVStream.codecpar
2023-07-16 jamrial avcodec/codec_par: add side data to AVCodecParameters
2023-07-16 jamrial avcodec/packet: add generic side data helpers
2023-10-06 andreas.rheinhardt avfilter/vulkan_filter: Remove unused label
2023-10-06 onemda avcodec/mlpdec: set extended_substream_info from header
2023-08-26 stefasab doc/encoders/libopus: clarify lowdelay and cutoff options
2023-08-26 stefasab doc/encoders/libxvid: fix references for me_quality option
2023-08-26 stefasab doc/encoders/libx264: clarify meaning of level option
2023-08-26 stefasab lavc: clarify meaning of avctx.level option
2023-10-03 leo.izen avcodec/jpegxl_parser: fix various memory issues
2023-10-03 leo.izen avcodec/jpegxl_parser: add some icc profile checks
2023-09-01 stefasab ffprobe: introduce section type, use for the compact output
2023-09-01 stefasab ffprobe: correct section name for side data piece
2023-08-31 stefasab ffprobe: factorize side data printing to dedicated function
2023-10-03 onemda avcodec/mlpenc: restructure code and resolve several bugs
2023-10-05 dev hwcontext_vulkan: properly support STORAGE usage for mutliplane 
images
2023-09-30 ben vulkan_hevc: handle non-contiguous SPS/PPS/VPS ids
2023-10-03 ffmpeg-devel avcodec/svt-av1: Set force_key_frames only when 
gop_size == 1
2023-10-03 andreas.rheinhardt avcodec/h261dec, mpeg12dec, vc1dec: Remove 
setting write-only flags
2023-10-03 andreas.rheinhardt avcodec/rv10: Replace switch by LUT
2023-10-03 andreas.rheinhardt avcodec/rv10: Remove dead code
2023-10-02 andreas.rheinhardt avcodec/h263dec, mpeg4videodec: Parse extradata 
during init
2023-10-01 andreas.rheinhardt avcodec/mpegvideo_dec: Always initialize 
IDCTDSPContext during init
2023-10-01 andreas.rheinhardt avcodec/mpegvideo_dec: Don't zero context on init 
failure
2023-10-01 andreas.rheinhardt avcodec/mpeg12dec: Don't initialize IDCT more 
than once
2023-10-02 remi lavc/ac3: add R-V Zbb extract_exponents
2023-10-04 jamrial avcodec/hcadec: add a flush callback
2023-10-01 remi swscale/rgb2rgb: R-V V deinterleaveBytes
2023-10-01 remi swscale/rgb2rgb: fix extra iteration in R-V V interleave

Created with:
  roll-dep src/third_party/ffmpeg

R=jrummell

Bug: 1504603
Change-Id: Ia40313bc2abcb0594543019bc8d1c22fbf7bde82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5055586
Reviewed-by: John Rummell <jrumm...@chromium.org>
Auto-Submit: Dale Curtis <dalecur...@chromium.org>
Commit-Queue: Dale Curtis <dalecur...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1229653}
---
 DEPS                                          |   2 +-
 media/ffmpeg/ffmpeg_common.cc                 | 169 +++++++++---------
 .../filters/audio_video_metadata_extractor.cc |  17 +-
 media/filters/ffmpeg_demuxer_unittest.cc      |   4 +-
 third_party/ffmpeg                            |   2 +-
 5 files changed, 97 insertions(+), 97 deletions(-)

diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 3c97e4a6cf4c7..a55e4ab51d5b3 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -653,15 +653,6 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
       profile = ProfileIDToVideoCodecProfile(codec_context->profile);
   }
 
-  void* display_matrix =
-      av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
-
-  VideoTransformation video_transformation = VideoTransformation();
-  if (display_matrix) {
-    video_transformation = VideoTransformation::FromFFmpegDisplayMatrix(
-        static_cast<int32_t*>(display_matrix));
-  }
-
   if (!color_space.IsSpecified()) {
     // VP9 frames may have color information, but that information cannot
     // express new color spaces, like HDR. For that reason, color space
@@ -718,91 +709,92 @@
                       codec_context->extradata + 
codec_context->extradata_size);
   }
 
-  if (stream->nb_side_data) {
-    for (int i = 0; i < stream->nb_side_data; ++i) {
-      AVPacketSideData side_data = stream->side_data[i];
-      switch (side_data.type) {
-        case AV_PKT_DATA_MASTERING_DISPLAY_METADATA: {
-          AVMasteringDisplayMetadata* mdcv =
-              reinterpret_cast<AVMasteringDisplayMetadata*>(side_data.data);
-          gfx::HdrMetadataSmpteSt2086 smpte_st_2086;
-          if (mdcv->has_primaries) {
-            smpte_st_2086.primaries = {
-                static_cast<float>(av_q2d(mdcv->display_primaries[0][0])),
-                static_cast<float>(av_q2d(mdcv->display_primaries[0][1])),
-                static_cast<float>(av_q2d(mdcv->display_primaries[1][0])),
-                static_cast<float>(av_q2d(mdcv->display_primaries[1][1])),
-                static_cast<float>(av_q2d(mdcv->display_primaries[2][0])),
-                static_cast<float>(av_q2d(mdcv->display_primaries[2][1])),
-                static_cast<float>(av_q2d(mdcv->white_point[0])),
-                static_cast<float>(av_q2d(mdcv->white_point[1])),
-            };
-          }
-          if (mdcv->has_luminance) {
-            smpte_st_2086.luminance_max = av_q2d(mdcv->max_luminance);
-            smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance);
-          }
-
-          // TODO(https://crbug.com/1446302): Consider rejecting metadata that
-          // does not specify all values.
-          if (mdcv->has_primaries || mdcv->has_luminance) {
-            hdr_metadata.smpte_st_2086 = smpte_st_2086;
-          }
-          break;
+  VideoTransformation video_transformation = VideoTransformation();
+  for (int i = 0; i < stream->codecpar->nb_coded_side_data; ++i) {
+    const auto& side_data = stream->codecpar->coded_side_data[i];
+    switch (side_data.type) {
+      case AV_PKT_DATA_DISPLAYMATRIX: {
+        CHECK_EQ(side_data.size, sizeof(int32_t) * 3 * 3);
+        video_transformation = VideoTransformation::FromFFmpegDisplayMatrix(
+            reinterpret_cast<int32_t*>(side_data.data));
+        break;
+      }
+      case AV_PKT_DATA_MASTERING_DISPLAY_METADATA: {
+        AVMasteringDisplayMetadata* mdcv =
+            reinterpret_cast<AVMasteringDisplayMetadata*>(side_data.data);
+        gfx::HdrMetadataSmpteSt2086 smpte_st_2086;
+        if (mdcv->has_primaries) {
+          smpte_st_2086.primaries = {
+              static_cast<float>(av_q2d(mdcv->display_primaries[0][0])),
+              static_cast<float>(av_q2d(mdcv->display_primaries[0][1])),
+              static_cast<float>(av_q2d(mdcv->display_primaries[1][0])),
+              static_cast<float>(av_q2d(mdcv->display_primaries[1][1])),
+              static_cast<float>(av_q2d(mdcv->display_primaries[2][0])),
+              static_cast<float>(av_q2d(mdcv->display_primaries[2][1])),
+              static_cast<float>(av_q2d(mdcv->white_point[0])),
+              static_cast<float>(av_q2d(mdcv->white_point[1])),
+          };
         }
-        case AV_PKT_DATA_CONTENT_LIGHT_LEVEL: {
-          AVContentLightMetadata* clli =
-              reinterpret_cast<AVContentLightMetadata*>(side_data.data);
-          hdr_metadata.cta_861_3 =
-              gfx::HdrMetadataCta861_3(clli->MaxCLL, clli->MaxFALL);
-          break;
+        if (mdcv->has_luminance) {
+          smpte_st_2086.luminance_max = av_q2d(mdcv->max_luminance);
+          smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance);
+        }
+
+        // TODO(https://crbug.com/1446302): Consider rejecting metadata that
+        // does not specify all values.
+        if (mdcv->has_primaries || mdcv->has_luminance) {
+          hdr_metadata.smpte_st_2086 = smpte_st_2086;
         }
+        break;
+      }
+      case AV_PKT_DATA_CONTENT_LIGHT_LEVEL: {
+        AVContentLightMetadata* clli =
+            reinterpret_cast<AVContentLightMetadata*>(side_data.data);
+        hdr_metadata.cta_861_3 =
+            gfx::HdrMetadataCta861_3(clli->MaxCLL, clli->MaxFALL);
+        break;
+      }
 #if BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
-        case AV_PKT_DATA_DOVI_CONF: {
-          AVDOVIDecoderConfigurationRecord* dovi =
-              reinterpret_cast<AVDOVIDecoderConfigurationRecord*>(
-                  side_data.data);
-          VideoType type;
-          type.codec = VideoCodec::kDolbyVision;
-          type.level = dovi->dv_level;
-          type.color_space = color_space;
-          type.hdr_metadata_type = gfx::HdrMetadataType::kNone;
-          switch (dovi->dv_profile) {
-            case 0:
-              type.profile = VideoCodecProfile::DOLBYVISION_PROFILE0;
-              break;
-            case 4:
-              type.profile = VideoCodecProfile::DOLBYVISION_PROFILE4;
-              break;
-            case 5:
-              type.profile = VideoCodecProfile::DOLBYVISION_PROFILE5;
-              break;
-            case 7:
-              type.profile = VideoCodecProfile::DOLBYVISION_PROFILE7;
-              break;
-            case 8:
-              type.profile = VideoCodecProfile::DOLBYVISION_PROFILE8;
-              break;
-            case 9:
-              type.profile = VideoCodecProfile::DOLBYVISION_PROFILE9;
-              break;
-            default:
-              type.profile = VideoCodecProfile::VIDEO_CODEC_PROFILE_UNKNOWN;
-              break;
-          }
-          // Treat dolby vision contents as dolby vision codec only if the
-          // device support clear DV decoding, otherwise use the original
-          // HEVC or AVC codec and profile.
-          if (media::IsSupportedVideoType(type)) {
-            codec = type.codec;
-            profile = type.profile;
-          }
-          break;
+      case AV_PKT_DATA_DOVI_CONF: {
+        AVDOVIDecoderConfigurationRecord* dovi =
+            
reinterpret_cast<AVDOVIDecoderConfigurationRecord*>(side_data.data);
+        VideoType type;
+        type.codec = VideoCodec::kDolbyVision;
+        type.level = dovi->dv_level;
+        type.color_space = color_space;
+        type.hdr_metadata_type = gfx::HdrMetadataType::kNone;
+        switch (dovi->dv_profile) {
+          case 0:
+            type.profile = VideoCodecProfile::DOLBYVISION_PROFILE0;
+            break;
+          case 5:
+            type.profile = VideoCodecProfile::DOLBYVISION_PROFILE5;
+            break;
+          case 7:
+            type.profile = VideoCodecProfile::DOLBYVISION_PROFILE7;
+            break;
+          case 8:
+            type.profile = VideoCodecProfile::DOLBYVISION_PROFILE8;
+            break;
+          case 9:
+            type.profile = VideoCodecProfile::DOLBYVISION_PROFILE9;
+            break;
+          default:
+            type.profile = VideoCodecProfile::VIDEO_CODEC_PROFILE_UNKNOWN;
+            break;
         }
+        // Treat dolby vision contents as dolby vision codec only if the
+        // device support clear DV decoding, otherwise use the original
+        // HEVC or AVC codec and profile.
+        if (media::IsSupportedVideoType(type)) {
+          codec = type.codec;
+          profile = type.profile;
+        }
+        break;
+      }
 #endif  // BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
       default:
         break;
-      }
     }
   }
 
diff --git a/media/filters/audio_video_metadata_extractor.cc 
b/media/filters/audio_video_metadata_extractor.cc
index cb002490a6322..e841b4ad13383 100644
--- a/media/filters/audio_video_metadata_extractor.cc
+++ b/media/filters/audio_video_metadata_extractor.cc
@@ -113,13 +113,16 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* 
source,
     if (!stream)
       continue;
 
-    void* display_matrix =
-        av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
-    if (display_matrix) {
-      rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
-                      static_cast<int32_t*>(display_matrix))
-                      .rotation;
-      info.tags["rotate"] = base::NumberToString(rotation_);
+    for (int j = 0; j < stream->codecpar->nb_coded_side_data; j++) {
+      const AVPacketSideData& sd = stream->codecpar->coded_side_data[j];
+      if (sd.type == AV_PKT_DATA_DISPLAYMATRIX) {
+        CHECK_EQ(sd.size, sizeof(int32_t) * 3 * 3);
+        rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
+                        reinterpret_cast<int32_t*>(sd.data))
+                        .rotation;
+        info.tags["rotate"] = base::NumberToString(rotation_);
+        break;
+      }
     }
 
     // Extract dictionary from streams also. Needed for containers that attach

++++++ InternalAllocator-too-many-initializers.patch ++++++
>From ee6e6d3e45af1f7210e144a17f14fb21a7e86588 Mon Sep 17 00:00:00 2001
From: mikt <m...@google.com>
Date: Tue, 30 Jan 2024 03:09:24 +0000
Subject: [PATCH] [PA] Fix InternalAllocator for GCC builds

Internal Allocator has a few missing member functions, that are required
as a part of named requirement Allocator.
https://en.cppreference.com/w/cpp/named_req/Allocator

It broke builds on GCC, so adding these to fix.
https://crrev.com/c/5196856/comments/0c4bbfd9_6433016b

Change-Id: Ifce5f3e47c94c7bb1e298ac4cd7d0d1e4c6de59c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5231905
Commit-Queue: Mikihito Matsuura <m...@google.com>
Reviewed-by: Kalvin Lee <kd...@chromium.org>
Reviewed-by: Takashi Sakamoto <ta...@google.com>
Cr-Commit-Position: refs/heads/main@{#1253709}
---
 .../internal_allocator_forward.h              | 21 +++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git 
a/base/allocator/partition_allocator/src/partition_alloc/internal_allocator_forward.h
 
b/base/allocator/partition_allocator/src/partition_alloc/internal_allocator_forward.h
index 45fec29f8cc93..b31a145ff6e99 100644
--- 
a/base/allocator/partition_allocator/src/partition_alloc/internal_allocator_forward.h
+++ 
b/base/allocator/partition_allocator/src/partition_alloc/internal_allocator_forward.h
@@ -27,11 +27,24 @@ PartitionRoot& InternalAllocatorRoot();
 template <typename T>
 class InternalAllocator {
  public:
-  // Member types required by allocator completeness requirements.
   using value_type = T;
-  using size_type = std::size_t;
-  using difference_type = std::ptrdiff_t;
-  using propagate_on_container_move_assignment = std::true_type;
+  using is_always_equal = std::true_type;
+
+  InternalAllocator() = default;
+
+  template <typename U>
+  InternalAllocator(const InternalAllocator<U>&) {}  // NOLINT
+
+  template <typename U>
+  InternalAllocator& operator=(const InternalAllocator<U>&) {
+    return *this;
+  }
+
+  template <typename U>
+  bool operator==(const InternalAllocator<U>&) {
+    // InternalAllocator<T> can free allocations made by InternalAllocator<U>.
+    return true;
+  }
 
   value_type* allocate(std::size_t count);
 

++++++ RenderFrameHostImpl-use-after-free.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.586094607 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.590094754 +0200
@@ -1,24 +1,24 @@
 --- src/content/browser/renderer_host/render_frame_host_impl.cc.orig   
2023-02-08 21:38:09.974003318 +0100
 +++ src/content/browser/renderer_host/render_frame_host_impl.cc        
2023-02-13 14:13:50.217792624 +0100
 @@ -5,6 +5,7 @@
- 
- #include <cstdint>
+ #include <deque>
+ #include <limits>
  #include <memory>
 +#include <new>
+ #include <optional>
  #include <tuple>
  #include <unordered_map>
- #include <utility>
 @@ -1876,7 +1877,12 @@
-   // completes. Among other things, this ensures that any `SafeRef`s from
    // `DocumentService` and `RenderFrameHostUserData` subclasses are still 
valid
    // when their destructors run.
+   document_associated_data_->RemoveAllServices();
 -  document_associated_data_.reset();
 +  // HACK: Using .reset() here works on MSVC and LLVM libc++ because the 
std::optional
 +  // is still valid while the destructor runs. This does not work on GNU 
libstdc++
 +  // however which invalidates the optional before calling the destructor, 
causing a crash.
 +  // Upstream bug: 
https://bugs.chromium.org/p/chromium/issues/detail?id=1415154
 +    document_associated_data_->~DocumentAssociatedData();
-+    new(&document_associated_data_) 
absl::optional<DocumentAssociatedData>(absl::nullopt);
++    new(&document_associated_data_) 
std::optional<DocumentAssociatedData>(std::nullopt);
  
    // If this was the last active frame in the SiteInstanceGroup, the
    // DecrementActiveFrameCount call will trigger the deletion of the

++++++ _constraints ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.606095340 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.606095340 +0200
@@ -10,7 +10,7 @@
                <jobs>6</jobs>
        </hardware>
        <overwrite>
-        <conditions>
+               <conditions>
                        <arch>aarch64</arch>
                </conditions>
                <hardware>
@@ -20,8 +20,9 @@
                </hardware>
        </overwrite>
        <overwrite>
-        <conditions>
+               <conditions>
                        <arch>x86_64</arch>
+                       <arch>riscv64</arch>
                </conditions>
                <hardware>
                        <memory>

++++++ aarch64-Xclang.patch ++++++
--- src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.orig
+++ src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
@@ -292,12 +292,6 @@ if (is_clang_or_gcc) {
       # but they're not backwards compatible. Use base::CPU::has_mte()
       # beforehand to confirm or use indirect functions (ifuncs) to select
       # an MTE-specific implementation at dynamic link-time.
-      cflags = [
-        "-Xclang",
-        "-target-feature",
-        "-Xclang",
-        "+mte",
-      ]
     }
   }
 

++++++ absl2023-encapsulated_web_transport-StrCat.patch ++++++
--- 
src/net/third_party/quiche/src/quiche/web_transport/encapsulated/encapsulated_web_transport.cc.old
  2024-04-12 13:02:31.332129400 +0200
+++ 
src/net/third_party/quiche/src/quiche/web_transport/encapsulated/encapsulated_web_transport.cc
      2024-04-12 23:25:18.357846900 +0200
@@ -524,7 +524,7 @@ void EncapsulatedSession::OnFatalError(a
 
 void EncapsulatedSession::OnWriteError(absl::Status error) {
   OnFatalError(absl::StrCat(
-      error, " while trying to write encapsulated WebTransport data"));
+      error.ToString(absl::StatusToStringMode::kWithEverything), " while 
trying to write encapsulated WebTransport data"));
 }
 
 EncapsulatedSession::InnerStream::InnerStream(EncapsulatedSession* session,

++++++ angle_link_glx.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.642096661 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.646096808 +0200
@@ -4,9 +4,9 @@
 --- a/third_party/angle/BUILD.gn
 +++ b/third_party/angle/BUILD.gn
 @@ -138,6 +138,7 @@
-   }
+   ]
  
-   defines = [ angle_vma_version_define ]
+   defines = []
 +  defines+= ["ANGLE_LINK_GLX"]
  
    if (is_win) {

++++++ aom-vpx-no-thread-wrapper.patch ++++++
Remove this code which is disabled (media/base/media_switches.cc) and depends 
on a private header

--- src/media/base/libaom_thread_wrapper.cc.old 2024-04-02 09:53:17.097624400 
+0000
+++ src/media/base/libaom_thread_wrapper.cc     2024-04-08 17:15:53.578155000 
+0000
@@ -5,16 +5,8 @@
 #include "base/logging.h"
 #include "media/base/codec_worker_impl.h"
 #include "media/base/libvpx_thread_wrapper.h"
-#include "third_party/libaom/source/libaom/aom_util/aom_thread.h"
 
 namespace media {
 
-void InitLibAomThreadWrapper() {
-  const AVxWorkerInterface interface =
-      CodecWorkerImpl<AVxWorkerInterface, AVxWorkerImpl, AVxWorker,
-                      AVxWorkerStatus, NOT_OK, OK,
-                      WORK>::GetCodecWorkerInterface();
-  CHECK(aom_set_worker_interface(&interface));
-}
 
 }  // namespace media
--- src/media/base/libvpx_thread_wrapper.cc.old 2024-04-02 09:53:17.097624400 
+0000
+++ src/media/base/libvpx_thread_wrapper.cc     2024-04-08 17:15:46.565471400 
+0000
@@ -5,17 +5,8 @@
 #include "media/base/libvpx_thread_wrapper.h"
 
 #include "media/base/codec_worker_impl.h"
-#include "third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h"
 
 namespace media {
 
-void InitLibVpxThreadWrapper() {
-  const VPxWorkerInterface interface =
-      CodecWorkerImpl<VPxWorkerInterface, VPxWorkerImpl, VPxWorker,
-                      VPxWorkerStatus, NOT_OK, OK,
-                      WORK>::GetCodecWorkerInterface();
-
-  CHECK(vpx_set_worker_interface(&interface));
-}
 
 }  // namespace media
--- src/media/base/media.cc.old 2024-04-02 09:53:17.097624400 +0000
+++ src/media/base/media.cc     2024-04-08 17:16:15.369345800 +0000
@@ -53,14 +53,8 @@ class MediaInitializer {
 #endif  // BUILDFLAG(ENABLE_FFMPEG)
 
 #if BUILDFLAG(ENABLE_LIBVPX)
-    if (base::FeatureList::IsEnabled(kLibvpxUseChromeThreads)) {
-      InitLibVpxThreadWrapper();
-    }
 #endif  // BUILDFLAG(ENABLE_LIBVPX)
 #if BUILDFLAG(ENABLE_LIBAOM)
-    if (base::FeatureList::IsEnabled(kLibaomUseChromeThreads)) {
-      InitLibAomThreadWrapper();
-    }
 #endif  // BUILDFLAG(ENABLE_LIBAOM)
   }
 

++++++ boringssl-internal-addc-cxx.patch ++++++
--- webrtc-6261b/third_party/boringssl/src/crypto/internal.h.orig       
2024-03-13 22:27:36.595241500 +0000
+++ webrtc-6261b/third_party/boringssl/src/crypto/internal.h    2024-03-14 
19:45:48.047485200 +0000
@@ -1146,11 +1146,28 @@ static inline uint64_t CRYPTO_rotr_u64(u
 // bit. |carry| must be zero or one.
 #if OPENSSL_HAS_BUILTIN(__builtin_addc)
 
+#ifdef __cplusplus
+extern "C++" {
+static constexpr unsigned CRYPTO_GENERIC_ADDC(unsigned x, unsigned y,
+                                              unsigned carry, unsigned 
*out_carry){
+  return __builtin_addc(x, y, carry, out_carry);
+}
+static constexpr unsigned long CRYPTO_GENERIC_ADDC(unsigned long x, unsigned 
long y,
+                                              unsigned long carry, unsigned 
long *out_carry){
+  return __builtin_addcl(x, y, carry, out_carry);
+}
+static constexpr unsigned long long CRYPTO_GENERIC_ADDC(unsigned long long x, 
unsigned long long y,
+                                              unsigned long long carry, 
unsigned long long *out_carry){
+  return __builtin_addcll(x, y, carry, out_carry);
+}
+}
+#else
 #define CRYPTO_GENERIC_ADDC(x, y, carry, out_carry) \
   (_Generic((x),                                    \
       unsigned: __builtin_addc,                     \
       unsigned long: __builtin_addcl,               \
       unsigned long long: __builtin_addcll))((x), (y), (carry), (out_carry))
+#endif
 
 static inline uint32_t CRYPTO_addc_u32(uint32_t x, uint32_t y, uint32_t carry,
                                        uint32_t *out_carry) {
@@ -1198,11 +1215,28 @@ static inline uint64_t CRYPTO_addc_u64(u
 // bit. |borrow| must be zero or one.
 #if OPENSSL_HAS_BUILTIN(__builtin_subc)
 
+#ifdef __cplusplus
+extern "C++" {
+static constexpr unsigned CRYPTO_GENERIC_SUBC(unsigned x, unsigned y,
+                                              unsigned borrow, unsigned 
*out_borrow){
+  return __builtin_subc(x, y, borrow, out_borrow);
+}
+static constexpr unsigned long CRYPTO_GENERIC_SUBC(unsigned long x, unsigned 
long y,
+                                              unsigned long borrow, unsigned 
long *out_borrow){
+  return __builtin_subcl(x, y, borrow, out_borrow);
+}
+static constexpr unsigned long long CRYPTO_GENERIC_SUBC(unsigned long long x, 
unsigned long long y,
+                                              unsigned long long borrow, 
unsigned long long *out_borrow){
+  return __builtin_subcll(x, y, borrow, out_borrow);
+}
+}
+#else
 #define CRYPTO_GENERIC_SUBC(x, y, borrow, out_borrow) \
   (_Generic((x),                                      \
       unsigned: __builtin_subc,                       \
       unsigned long: __builtin_subcl,                 \
       unsigned long long: __builtin_subcll))((x), (y), (borrow), (out_borrow))
+#endif
 
 static inline uint32_t CRYPTO_subc_u32(uint32_t x, uint32_t y, uint32_t borrow,
                                        uint32_t *out_borrow) {

++++++ brotli-remove-shared-dictionary.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.682098129 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.686098276 +0200
@@ -64,7 +64,8 @@
               "CompressionDictionaryTransportBackend",
 -             base::FEATURE_ENABLED_BY_DEFAULT);
 +             base::FEATURE_DISABLED_BY_DEFAULT);
- 
- // When both this feature and the kCompressionDictionaryTransportBackend 
feature
- // are enabled, the following will happen:
+ const base::FeatureParam<CompressionDictionaryTransportBackendVersion>::Option
+     kCompressionDictionaryTransportBackendVersionOptions[] = {
+         {CompressionDictionaryTransportBackendVersion::kV1, "v1"},
+
 

++++++ chromium-122-BookmarkNode-missing-operator.patch ++++++
commit 04866680f4f9a8475ae3795ad6ed59649ba478d7
Author: Jose Dapena Paz <jdap...@igalia.com>
Date:   Tue Jan 23 12:04:05 2024 +0000

    libstdc++: fix static assertion in NodeUuidEquality
    
    libstdc++ equality checks in static assertion that it is possible to
    compare for equality base::Uuid to BookmarkNode*. This was a missing
    operator in NodeUuidEquality that this changeset adds.
    
    Bug: 957519
    Change-Id: Icc9809cb43d321f0b3e3394ef27ab55672aec5e7
    Reviewed-on: 
https://chromium-review.googlesource.com/c/chromium/src/+/5227686
    Reviewed-by: Mikel Astiz <mas...@chromium.org>
    Commit-Queue: José Dapena Paz <jdap...@igalia.com>
    Cr-Commit-Position: refs/heads/main@{#1250753}

diff --git a/components/bookmarks/browser/uuid_index.h 
b/components/bookmarks/browser/uuid_index.h
index 77cb1a1a54dd9..639d6fefcd831 100644
--- a/components/bookmarks/browser/uuid_index.h
+++ b/components/bookmarks/browser/uuid_index.h
@@ -23,6 +23,10 @@ class NodeUuidEquality {
   bool operator()(const BookmarkNode* n1, const base::Uuid& uuid2) const {
     return n1->uuid() == uuid2;
   }
+
+  bool operator()(const base::Uuid& uuid1, const BookmarkNode* n2) const {
+    return uuid1 == n2->uuid();
+  }
 };
 
 // Used to hash BookmarkNode instances by UUID.

++++++ chromium-122-abseil-shims.patch ++++++
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_base.gn 
src/build/linux/unbundle/absl_base.gn
--- src/build/linux/unbundle.old/absl_base.gn   2024-04-02 09:53:10.734295000 
+0000
+++ src/build/linux/unbundle/absl_base.gn       2024-04-07 17:46:37.658214100 
+0000
@@ -13,6 +13,14 @@ pkg_config("system_absl_core_headers") {
   packages = [ "absl_core_headers" ]
 }
 
+pkg_config("system_absl_nullability") {
+  packages = [ "absl_nullability" ]
+}
+
+pkg_config("system_absl_prefetch") {
+  packages = [ "absl_prefetch" ]
+}
+
 shim_headers("base_shim") {
   root_path = "."
   prefix = "absl/base/"
@@ -60,8 +68,41 @@ source_set("core_headers") {
   public_configs = [ ":system_absl_core_headers" ]
 }
 
-source_set("config_test") {
+shim_headers("nullability_shim") {
+  root_path = "."
+  prefix = "absl/base/"
+  headers = [
+    "nullability.h",
+  ]
+}
+
+source_set("nullability") {
+  deps = [ ":nullability_shim" ]
+  public_configs = [ ":system_absl_nullability" ]
 }
 
+shim_headers("prefetch_shim") {
+  root_path = "."
+  prefix = "absl/base/"
+  headers = [
+    "prefetch.h",
+  ]
+}
+
+source_set("prefetch") {
+  deps = [ ":prefetch_shim" ]
+  public_configs = [ ":system_absl_prefetch" ]
+}
+
+source_set("no_destructor") {
+  # Dummy — unavailable with abseil 202308 aand chromium 122 does not use it
+}
+
+source_set("config_test") {
+}
+source_set("no_destructor_test") {
+}
+source_set("nullability_test") {
+}
 source_set("prefetch_test") {
 }
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_container.gn 
src/build/linux/unbundle/absl_container.gn
--- src/build/linux/unbundle.old/absl_container.gn      2024-04-02 
09:53:10.734295000 +0000
+++ src/build/linux/unbundle/absl_container.gn  2024-04-07 17:12:25.979311400 
+0000
@@ -111,9 +111,19 @@ source_set("node_hash_set") {
 
 source_set("common_policy_traits_test") {
 }
+source_set("fixed_array_test") {
+}
+source_set("flat_hash_map_test") {
+}
+source_set("flat_hash_set_test") {
+}
 source_set("inlined_vector_test") {
 }
 source_set("node_slot_policy_test") {
 }
+source_set("raw_hash_set_allocator_test") {
+}
+source_set("raw_hash_set_test") {
+}
 source_set("sample_element_size_test") {
 }
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_crc.gn 
src/build/linux/unbundle/absl_crc.gn
--- src/build/linux/unbundle.old/absl_crc.gn    1970-01-01 00:00:00.000000000 
+0000
+++ src/build/linux/unbundle/absl_crc.gn        2024-04-07 17:29:23.349823700 
+0000
@@ -0,0 +1,4 @@
+source_set("crc32c_test") {}
+source_set("crc_cord_state_test") {}
+source_set("crc_memcpy_test") {}
+source_set("non_temporal_memcpy_test") {}
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_debugging.gn 
src/build/linux/unbundle/absl_debugging.gn
--- src/build/linux/unbundle.old/absl_debugging.gn      2024-04-02 
09:53:10.734295000 +0000
+++ src/build/linux/unbundle/absl_debugging.gn  2024-04-07 17:12:54.682550100 
+0000
@@ -45,3 +45,6 @@ source_set("symbolize") {
   deps = [ ":symbolize_shim" ]
   public_configs = [ ":system_absl_symbolize" ]
 }
+
+source_set("stacktrace_test") {
+}
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_flags.gn 
src/build/linux/unbundle/absl_flags.gn
--- src/build/linux/unbundle.old/absl_flags.gn  2024-04-02 09:53:10.734295000 
+0000
+++ src/build/linux/unbundle/absl_flags.gn      2024-04-07 17:14:21.789944600 
+0000
@@ -48,3 +48,5 @@ source_set("usage") {
   deps = [ ":usage_shim" ]
   public_configs = [ ":system_absl_flags_usage" ]
 }
+
+source_set("flag_test") {}
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_functional.gn 
src/build/linux/unbundle/absl_functional.gn
--- src/build/linux/unbundle.old/absl_functional.gn     2024-04-02 
09:53:10.734295000 +0000
+++ src/build/linux/unbundle/absl_functional.gn 2024-04-07 17:14:18.081948700 
+0000
@@ -46,4 +46,10 @@ source_set("function_ref") {
   public_configs = [ ":system_absl_function_ref" ]
 }
 
+source_set("overload") {
+  # Dummy — unavailable with abseil 202308 aand chromium 122 does not use it
+}
+
 source_set("any_invocable_test") {}
+source_set("function_ref_test") {}
+source_set("overload_test") {}
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_hash.gn 
src/build/linux/unbundle/absl_hash.gn
--- src/build/linux/unbundle.old/absl_hash.gn   2024-04-02 09:53:10.734295000 
+0000
+++ src/build/linux/unbundle/absl_hash.gn       2024-04-07 17:19:44.496916100 
+0000
@@ -16,6 +16,8 @@ source_set("hash") {
   public_configs = [ ":system_absl_hash" ]
 }
 
+source_set("hash_instantiated_test") {
+}
 source_set("hash_test") {
 }
 source_set("low_level_hash_test") {
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_log.gn 
src/build/linux/unbundle/absl_log.gn
--- src/build/linux/unbundle.old/absl_log.gn    2024-04-02 09:53:10.734295000 
+0000
+++ src/build/linux/unbundle/absl_log.gn        2024-04-07 17:45:56.568886800 
+0000
@@ -1,3 +1,67 @@
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+
+pkg_config("system_absl_absl_check") {
+  packages = [ "absl_absl_check" ]
+}
+
+pkg_config("system_absl_absl_log") {
+  packages = [ "absl_absl_log" ]
+}
+
+pkg_config("system_absl_die_if_null") {
+  packages = [ "absl_die_if_null" ]
+}
+
+pkg_config("system_absl_log") {
+  packages = [ "absl_log" ]
+}
+shim_headers("absl_check_shim") {
+  root_path = "."
+  prefix = "absl/log/"
+  headers = [ "absl_check.h" ]
+}
+
+source_set("absl_check") {
+  deps = [ ":absl_check_shim" ]
+  public_configs = [ ":system_absl_absl_check" ]
+}
+
+shim_headers("absl_log_shim") {
+  root_path = "."
+  prefix = "absl/log/"
+  headers = [ "absl_log.h" ]
+}
+
+source_set("absl_log") {
+  deps = [ ":absl_log_shim" ]
+  public_configs = [ ":system_absl_absl_log" ]
+}
+
+shim_headers("die_if_null_shim") {
+  root_path = "."
+  prefix = "absl/log/"
+  headers = [ "die_if_null.h" ]
+}
+
+source_set("die_if_null") {
+  deps = [ ":die_if_null_shim" ]
+  public_configs = [ ":system_absl_die_if_null" ]
+}
+
+shim_headers("log_shim") {
+  root_path = "."
+  prefix = "absl/log/"
+  headers = [ "log.h" ]
+}
+
+source_set("log") {
+  deps = [ ":log_shim" ]
+  public_configs = [ ":system_absl_log" ]
+}
+
+source_set("absl_check_test") {}
+source_set("absl_log_basic_test") {}
 source_set("basic_log_test") {}
 source_set("check_test") {}
 source_set("die_if_null_test") {}
@@ -11,3 +75,4 @@ source_set("log_sink_test") {}
 source_set("log_streamer_test") {}
 source_set("scoped_mock_log_test") {}
 source_set("stripping_test") {}
+source_set("vlog_is_on_test") {}
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_log_internal.gn 
src/build/linux/unbundle/absl_log_internal.gn
--- src/build/linux/unbundle.old/absl_log_internal.gn   2024-04-02 
09:53:10.734295000 +0000
+++ src/build/linux/unbundle/absl_log_internal.gn       2024-04-07 
17:19:34.195045600 +0000
@@ -1 +1,2 @@
+source_set("fnmatch_test") {}
 source_set("stderr_log_sink_test") {}
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_numeric.gn 
src/build/linux/unbundle/absl_numeric.gn
--- src/build/linux/unbundle.old/absl_numeric.gn        2024-04-02 
09:53:10.734295000 +0000
+++ src/build/linux/unbundle/absl_numeric.gn    2024-04-07 17:20:05.380981000 
+0000
@@ -30,3 +30,5 @@ source_set("int128") {
   deps = [ ":int128_shim" ]
   public_configs = [ ":system_absl_int128" ]
 }
+
+source_set("int128_test") {}
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_random.gn 
src/build/linux/unbundle/absl_random.gn
--- src/build/linux/unbundle.old/absl_random.gn 2024-04-02 09:53:10.734295000 
+0000
+++ src/build/linux/unbundle/absl_random.gn     2024-04-07 17:36:36.041139000 
+0000
@@ -1,6 +1,48 @@
 import("//build/config/linux/pkg_config.gni")
 import("//build/shim_headers.gni")
 
+pkg_config("system_absl_random_bit_gen_ref") {
+  packages = [ "absl_random_bit_gen_ref" ]
+}
+
+shim_headers("bit_gen_ref_shim") {
+  root_path = "."
+  prefix = "absl/random/"
+  headers = [ "bit_gen_ref.h" ]
+}
+
+source_set("bit_gen_ref") {
+  deps = [ ":bit_gen_ref_shim" ]
+  public_configs = [ ":system_absl_random_bit_gen_ref" ]
+}
+
+pkg_config("system_absl_random_distributions") {
+  packages = [ "absl_random_distributions" ]
+}
+
+shim_headers("distributions_shim") {
+  root_path = "."
+  prefix = "absl/random/"
+  headers = [
+    "bernoulli_distribution.h",
+    "beta_distribution.h",
+    "discrete_distribution.h",
+    "distributions.h",
+    "exponential_distribution.h",
+    "gaussian_distribution.h",
+    "log_uniform_int_distribution.h",
+    "poisson_distribution.h",
+    "uniform_int_distribution.h",
+    "uniform_real_distribution.h",
+    "zipf_distribution.h",
+  ]
+}
+
+source_set("distributions") {
+  deps = [ ":distributions_shim" ]
+  public_configs = [ ":system_absl_random_distributions" ]
+}
+
 pkg_config("system_absl_random_random") {
   packages = [ "absl_random_random" ]
 }
@@ -15,3 +57,4 @@ source_set("random") {
   deps = [ ":random_shim" ]
   public_configs = [ ":system_absl_random_random" ]
 }
+
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_status.gn 
src/build/linux/unbundle/absl_status.gn
--- src/build/linux/unbundle.old/absl_status.gn 2024-04-02 09:53:10.734295000 
+0000
+++ src/build/linux/unbundle/absl_status.gn     2024-04-07 17:20:21.398873800 
+0000
@@ -34,5 +34,7 @@ source_set("statusor") {
   public_configs = [ ":system_absl_statusor" ]
 }
 
+source_set("status_test") {
+}
 source_set("statusor_test") {
 }
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_strings.gn 
src/build/linux/unbundle/absl_strings.gn
--- src/build/linux/unbundle.old/absl_strings.gn        2024-04-02 
09:53:10.734295000 +0000
+++ src/build/linux/unbundle/absl_strings.gn    2024-04-07 17:52:10.775957800 
+0000
@@ -9,6 +9,10 @@ pkg_config("system_absl_strings") {
   packages = [ "absl_strings" ]
 }
 
+pkg_config("system_absl_string_view") {
+  packages = [ "absl_string_view" ]
+}
+
 pkg_config("system_absl_str_format") {
   packages = [ "absl_str_format" ]
 }
@@ -59,8 +63,27 @@ source_set("str_format") {
   public_configs = [ ":system_absl_str_format" ]
 }
 
+shim_headers("string_view_shim") {
+  root_path = "."
+  prefix = "absl/strings/"
+  headers = [ "string_view.h" ]
+}
+
+source_set("string_view") {
+  deps = [ ":string_view_shim" ]
+  public_configs = [ ":system_absl_string_view" ]
+}
+
+source_set("has_ostream_operator") {
+  # Dummy — unavailable with abseil 202308 aand chromium 122 does not use it
+}
+
 source_set("ascii_test") {
 }
+source_set("char_formatting_test") {
+}
+source_set("charset_test") {
+}
 source_set("cord_buffer_test") {
 }
 source_set("cord_data_edge_test") {
@@ -85,8 +108,30 @@ source_set("cordz_update_scope_test") {
 }
 source_set("cordz_update_tracker_test") {
 }
+source_set("damerau_levenshtein_distance_test") {
+}
+source_set("has_absl_stringify_test") {
+}
+source_set("has_ostream_operator_test") {
+}
 source_set("match_test") {
 }
+source_set("str_format_arg_test") {
+}
+source_set("str_format_bind_test") {
+}
+source_set("str_format_checker_test") {
+}
+source_set("str_format_convert_test") {
+}
+source_set("str_format_extension_test") {
+}
+source_set("str_format_output_test") {
+}
+source_set("str_format_parser_test") {
+}
+source_set("str_format_test") {
+}
 source_set("str_replace_test") {
 }
 source_set("string_view_test") {
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_synchronization.gn 
src/build/linux/unbundle/absl_synchronization.gn
--- src/build/linux/unbundle.old/absl_synchronization.gn        2024-04-02 
09:53:10.734295000 +0000
+++ src/build/linux/unbundle/absl_synchronization.gn    2024-04-07 
17:26:28.412783500 +0000
@@ -20,3 +20,6 @@ source_set("synchronization") {
   deps = [ ":synchronization_shim" ]
   public_configs = [ ":system_absl_synchronization" ]
 }
+
+source_set("kernel_timeout_internal_test") {}
+source_set("waiter_test") {}
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_time.gn 
src/build/linux/unbundle/absl_time.gn
--- src/build/linux/unbundle.old/absl_time.gn   2024-04-02 09:53:10.734295000 
+0000
+++ src/build/linux/unbundle/absl_time.gn       2024-04-07 17:26:42.305628700 
+0000
@@ -19,3 +19,5 @@ source_set("time") {
   deps = [ ":time_shim" ]
   public_configs = [ ":system_absl_time" ]
 }
+
+source_set("time_test") {}
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_utility.gn 
src/build/linux/unbundle/absl_utility.gn
--- src/build/linux/unbundle.old/absl_utility.gn        2024-04-02 
09:53:10.734295000 +0000
+++ src/build/linux/unbundle/absl_utility.gn    2024-04-07 17:26:54.834405600 
+0000
@@ -15,3 +15,5 @@ source_set("utility") {
   deps = [ ":utility_shim" ]
   public_configs = [ ":system_absl_utility" ]
 }
+
+source_set("if_constexpr_test") {}
diff '--color=auto' -uprN src/build/linux/unbundle.old/replace_gn_files.py 
src/build/linux/unbundle/replace_gn_files.py
--- src/build/linux/unbundle.old/replace_gn_files.py    2024-04-02 
09:53:10.734295000 +0000
+++ src/build/linux/unbundle/replace_gn_files.py        2024-04-07 
17:29:53.274515100 +0000
@@ -20,6 +20,7 @@ REPLACEMENTS = {
   'absl_base': 'third_party/abseil-cpp/absl/base/BUILD.gn',
   'absl_cleanup': 'third_party/abseil-cpp/absl/cleanup/BUILD.gn',
   'absl_container': 'third_party/abseil-cpp/absl/container/BUILD.gn',
+  'absl_crc': 'third_party/abseil-cpp/absl/crc/BUILD.gn',
   'absl_debugging': 'third_party/abseil-cpp/absl/debugging/BUILD.gn',
   'absl_flags': 'third_party/abseil-cpp/absl/flags/BUILD.gn',
   'absl_functional': 'third_party/abseil-cpp/absl/functional/BUILD.gn',

++++++ chromium-122-avoid-SFINAE-TypeConverter.patch ++++++
diff --git a/base/types/to_address.h.new b/base/types/to_address.h.new
new file mode 100644
index 0000000..ac71b01
--- /dev/null
+++ b/base/types/to_address.h
@@ -0,0 +1,40 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_TYPES_TO_ADDRESS_H_
+#define BASE_TYPES_TO_ADDRESS_H_
+
+#include <memory>
+#include <type_traits>
+
+// SFINAE-compatible wrapper for `std::to_address()`.
+//
+// The standard does not require `std::to_address()` to be SFINAE-compatible
+// when code attempts instantiation with non-pointer-like types, and 
libstdc++'s
+// implementation hard errors. For the sake of templated code that wants 
simple,
+// unified handling, Chromium instead uses this wrapper, which provides that
+// guarantee. This allows code to use "`to_address()` would be valid here" as a
+// constraint to detect pointer-like types.
+namespace base {
+
+// Note that calling `std::to_address()` with a function pointer renders the
+// program ill-formed.
+template <typename T>
+  requires(!std::is_function_v<T>)
+constexpr T* to_address(T* p) noexcept {
+  return p;
+}
+
+// These constraints cover the cases where `std::to_address()`'s fancy pointer
+// overload is well-specified.
+template <typename P>
+  requires requires(const P& p) { std::pointer_traits<P>::to_address(p); } ||
+           requires(const P& p) { p.operator->(); }
+constexpr auto to_address(const P& p) noexcept {
+  return std::to_address(p);
+}
+
+}  // namespace base
+
+#endif  // BASE_TYPES_TO_ADDRESS_H_
diff --git a/mojo/public/cpp/bindings/type_converter.h 
b/mojo/public/cpp/bindings/type_converter.h.new
index 2eddbb0..317245f 100644
--- a/mojo/public/cpp/bindings/type_converter.h
+++ b/mojo/public/cpp/bindings/type_converter.h
@@ -11,6 +11,8 @@
 #include <memory>
 #include <type_traits>
 
+#include "base/types/to_address.h"
+
 namespace mojo {
 
 // NOTE: When possible, please consider using StructTraits / UnionTraits /
@@ -99,16 +99,16 @@
 
 template <typename T, typename U>
   requires requires(const U& obj) {
-    not std::is_pointer_v<U>;
-    { mojo::ConvertTo<T>(std::to_address(obj)) } -> std::same_as<T>;
+    !std::is_pointer_v<U>;
+    { mojo::ConvertTo<T>(base::to_address(obj)) } -> std::same_as<T>;
   }
 inline T ConvertTo(const U& obj) {
-  return mojo::ConvertTo<T>(std::to_address(obj));
+  return mojo::ConvertTo<T>(base::to_address(obj));
 }
 
 template <typename T, typename U>
   requires requires(const U& obj) {
-    not std::is_pointer_v<U>;
+    !std::is_pointer_v<U>;
     TypeConverter<T, U>::Convert(obj);
   }
 inline T ConvertTo(const U& obj) {

++++++ create_tarball.sh ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.774101505 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.778101652 +0200
@@ -103,6 +103,14 @@
     cleanup_and_exit 1
 fi
 
+echo '>>>>>> Generate DAWN_VERSION'
+python3 build/util/lastchange.py \
+    -s third_party/dawn --revision gpu/webgpu/DAWN_VERSION
+if [ $? -ne 0 ]; then
+    echo 'ERROR: lastchange.py -s third_party/dawn failed'
+    cleanup_and_exit 1
+fi
+
 popd
 
 echo ">>>>>> Apply electron-${ELECTRON_PKGVERSION} patches"
@@ -163,10 +171,8 @@
     base/third_party/superfasthash #Not a shared library.
     base/third_party/symbolize #Derived code, not vendored dependency.
     base/third_party/valgrind #Copy of a private header.
-    base/third_party/xdg_mime #Seems not to be available as a shared library.
     base/third_party/xdg_user_dirs #Derived code, not vendored dependency.
     chrome/third_party/mozilla_security_manager #Derived code, not vendored 
dependency.
-    courgette/third_party #Derived code, not vendored dependency.
     net/third_party/mozilla_security_manager #Derived code, not vendored 
dependency.
     net/third_party/nss #Derived code, not vendored dependency.
     net/third_party/quiche #Not available as a shared library yet. An old 
version is in Factory (google-quiche-source)
@@ -218,21 +224,18 @@
     third_party/emoji-segmenter #not available as a shared library
     third_party/fdlibm #derived code, not vendored dep
     third_party/hunspell #heavily forked version
-    third_party/iccjpeg #not in any distro
     third_party/inspector_protocol #integral part of chrome
     third_party/ipcz #not in any distro
     third_party/jstemplate #javascript
     third_party/khronos #Modified to add ANGLE definitions
     third_party/leveldatabase #use of private headers
-    third_party/libaddressinput #seems not to be available as a separate 
library
-    third_party/libaom #version in Factory is too old
+    third_party/libaom #15.5 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
-    #third_party/libgav1 #Usage of private headers (ObuFrameHeader from 
utils/types.h) in VAAPI code only
-    third_party/libphonenumber #Depends on protobuf which cannot be unbundled
+    third_party/libavif #bleeding-edge nightly. try unbundling again when 1.1 
gets released
+    third_party/libgav1 #Usage of private headers (ObuFrameHeader from 
utils/types.h)
     third_party/libsrtp #Needs to be built against boringssl, not openssl
     third_party/libsync #not yet in any distro
     third_party/libudev #Headers for a optional delay-loaded dependency
@@ -245,6 +248,7 @@
     third_party/libxcb-keysyms #Derived code, not vendored dep
     third_party/libxml/chromium #added chromium code
     third_party/libyuv #The version in Fedora is too old
+    third_party/lit #javacript
     third_party/lottie #javascript
     third_party/lss #Wrapper for linux ABI
     #third_party/maldoca #integral part of chrome, but not used in electron.
@@ -254,10 +258,7 @@
     third_party/metrics_proto #integral part of chrome
     third_party/modp_b64 #not in Factory or Rawhide. pkgconfig(stringencoders) 
Mageia, AltLinux, Debian have it
     third_party/node #javascript code
-    third_party/omnibox_proto #integral part of chrome
     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/tinycbor #not in any distro
     third_party/ots #not available as a shared library. Fedora has the cli 
version as opentype-sanitizer
     #we don't build pdf support, removing it from tarball to save space
     #third_party/pdfium #Part of chrome, not available separately.
@@ -270,14 +271,10 @@
     third_party/perfetto/protos/third_party/chromium #derived code, not 
vendored dep
     third_party/pffft #not in any distro, also heavily patched
     third_party/polymer #javascript
-    third_party/private-join-and-compute #not in any distro, also heavily 
patched
-    third_party/private_membership #derived code, not vendored dep
     third_party/protobuf #Heavily forked. Apparently was officially 
unbundlable back in the GYP days, and may be again in the future.
-    third_party/puffin #integral part of chrome
+    third_party/re2 # fedora too old
     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/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
     third_party/swiftshader #not available as a shared library
@@ -290,9 +287,9 @@
     #third_party/tflite #Not used by electron, but chrome needs it.
     #third_party/tflite/src/third_party/eigen3
     #third_party/tflite/src/third_party/fft2d
-    third_party/vulkan-deps/spirv-headers #Leap too old
-    third_party/vulkan-deps/spirv-tools #Leap too old
-    third_party/vulkan-deps/vulkan-headers #Leap too old. CONSIDER UNBUNDLING 
when all distros have new enough vulkan sdk
+    third_party/vulkan-deps/spirv-headers #15.5 too old
+    third_party/vulkan-deps/spirv-tools #15.5 too old
+    third_party/vulkan-deps/vulkan-headers #15.5 too old. CONSIDER UNBUNDLING 
when all distros have new enough vulkan sdk
     third_party/vulkan_memory_allocator #not in Factory
     third_party/webgpu-cts #Javascript code. Needed even if you're building 
chrome without webgpu
     third_party/webrtc #Integral part of chrome
@@ -313,7 +310,6 @@
     third_party/x11proto #derived code, not vendored dep
     third_party/zlib/contrib/minizip 
#https://bugzilla.redhat.com/show_bug.cgi?id=2240599 
https://github.com/zlib-ng/minizip-ng/issues/447
     third_party/zlib/google #derived code, not vendored dep
-    third_party/zxcvbn-cpp #not in any distro, also heavily patched
     url/third_party/mozilla #derived code, not vendored dep
     v8/src/third_party/siphash #derived code, not vendored dep
     v8/src/third_party/utf8-decoder #derived code, not vendored dep
@@ -333,6 +329,8 @@
 find third_party/electron_node/deps/nghttp2 -type f ! -name "*.gn" -a ! -name 
"*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
 find third_party/electron_node/deps/openssl -type f ! -name "*.gn" -a ! -name 
"*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
 find third_party/electron_node/deps/v8 -type f ! -name "*.gn" -a ! -name 
"*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
+rm -rvf third_party/electron_node/deps/v8/tools
+ln -srv v8/tools -t third_party/electron_node/deps/v8/
 find third_party/electron_node/deps/zlib -type f ! -name "*.gn" -a ! -name 
"*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
 
 

++++++ disable-catapult.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.790102092 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.794102239 +0200
@@ -10,7 +10,7 @@
 -        "//third_party/catapult/telemetry:bitmaptools($host_toolchain)",
        ]
        if (!is_android) {
-         if (!is_castos) {
+         if (!is_castos && !is_fuchsia) {
 @@   -379,7 +378,6 @@ group("gn_all") {
          "//testing/android/junit:junit_unit_tests",
          "//third_party/android_build_tools/lint:custom_lint_java",
@@ -171,17 +171,18 @@
  
 --- a/chrome/chrome_paks.gni
 +++ b/chrome/chrome_paks.gni
-@@ -168,7 +168,6 @@ template("chrome_extra_paks") {
+@@ -190,8 +190,6 @@ template("chrome_extra_paks") {
          "$root_gen_dir/chrome/webui_gallery_resources.pak",
          "$root_gen_dir/chrome/whats_new_resources.pak",
          "$root_gen_dir/content/browser/devtools/devtools_resources.pak",
 -        "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
+-        "$root_gen_dir/content/traces_internals_resources.pak",
        ]
        deps += [
          "//chrome/browser/resources:component_extension_resources",
-@@ -198,7 +297,6 @@ template("chrome_extra_paks") {
-         "//chrome/browser/resources:component_extension_resources",
+@@ -199,7 +197,6 @@ template("chrome_extra_paks") {
          "//chrome/browser/resources:dev_ui_paks",
+         "//chrome/browser/resources/search_engine_choice:resources",
          "//content/browser/devtools:devtools_resources",
 -        "//content/browser/tracing:resources",
        ]
@@ -189,18 +190,20 @@
          sources += [
 --- a/content/shell/BUILD.gn
 +++ b/content/shell/BUILD.gn
-@@ -458,11 +458,6 @@ repack("pak") {
+@@ -535,13 +535,6 @@ repack("pak") {
      sources += [ "$root_gen_dir/content/webxr_internals_resources.pak" ]
    }
  
--  if (!is_android) {
+-  if (!is_android && !is_ios) {
 -    deps += [ "//content/browser/tracing:resources" ]
--    sources += [ 
"$root_gen_dir/content/browser/tracing/tracing_resources.pak" ]
+-    sources += [
+-      "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
+-      "$root_gen_dir/content/traces_internals_resources.pak",
+-    ]
 -  }
--
+ 
    if (is_ios) {
      sources += [
-       "$root_gen_dir/device/bluetooth/strings/bluetooth_strings_en-US.pak",
 --- a/content/browser/tracing/BUILD.gn
 +++ /dev/null
 @@ -1,39 +0,0 @@

++++++ disable-fuses.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.810102826 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.814102973 +0200
@@ -2,9 +2,9 @@
 This cannot work with a systemwide electron, and any program depending on 
features gated behind a fuse would need additional patching anyway.
 This patch removes fuse switches from the binary and makes the makes the 
compiler able to optimize away any dependant code which is now dead.
 
---- src/electron/build/fuses/build.py.old      2022-09-22 10:38:21.630415700 
+0200
-+++ src/electron/build/fuses/build.py  2022-09-25 19:02:31.522510400 +0200
-@@ -7,7 +7,9 @@
+--- src/electron/build/fuses/build.py.orig     2024-03-27 16:05:03.002778083 
+0100
++++ src/electron/build/fuses/build.py  2024-03-27 20:08:44.765543587 +0100
+@@ -7,7 +7,9 @@ import sys
  
  dir_path = os.path.dirname(os.path.realpath(__file__))
  
@@ -15,7 +15,7 @@
  
  TEMPLATE_H = """
  #ifndef ELECTRON_FUSES_H_
-@@ -23,7 +25,7 @@
+@@ -21,7 +23,7 @@ TEMPLATE_H = """
  
  namespace electron::fuses {
  
@@ -24,7 +24,7 @@
  
  {getters}
  
-@@ -41,8 +43,6 @@
+@@ -42,8 +44,6 @@ TEMPLATE_CC = """
  
  namespace electron::fuses {
  
@@ -33,19 +33,31 @@
  {getters}
  
  }  // namespace electron:fuses
-@@ -71,12 +71,18 @@
+@@ -70,23 +70,18 @@ for fuse in fuses:
    index += 1
    initial_config += fuse_defaults[fuse]
    name = ''.join(word.title() for word in fuse.split('_'))
 -  getters_h += "FUSE_EXPORT bool Is{name}Enabled();\n".replace("{name}", name)
 -  getters_cc += """
 -bool Is{name}Enabled() {
+-#if DCHECK_IS_ON()
+-  // RunAsNode is checked so early that base::CommandLine isn't yet
+-  // initialized, so guard here to avoid a CHECK.
+-  if (base::CommandLine::InitializedForCurrentProcess()) {
+-    base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+-    if (command_line->HasSwitch("{switch_name}")) {
+-      std::string switch_value = 
command_line->GetSwitchValueASCII("{switch_name}");
+-      return switch_value == "1";
+-    }
+-  }
+-#endif
 +  getters_h += """
 +constexpr bool INLINE_Is{name}Enabled() {
    return kFuseWire[{index}] == '1';
  }
+-""".replace("{name}", name).replace("{switch_name}", 
f"set-fuse-{fuse.lower()}").replace("{index}", str(index))
 +#define Is{name}Enabled INLINE_Is{name}Enabled
- """.replace("{name}", name).replace("{index}", str(index))
++""".replace("{name}", name).replace("{index}", str(index))
 +  getters_cc += """
 +#undef Is{name}Enabled
 +FUSE_EXPORT bool Is{name}Enabled() {
@@ -55,7 +67,7 @@
  
  def c_hex(n):
    s = hex(n)[2:]
-@@ -88,12 +94,13 @@
+@@ -98,12 +93,13 @@ def hex_arr(s):
      arr.append(c_hex(ord(char)))
    return ",".join(arr)
  

++++++ distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch 
++++++
--- 
src/third_party/distributed_point_functions/code/dpf/aes_128_fixed_key_hash.cc.old
  2024-04-02 11:53:27.644284500 +0200
+++ 
src/third_party/distributed_point_functions/code/dpf/aes_128_fixed_key_hash.cc  
    2024-04-02 22:24:29.350771600 +0200
@@ -26,6 +26,7 @@
 #include "absl/numeric/int128.h"
 #include "absl/status/status.h"
 #include "absl/status/statusor.h"
+#include "absl/strings/str_cat.h"
 #include "absl/types/span.h"
 #include "openssl/err.h"
 

++++++ distributed_point_functions-evaluate_prg_hwy-signature.patch ++++++
--- 
src/third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc.old
       2024-04-02 11:53:27.644284500 +0200
+++ 
src/third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc
   2024-04-02 22:35:43.377586600 +0200
@@ -50,16 +50,18 @@ namespace hn = hwy::HWY_NAMESPACE;
 #if HWY_TARGET == HWY_SCALAR
 
 absl::Status EvaluateSeedsHwy(
-    int64_t num_seeds, int num_levels, const absl::uint128* seeds_in,
-    const bool* control_bits_in, const absl::uint128* paths,
+    int64_t num_seeds, int num_levels, int num_correction_words,
+    const absl::uint128* seeds_in, const bool* control_bits_in,
+    const absl::uint128* paths, int paths_rightshift,
     const absl::uint128* correction_seeds, const bool* 
correction_controls_left,
     const bool* correction_controls_right, const Aes128FixedKeyHash& prg_left,
     const Aes128FixedKeyHash& prg_right, absl::uint128* seeds_out,
     bool* control_bits_out) {
-  return EvaluateSeedsNoHwy(num_seeds, num_levels, seeds_in, control_bits_in,
-                            paths, correction_seeds, correction_controls_left,
-                            correction_controls_right, prg_left, prg_right,
-                            seeds_out, control_bits_out);
+    return EvaluateSeedsNoHwy(
+        num_seeds, num_levels, num_correction_words, seeds_in, control_bits_in,
+        paths, paths_rightshift, correction_seeds, correction_controls_left,
+        correction_controls_right, prg_left, prg_right, seeds_out,
+        control_bits_out);
 }
 
 #else

++++++ electron-16-std-vector-non-const.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.862104734 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.866104881 +0200
@@ -23,7 +23,7 @@
 +                     const std::vector<uint8_t> additional_data,
                       SocketReader* reader);
  
-  private:
+   // Called when the ProcessSingleton that owns this class is about to be
 @@ -684,7 +684,7 @@ void ProcessSingleton::LinuxWatcher::Sta
  void ProcessSingleton::LinuxWatcher::HandleMessage(
      const std::string& current_dir,

++++++ fake_ssl_socket_client-Wlto-type-mismatch.patch ++++++
Correct ODR violation due to ambiguous name.

When this header is compiled by itself, `scoped_refptr` refers to the type 
declared in `base/memory/scoped_refptr.h`.
When `third_party/webrtc/api/scoped_refptr.h` is included before, the name 
changes to refer to `::webrtc::scoped_refptr` instead,
leading to mismatch across translation units. This is detected and reported by 
GCC.

--- src/components/webrtc/fake_ssl_client_socket.h.old
+++ src/components/webrtc/fake_ssl_client_socket.h

@@ -111,8 +111,8 @@ class FakeSSLClientSocket : public net::
   // The callback passed to Connect().
   net::CompletionOnceCallback user_connect_callback_;
 
-  scoped_refptr<net::DrainableIOBuffer> write_buf_;
-  scoped_refptr<net::DrainableIOBuffer> read_buf_;
+  ::scoped_refptr<net::DrainableIOBuffer> write_buf_;
+  ::scoped_refptr<net::DrainableIOBuffer> read_buf_;
 };
 
 }  // namespace webrtc

++++++ grid_sizing_tree-Wchanges-meaning.patch ++++++
>From 05a74771fed5491740588ec7b39ba64a7b710013 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdap...@igalia.com>
Date: Thu, 1 Feb 2024 17:34:38 +0000
Subject: [PATCH] GCC: avoid clash between getter and type in
 grid_sizing_tree.h
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Rename GridSubsizingTree::GridItems getter to GetGridItems to avoid
type clash.

Bug: 819294
Change-Id: I4112929d9f85dc4573002b429cc982d50085d3c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5224147
Reviewed-by: Xianzhu Wang <wangxian...@chromium.org>
Commit-Queue: Xianzhu Wang <wangxian...@chromium.org>
Commit-Queue: José Dapena Paz <jdap...@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1255116}
---
 .../core/layout/grid/grid_layout_algorithm.cc       | 13 +++++++------
 .../renderer/core/layout/grid/grid_sizing_tree.h    |  2 +-
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/third_party/blink/renderer/core/layout/grid/grid_sizing_tree.h 
b/third_party/blink/renderer/core/layout/grid/grid_sizing_tree.h
index 45d55e2b36da4..2148ea9ea0657 100644
--- a/third_party/blink/renderer/core/layout/grid/grid_sizing_tree.h
+++ b/third_party/blink/renderer/core/layout/grid/grid_sizing_tree.h
@@ -188,7 +188,7 @@ class GridSizingSubtree
         /* subtree_root */ grid_tree_->LookupSubgridIndex(subgrid_data));
   }
 
-  GridItems& GridItems() const {
+  ::blink::GridItems& GridItems() const {
     DCHECK(grid_tree_);
     return grid_tree_->At(subtree_root_).grid_items;
   }

++++++ harfbuzz-replace-chromium-scoped-type.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.942107669 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.946107816 +0200
@@ -41,13 +41,13 @@
  
  #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 "skia/ext/font_utils.h"
 -#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
+ #include "third_party/skia/include/core/SkFontMgr.h"
  #include "third_party/skia/include/core/SkStream.h"
  #include "third_party/skia/include/core/SkTypeface.h"
- 
 @@ -45,11 +45,11 @@
  }
  

++++++ hit_test_request-missing-optional.patch ++++++
>From 3a75d7f8dc3a08a38dd893031f8996b91a00764b Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdap...@igalia.com>
Date: Tue, 23 Jan 2024 17:55:15 +0000
Subject: [PATCH] IWYU: usage of std::optional in hit_test_request.h requires
 include

Bug: 957519
Change-Id: I1ec32af603720d13bfa4e22e20142459802284b4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5227329
Reviewed-by: Ian Kilpatrick <ikilpatr...@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatr...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1250917}
---
 third_party/blink/renderer/core/layout/hit_test_request.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/third_party/blink/renderer/core/layout/hit_test_request.h 
b/third_party/blink/renderer/core/layout/hit_test_request.h
index c33144dc975b6..38968126fe520 100644
--- a/third_party/blink/renderer/core/layout/hit_test_request.h
+++ b/third_party/blink/renderer/core/layout/hit_test_request.h
@@ -23,6 +23,8 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_HIT_TEST_REQUEST_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_HIT_TEST_REQUEST_H_
 
+#include <optional>
+
 #include "base/functional/callback.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"

++++++ libxml-2.12-xmlCtxtGetLastError-const.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:21.970108697 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:21.974108844 +0200
@@ -3,27 +3,18 @@
 
 Make code compatible with both signatures
 
---- src/third_party/blink/renderer/core/xml/xslt_processor.h.orig      
2023-11-15 19:51:53.839267200 +0000
-+++ src/third_party/blink/renderer/core/xml/xslt_processor.h   2023-11-18 
12:29:54.948129800 +0000
-@@ -78,6 +78,7 @@ class XSLTProcessor final : public Scrip
+--- src/third_party/blink/renderer/core/xml/xslt_processor.h.orig      
2024-04-02 09:53:19.064289800 +0000
++++ src/third_party/blink/renderer/core/xml/xslt_processor.h   2024-04-06 
17:07:37.951981800 +0000
+@@ -77,6 +77,7 @@ class XSLTProcessor final : public Scrip
+ 
    void reset();
  
-   static void ParseErrorFunc(void* user_data, xmlError*);
-+  static void ParseErrorFunc(void* user_data, xmlError const*);
++  static void ParseErrorFunc(void* user_data, xmlError*);
+   static void ParseErrorFunc(void* user_data, const xmlError*);
    static void GenericErrorFunc(void* user_data, const char* msg, ...);
  
-   // Only for libXSLT callbacks
---- src/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc.orig     
2023-11-15 19:51:53.839267200 +0000
-+++ src/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc  
2023-11-18 15:17:13.507401500 +0000
-@@ -66,7 +66,7 @@ void XSLTProcessor::GenericErrorFunc(voi
-   // It would be nice to do something with this error message.
- }
- 
--void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
-+void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError const *error) {
-   FrameConsole* console = static_cast<FrameConsole*>(user_data);
-   if (!console)
-     return;
+--- src/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc.orig     
2024-04-02 09:53:19.064289800 +0000
++++ src/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc  
2024-04-06 17:06:56.822190000 +0000
 @@ -92,6 +92,10 @@ void XSLTProcessor::ParseErrorFunc(void*
                                         nullptr)));
  }

++++++ mt21_util-flax-vector-conversions.patch ++++++
--- src/media/gpu/v4l2/mt21/mt21_util.h.old     2024-04-02 09:53:17.170957700 
+0000
+++ src/media/gpu/v4l2/mt21/mt21_util.h 2024-04-04 16:55:59.555998900 +0000
@@ -590,7 +590,7 @@ __attribute__((always_inline)) uint8x16_
             vshlq_u32(
                 vshlq_u32(accumulator[i], vreinterpretq_s32_u32(unary_len[i])),
                 vsubq_s32(vreinterpretq_s32_u32(binary_len[i]),
-                          dword_literal_32)));
+                          vreinterpretq_s32_u32(dword_literal_32))));
       },
       4)
 
@@ -747,7 +747,7 @@ __attribute__((always_inline)) uint8x16_
   const uint8x16_t min_pred = vminq_u8(up, right);
   const uint8x16_t max_pred = vmaxq_u8(up, right);
   const uint8x16_t right_grad = vreinterpretq_u8_s8(vaddq_s8(
-      right, vsubq_s8(vreinterpretq_s8_u8(up), 
vreinterpretq_s8_u8(up_right))));
+      vreinterpretq_s8_u8(right), vsubq_s8(vreinterpretq_s8_u8(up), 
vreinterpretq_s8_u8(up_right))));
   const uint8x16_t up_right_above_max = vcgtq_u8(up_right, max_pred);
   const uint8x16_t up_right_below_min = vcltq_u8(up_right, min_pred);
   uint8x16_t pred = vbslq_u8(up_right_above_max, max_pred, min_pred);

++++++ node-compiler.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:22.006110018 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:22.010110165 +0200
@@ -36,9 +36,9 @@
 -    cflags_cc += [ "-Wno-sign-compare" ]
    }
  }
---- src/third_party/electron_node/deps/base64/BUILD.gn.orig
-+++ src/third_party/electron_node/deps/base64/BUILD.gn
-@@ -13,11 +13,6 @@ static_library("base64") {
+--- src/third_party/electron_node/deps/base64/BUILD.gn.orig    2024-03-27 
16:38:36.306226966 +0100
++++ src/third_party/electron_node/deps/base64/BUILD.gn 2024-03-27 
20:24:12.219928228 +0100
+@@ -21,11 +21,6 @@ static_library("base64") {
  
    public_configs = [ ":base64_config" ]
  
@@ -50,65 +50,65 @@
  
    sources = [
      "base64/include/libbase64.h",
-@@ -75,7 +70,6 @@ source_set("base64_ssse3") {
-   defines = [ "HAVE_SSSE3=1" ]
+@@ -44,7 +39,6 @@ source_set("base64_ssse3") {
+     defines = [ "HAVE_SSSE3=1" ]
  
-   cflags = [ "-mssse3" ]
--  cflags_c = [ "-Wno-implicit-fallthrough" ]
- 
-   sources = [ "base64/lib/arch/ssse3/ssse3_codec.c" ]
- }
-@@ -86,7 +80,6 @@ source_set("base64_sse41") {
-   defines = [ "HAVE_SSE41=1" ]
- 
-   cflags = [ "-msse4.1" ]
--  cflags_c = [ "-Wno-implicit-fallthrough" ]
+     cflags = [ "-mssse3" ]
+-    cflags_c = [ "-Wno-implicit-fallthrough" ]
+   }
  
-   sources = [ "base64/lib/arch/sse41/sse41_codec.c" ]
- }
-@@ -100,7 +93,6 @@ source_set("base64_sse42") {
-   ]
+   sources = [ "base64/lib/arch/ssse3/codec.c" ]
+@@ -57,7 +51,6 @@ source_set("base64_sse41") {
+     defines = [ "HAVE_SSE41=1" ]
  
-   cflags = [ "-msse4.2" ]
--  cflags_c = [ "-Wno-implicit-fallthrough" ]
+     cflags = [ "-msse4.1" ]
+-    cflags_c = [ "-Wno-implicit-fallthrough" ]
+   }
  
-   sources = [ "base64/lib/arch/sse42/sse42_codec.c" ]
- }
-@@ -111,7 +103,6 @@ source_set("base64_avx") {
-   defines = [ "HAVE_AVX=1" ]
+   sources = [ "base64/lib/arch/sse41/codec.c" ]
+@@ -74,7 +67,6 @@ source_set("base64_sse42") {
+     ]
  
-   cflags = [ "-mavx" ]
--  cflags_c = [ "-Wno-implicit-fallthrough" ]
+     cflags = [ "-msse4.2" ]
+-    cflags_c = [ "-Wno-implicit-fallthrough" ]
+   }
  
-   sources = [ "base64/lib/arch/avx/avx_codec.c" ]
- }
-@@ -122,10 +113,6 @@ source_set("base64_avx2") {
-   defines = [ "HAVE_AVX2=1" ]
+   sources = [ "base64/lib/arch/sse42/codec.c" ]
+@@ -87,7 +79,6 @@ source_set("base64_avx") {
+     defines = [ "HAVE_AVX=1" ]
  
-   cflags = [ "-mavx2" ]
--  cflags_c = [
--    "-Wno-implicit-fallthrough",
--    "-Wno-implicit-function-declaration",
--  ]
+     cflags = [ "-mavx" ]
+-    cflags_c = [ "-Wno-implicit-fallthrough" ]
+   }
  
-   sources = [ "base64/lib/arch/avx2/avx2_codec.c" ]
- }
-@@ -136,7 +123,6 @@ source_set("base64_neon32") {
-   defines = [ "HAVE_NEON32=1" ]
+   sources = [ "base64/lib/arch/avx/codec.c" ]
+@@ -100,10 +91,6 @@ source_set("base64_avx2") {
+     defines = [ "HAVE_AVX2=1" ]
+ 
+     cflags = [ "-mavx2" ]
+-    cflags_c = [
+-      "-Wno-implicit-fallthrough",
+-      "-Wno-implicit-function-declaration",
+-    ]
+   }
  
-   cflags = [ "-mfpu=neon" ]
--  cflags_c = [ "-Wno-implicit-fallthrough" ]
+   sources = [ "base64/lib/arch/avx2/codec.c" ]
+@@ -116,7 +103,6 @@ source_set("base64_neon32") {
+     defines = [ "HAVE_NEON32=1" ]
  
-   sources = [ "base64/lib/arch/neon32/neon32_codec.c" ]
- }
-@@ -146,7 +132,6 @@ source_set("base64_neon64") {
+     cflags = [ "-mfpu=neon" ]
+-    cflags_c = [ "-Wno-implicit-fallthrough" ]
+   }
  
-   defines = [ "HAVE_NEON64=1" ]
+   sources = [ "base64/lib/arch/neon32/codec.c" ]
+@@ -128,7 +114,6 @@ source_set("base64_neon64") {
+   if (target_cpu == "arm64") {
+     defines = [ "HAVE_NEON64=1" ]
  
--  cflags_c = [ "-Wno-implicit-fallthrough" ]
+-    cflags_c = [ "-Wno-implicit-fallthrough" ]
+   }
  
-   sources = [ "base64/lib/arch/neon64/neon64_codec.c" ]
- }
+   sources = [ "base64/lib/arch/neon64/codec.c" ]
 --- src/third_party/electron_node/deps/histogram/BUILD.gn.old
 +++ src/third_party/electron_node/deps/histogram/BUILD.gn
 @@ -1,12 +1,6 @@

++++++ partition_alloc-no-lto.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:22.030110899 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:22.030110899 +0200
@@ -2,7 +2,7 @@
 
 --- src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.old    
2022-10-01 13:53:03.367797474 +0200
 +++ src/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn        
2022-10-05 14:23:53.999860356 +0200
-@@ -51,6 +51,33 @@
+@@ -90,6 +90,33 @@ if (!is_debug || partition_alloc_optimiz
    _add_configs += [ "//build/config/compiler:no_optimize" ]
  }
  
@@ -33,43 +33,44 @@
 + }
 +}
 +
- component("partition_alloc") {
-   public_deps = [
-     ":allocator_base",
-@@ -262,24 +278,9 @@
+ component("raw_ptr") {
+   # `gn check` is unhappy with most `#includes` when PA isn't
+   # actually built.
+@@ -497,25 +524,10 @@ if (is_clang_or_gcc) {
+       # The Android NDK supports PR_MTE_* macros as of NDK r23.
+       defines += [ "HAS_PR_MTE_MACROS" ]
      }
-   }
-+  deps = [ ":allocator_base" ]
-   if (use_starscan) {
--    if (current_cpu == "x64") {
--      assert(pcscan_stack_supported)
--      sources += [ "starscan/stack/asm/x64/push_registers_asm.cc" ]
--    } else if (current_cpu == "x86") {
--      assert(pcscan_stack_supported)
--      sources += [ "starscan/stack/asm/x86/push_registers_asm.cc" ]
--    } else if (current_cpu == "arm") {
--      assert(pcscan_stack_supported)
--      sources += [ "starscan/stack/asm/arm/push_registers_asm.cc" ]
--    } else if (current_cpu == "arm64") {
--      assert(pcscan_stack_supported)
--      sources += [ "starscan/stack/asm/arm64/push_registers_asm.cc" ]
--    } else if (current_cpu == "riscv64") {
--      assert(pcscan_stack_supported)
--      sources += [ "starscan/stack/asm/riscv64/push_registers_asm.cc" ]
--    } else {
--      # To support a trampoline for another arch, please refer to 
v8/src/heap/base.
--      assert(!pcscan_stack_supported)
-+    if (current_cpu == "x64" || current_cpu == "x86" || current_cpu == "arm" 
|| current_cpu == "arm64" || current_cpu == "riscv64") {
-+      deps += [ ":partition_alloc_asm" ]
++    deps = [ ":allocator_base" ]
+     if (use_starscan) {
+-      if (current_cpu == "x64") {
+-        assert(pcscan_stack_supported)
+-        sources += [ "starscan/stack/asm/x64/push_registers_asm.cc" ]
+-      } else if (current_cpu == "x86") {
+-        assert(pcscan_stack_supported)
+-        sources += [ "starscan/stack/asm/x86/push_registers_asm.cc" ]
+-      } else if (current_cpu == "arm") {
+-        assert(pcscan_stack_supported)
+-        sources += [ "starscan/stack/asm/arm/push_registers_asm.cc" ]
+-      } else if (current_cpu == "arm64") {
+-        assert(pcscan_stack_supported)
+-        sources += [ "starscan/stack/asm/arm64/push_registers_asm.cc" ]
+-      } else if (current_cpu == "riscv64") {
+-        assert(pcscan_stack_supported)
+-        sources += [ "starscan/stack/asm/riscv64/push_registers_asm.cc" ]
+-      } else {
+-        # To support a trampoline for another arch, please refer to 
v8/src/heap/base.
+-        assert(!pcscan_stack_supported)
++      if (current_cpu == "x64" || current_cpu == "x86" || current_cpu == 
"arm" || current_cpu == "arm64" || current_cpu == "riscv64") {
++        deps += [ ":partition_alloc_asm" ]
+       }
      }
-   }
-   if (use_freelist_pool_offsets) {
-@@ -289,7 +295,6 @@
-     ":memory_tagging",
-     "//build/config/compiler:wexit_time_destructors",
-   ]
--  deps = [ ":allocator_base" ]
-   public_configs = []
-   if (is_android) {
-     # tagging.cc requires __arm_mte_set_* functions.
+     if (use_freelist_pool_offsets) {
+@@ -536,7 +548,6 @@ if (is_clang_or_gcc) {
+       ":memory_tagging",
+       "//build/config/compiler:wexit_time_destructors",
+     ]
+-    deps = [ ":allocator_base" ]
+     public_configs = []
+     if (is_android) {
+       # tagging.cc requires __arm_mte_set_* functions.
 

++++++ perfetto-numeric_storage-double_t.patch ++++++
--- /var/tmp/diff_new_pack.bZXLSy/_old  2024-04-21 20:27:22.046111486 +0200
+++ /var/tmp/diff_new_pack.bZXLSy/_new  2024-04-21 20:27:22.050111632 +0200
@@ -1,12 +1,12 @@
 Fix inconsistent type alias use
 On linux ix86, `double_t` evaluates to `long double`. This contradicts the 
`double` expected below.
 
---- 
src/third_party/perfetto/src/trace_processor/db/storage/numeric_storage.cc.old  
   2023-10-13 11:25:09.719946900 +0200
-+++ src/third_party/perfetto/src/trace_processor/db/storage/numeric_storage.cc 
2023-10-14 23:54:10.728423000 +0200
-@@ -29,7 +29,7 @@ namespace storage {
+--- 
src/third_party/perfetto/src/trace_processor/db/column/numeric_storage.cc.old   
   2023-10-13 11:25:09.719946900 +0200
++++ src/third_party/perfetto/src/trace_processor/db/column/numeric_storage.cc  
2023-10-14 23:54:10.728423000 +0200
+@@ -39,7 +39,7 @@ namespace trace_processor {
+ namespace column {
  namespace {
  
- // All viable numeric values for ColumnTypes.
 -using NumericValue = std::variant<uint32_t, int32_t, int64_t, double_t>;
 +using NumericValue = std::variant<uint32_t, int32_t, int64_t, double>;
  

++++++ plus_address_types-missing-optional.patch ++++++
>From 8d253767f895b45053c39ea99a8f02bbe7071d3a Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdap...@igalia.com>
Date: Mon, 19 Feb 2024 19:00:26 +0000
Subject: [PATCH] IWYU: usage of std::optional in plus_address_types.h requires
 include
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Bug: 41455655
Change-Id: Ibfda146f5bf7485ad31828f1dc22eb39b57f83b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5306779
Reviewed-by: Jan Keitel <jkei...@google.com>
Commit-Queue: José Dapena Paz <jdap...@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1262436}
---
 components/plus_addresses/plus_address_types.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/components/plus_addresses/plus_address_types.h 
b/components/plus_addresses/plus_address_types.h
index 7a7eaa2a818a9..77569d345011a 100644
--- a/components/plus_addresses/plus_address_types.h
+++ b/components/plus_addresses/plus_address_types.h
@@ -5,6 +5,7 @@
 #ifndef COMPONENTS_PLUS_ADDRESSES_PLUS_ADDRESS_TYPES_H_
 #define COMPONENTS_PLUS_ADDRESSES_PLUS_ADDRESS_TYPES_H_
 
+#include <optional>
 #include <string>
 #include <unordered_map>
 

++++++ race_network_request_write_buffer_manager-missing-optional.patch ++++++
>From 5b2d53797e5580cbfea00d732fe25a97c7048b5b Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdap...@igalia.com>
Date: Wed, 24 Jan 2024 06:46:33 +0000
Subject: [PATCH] IWYU: missing include for std::optional usage in
 race_network_request_write_buffer_manager.h
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Bug: 957519
Change-Id: Id3a6c3cc3c1273208bde43b70a2bd298695f7cc4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5223947
Reviewed-by: Shunya Shishido <sisidov...@chromium.org>
Commit-Queue: José Dapena Paz <jdap...@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1251264}
---
 .../service_worker/race_network_request_write_buffer_manager.h  | 2 ++
 1 file changed, 2 insertions(+)

diff --git 
a/content/common/service_worker/race_network_request_write_buffer_manager.h 
b/content/common/service_worker/race_network_request_write_buffer_manager.h
index 0e7f17417dbd9..ad9ea1348a977 100644
--- a/content/common/service_worker/race_network_request_write_buffer_manager.h
+++ b/content/common/service_worker/race_network_request_write_buffer_manager.h
@@ -5,6 +5,8 @@
 #ifndef 
CONTENT_COMMON_SERVICE_WORKER_RACE_NETWORK_REQUEST_WRITE_BUFFER_MANAGER_H_
 #define 
CONTENT_COMMON_SERVICE_WORKER_RACE_NETWORK_REQUEST_WRITE_BUFFER_MANAGER_H_
 
+#include <optional>
+
 #include "base/containers/span.h"
 #include "content/common/content_export.h"
 #include "mojo/public/cpp/system/data_pipe.h"

++++++ remove-dawn.patch ++++++
Remove this unused component which brings a huge dependency on 
//third_party/dawn/native which we don't want to build

--- src/content/utility/BUILD.gn.orig
+++ src/content/utility/BUILD.gn
@@ -64,9 +64,6 @@ source_set("utility") {
     "//services/data_decoder:lib",
     "//services/data_decoder/public/cpp",
     "//services/network:network_service",
-    "//services/on_device_model:on_device_model_service",
-    "//services/on_device_model/public/cpp",
-    "//services/on_device_model/public/mojom",
     "//services/service_manager/public/cpp",
     "//services/service_manager/public/mojom",
     "//services/shape_detection:lib",
--- src/content/utility/services.cc.orig
+++ src/content/utility/services.cc
@@ -31,7 +31,6 @@
 #include "services/audio/service_factory.h"
 #include "services/data_decoder/data_decoder_service.h"
 #include "services/network/network_service.h"
-#include "services/on_device_model/on_device_model_service.h"
 #include "services/tracing/public/mojom/tracing_service.mojom.h"
 #include "services/tracing/tracing_service.h"
 #include "services/video_capture/public/mojom/video_capture_service.mojom.h"
@@ -327,13 +326,6 @@ auto RunVideoCapture(
   return service;
 }
 
-auto RunOnDeviceModel(
-    mojo::PendingReceiver<on_device_model::mojom::OnDeviceModelService>
-        receiver) {
-  return std::make_unique<on_device_model::OnDeviceModelService>(
-      std::move(receiver));
-}
-
 #if BUILDFLAG(ENABLE_VR) && !BUILDFLAG(IS_ANDROID)
 auto RunXrDeviceService(
     mojo::PendingReceiver<device::mojom::XRDeviceService> receiver) {
@@ -408,9 +400,6 @@ void RegisterMainThreadServices(mojo::Se
   services.Add(RunTracing);
   services.Add(RunVideoCapture);
 
-  if (optimization_guide::features::CanLaunchOnDeviceModelService()) {
-    services.Add(RunOnDeviceModel);
-  }
 
 #if BUILDFLAG(GOOGLE_CHROME_BRANDING) && BUILDFLAG(IS_CHROMEOS)
   services.Add(RunShapeDetectionService);
--- src/content/utility/utility_main.cc.old     2024-04-02 09:53:16.050958400 
+0000
+++ src/content/utility/utility_main.cc 2024-04-07 17:41:04.823696600 +0000
@@ -32,7 +32,6 @@
 #include "sandbox/policy/mojom/sandbox.mojom.h"
 #include "sandbox/policy/sandbox.h"
 #include "sandbox/policy/sandbox_type.h"
-#include "services/on_device_model/on_device_model_service.h"
 #include "services/tracing/public/cpp/trace_startup.h"
 #include "third_party/icu/source/common/unicode/unistr.h"
 #include "third_party/icu/source/i18n/unicode/timezone.h"
@@ -202,10 +201,6 @@ int UtilityMain(MainFunctionParams param
           ? base::MessagePumpType::UI
           : base::MessagePumpType::DEFAULT;
 
-  if (parameters.command_line->GetSwitchValueASCII(switches::kUtilitySubType) 
==
-      on_device_model::mojom::OnDeviceModelService::Name_) {
-    CHECK(on_device_model::OnDeviceModelService::PreSandboxInit());
-  }
 
 #if BUILDFLAG(IS_MAC)
   auto sandbox_type =
@@ -283,11 +278,6 @@ int UtilityMain(MainFunctionParams param
     case sandbox::mojom::Sandbox::kAudio:
       pre_sandbox_hook = base::BindOnce(&audio::AudioPreSandboxHook);
       break;
-    case sandbox::mojom::Sandbox::kOnDeviceModelExecution:
-      on_device_model::OnDeviceModelService::AddSandboxLinuxOptions(
-          sandbox_options);
-      pre_sandbox_hook = base::BindOnce(&GpuPreSandboxHook);
-      break;
     case sandbox::mojom::Sandbox::kSpeechRecognition:
       pre_sandbox_hook =
           base::BindOnce(&speech::SpeechRecognitionPreSandboxHook);

++++++ remove-openscreen.patch ++++++
--- src/chrome/common/BUILD.gn.old
+++ src/chrome/common/BUILD.gn
@@ -350,7 +350,6 @@ static_library("common_lib") {
       "//extensions/common:core_api_provider",
       "//extensions/common/api",
       "//extensions/strings",
-      "//media/cast:net",
       "//services/device/public/cpp/usb",
     ]
   }

++++++ remove-password-manager-and-policy.patch ++++++
>From 54ec71011a6ebb873590802a70b2bc07578ba201 Mon Sep 17 00:00:00 2001
From: Szabolcs David <davi...@inf.u-szeged.hu>
Date: Mon, 10 Oct 2022 17:20:43 +0200
Subject: Make user agent helpers buildable without unwanted dependencies

"//components/policy" is enormously large with its resource files and
we don't want to build it for only one preference name.

User agent utils are required to fill
navigator.userAgentData members in JavaScript.

Task-number: QTBUG-107260
Task-number: QTBUG-107451
Change-Id: I752df68a8095ddb3f598a71f0419c1a2c9c408bb
Reviewed-by: Allan Sandfeld Jensen <allan.jen...@qt.io>
---
 chromium/components/embedder_support/user_agent_utils.cc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/chromium/components/embedder_support/user_agent_utils.cc 
b/chromium/components/embedder_support/user_agent_utils.cc
index c957a691efc..408fb837d80 100644
--- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc
@@ -446,12 +446,14 @@ blink::UserAgentMetadata GetUserAgentMetadata(const 
PrefService* pref_service,
   blink::UserAgentMetadata metadata;
 
   bool enable_updated_grease_by_policy = true;
+#if 0
   if (pref_service) {
     if (pref_service->HasPrefPath(
             policy::policy_prefs::kUserAgentClientHintsGREASEUpdateEnabled))
       enable_updated_grease_by_policy = pref_service->GetBoolean(
           policy::policy_prefs::kUserAgentClientHintsGREASEUpdateEnabled);
   }
+#endif
 
   // Low entropy client hints.
   metadata.brand_version_list =
-- 
cgit v1.2.3



…and now come Electron—specific changes to support the above:

--- src/components/browsing_data/core/BUILD.gn.old
+++ src/components/browsing_data/core/BUILD.gn
@@ -36,9 +36,7 @@ static_library("core") {
   deps = [
     "//base",
     "//components/autofill/core/browser",
-    "//components/bookmarks/browser",
     "//components/history/core/browser",
-    "//components/password_manager/core/browser",
     "//components/pref_registry",
     "//components/prefs",
     "//components/strings",
--- src/components/sync/BUILD.gn.old
+++ src/components/sync/BUILD.gn
@@ -11,7 +11,6 @@ group("sync") {
     "//components/sync/engine",
     "//components/sync/model",
     "//components/sync/nigori",
-    "//components/sync/service",
   ]
   if (is_chromeos) {
     public_deps += [ "//components/sync/chromeos" ]
--- src/components/permissions/prediction_service/BUILD.gn.old
+++ src/components/permissions/prediction_service/BUILD.gn
@@ -31,8 +31,6 @@ source_set("prediction_service") {
   ]
   public_deps = [
     ":prediction_service_messages_proto",
-    "//components/optimization_guide/core",
-    "//components/optimization_guide/proto:optimization_guide_proto",
   ]
 
   if (build_with_tflite_lib) {
--- src/components/embedder_support/BUILD.gn.old
+++ src/components/embedder_support/BUILD.gn
@@ -24,11 +24,8 @@ static_library("browser_util") {
   deps = [
     ":embedder_support",
     "//build:branding_buildflags",
-    "//components/background_sync",
-    "//components/content_settings/browser",
     "//components/content_settings/core/browser",
     "//components/permissions",
-    "//components/policy/core/common",
     "//components/prefs",
     "//components/version_info",
     "//content/public/browser",
--- src/components/permissions/BUILD.gn.old
+++ src/components/permissions/BUILD.gn
@@ -109,8 +109,6 @@ source_set("permissions") {
   deps = [
     "//base",
     "//build:chromeos_buildflags",
-    "//components/back_forward_cache",
-    "//components/content_settings/browser",
     "//components/content_settings/core/browser",
     "//components/favicon/core:core",
     "//components/keyed_service/content",
--- src/components/proxy_config/BUILD.gn.old
+++ src/components/proxy_config/BUILD.gn
@@ -23,9 +23,6 @@ component("proxy_config") {
 
   deps = [
     "//base",
-    "//components/policy:generated",
-    "//components/policy/core/browser",
-    "//components/policy/core/common",
     "//components/prefs",
     "//components/strings",
     "//net",
@@ -42,7 +39,7 @@ component("proxy_config") {
     deps += [ "//components/pref_registry" ]
   }
 
-  if (!is_ios) {
+  if (false) {
     sources += [
       "proxy_policy_handler.cc",
       "proxy_policy_handler.h",
--- src/components/content_settings/core/browser/BUILD.gn.old
+++ src/components/content_settings/core/browser/BUILD.gn
@@ -70,7 +70,7 @@ static_library("browser") {
     "//url",
   ]
 
-  if (!is_ios) {
+  if (false) {
     sources += [
       "cookie_settings_policy_handler.cc",
       "cookie_settings_policy_handler.h",
@@ -82,8 +82,6 @@ static_library("browser") {
   if (use_blink) {
     deps += [
       "//components/permissions:permissions_common",
-      "//components/policy:generated",
-      "//components/policy/core/browser",
       "//components/privacy_sandbox:privacy_sandbox_prefs",
     ]
   }
--- src/electron/chromium_src/BUILD.gn.orig
+++ src/electron/chromium_src/BUILD.gn
@@ -466,7 +466,7 @@ source_set("chrome_spellchecker") {
       "//chrome/browser/spellchecker/spellcheck_service.h",
     ]
 
-    if (!is_mac) {
+    if (false) {
       sources += [
         
"//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.cc",
         
"//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.h",
--- src/chrome/common/BUILD.gn.old
+++ src/chrome/common/BUILD.gn
@@ -210,14 +210,11 @@ static_library("common_lib") {
     "//components/nacl/common:switches",
     "//components/net_log",
     "//components/network_session_configurator/common",
-    "//components/ntp_tiles",
     "//components/offline_pages/buildflags",
     "//components/offline_pages/core:switches",
     "//components/omnibox/common",
     "//components/page_load_metrics/common:page_load_metrics_mojom",
     "//components/password_manager/core/common",
-    "//components/policy:generated",
-    "//components/policy/core/common",
     "//components/prefs",
     "//components/safe_browsing:buildflags",
     "//components/safe_search_api",
@@ -606,8 +603,6 @@ static_library("url_constants") {
     "//components/lens:buildflags",
     "//components/nacl/common:buildflags",
     
"//components/optimization_guide/optimization_guide_internals/webui:url_constants",
-    "//components/password_manager/content/common",
-    "//components/safe_browsing/core/common",
     "//device/vr/buildflags",
   ]
 }
--- src/components/search_engines/BUILD.gn.old
+++ src/components/search_engines/BUILD.gn
@@ -15,47 +15,25 @@ static_library("search_engines") {
     "choice_made_location.h",
     "default_search_manager.cc",
     "default_search_manager.h",
-    "default_search_policy_handler.cc",
-    "default_search_policy_handler.h",
     "eea_countries_ids.h",
     "enterprise_site_search_manager.cc",
     "enterprise_site_search_manager.h",
-    "keyword_table.cc",
-    "keyword_table.h",
     "keyword_web_data_service.cc",
     "keyword_web_data_service.h",
-    "search_engine_choice/search_engine_choice_service.cc",
-    "search_engine_choice/search_engine_choice_service.h",
-    "search_engine_choice_utils.cc",
-    "search_engine_choice_utils.h",
     "search_engines_pref_names.h",
     "search_engines_switches.cc",
     "search_engines_switches.h",
-    "search_host_to_urls_map.cc",
-    "search_host_to_urls_map.h",
     "search_terms_data.cc",
     "search_terms_data.h",
-    "template_url.cc",
-    "template_url.h",
     "template_url_data.cc",
     "template_url_data.h",
     "template_url_data_util.cc",
     "template_url_data_util.h",
-    "template_url_fetcher.cc",
-    "template_url_fetcher.h",
     "template_url_id.h",
-    "template_url_parser.cc",
-    "template_url_parser.h",
-    "template_url_prepopulate_data.cc",
-    "template_url_prepopulate_data.h",
-    "template_url_service.cc",
-    "template_url_service.h",
     "template_url_service_client.h",
     "template_url_service_observer.h",
     "template_url_starter_pack_data.cc",
     "template_url_starter_pack_data.h",
-    "util.cc",
-    "util.h",
   ]
 
   public_deps = [
@@ -69,20 +47,14 @@ static_library("search_engines") {
     "//components/sync",
     "//components/webdata/common",
     "//third_party/metrics_proto",
-    "//third_party/omnibox_proto",
   ]
 
   deps = [
     "//base:i18n",
     "//components/country_codes",
     "//components/database_utils",
-    "//components/infobars/core",
-    "//components/lens:lens",
     "//components/omnibox/common",
-    "//components/policy:generated",
-    "//components/policy/core/browser",
     "//components/pref_registry",
-    "//components/search_provider_logos:switches",
     "//components/signin/public/base",
     "//components/strings",
     "//components/url_formatter",
@@ -94,7 +66,6 @@ static_library("search_engines") {
     "//services/network/public/mojom",
     "//sql",
     "//third_party/metrics_proto",
-    "//third_party/omnibox_proto",
     "//ui/base",
     "//ui/gfx",
     "//ui/gfx/geometry",
@@ -120,7 +91,7 @@ static_library("search_engines") {
     ]
   }
 
-  if (is_linux || is_win || is_mac || is_chromeos_ash) {
+  if (false) {
     sources += [
       "site_search_policy_handler.cc",
       "site_search_policy_handler.h",
--- src/components/search/BUILD.gn.old
+++ src/components/search/BUILD.gn
@@ -6,10 +6,6 @@ static_library("search") {
   sources = [
     "ntp_features.cc",
     "ntp_features.h",
-    "search.cc",
-    "search.h",
-    "search_provider_observer.cc",
-    "search_provider_observer.h",
   ]
 
   deps = [

++++++ remove-puffin.patch ++++++
--- src/content/utility/speech/BUILD.gn.orig
+++ src/content/utility/speech/BUILD.gn
@@ -10,7 +10,6 @@ source_set("speech_recognition_sandbox_h
 
   deps = [
     "//base",
-    "//components/component_updater:component_updater",
     "//components/soda:buildflags",
     "//components/soda:constants",
     "//sandbox/linux:sandbox_services",
--- src/chrome/common/BUILD.gn.old
+++ src/chrome/common/BUILD.gn
@@ -193,7 +193,6 @@ static_library("common_lib") {
     "//chrome/installer/util:with_no_strings",
     "//components/client_hints/common",
     "//components/cloud_devices/common",
-    "//components/component_updater",
     "//components/content_settings/core/common",
     "//components/crash/core/common",
     "//components/device_signals/core/common:features",
--- src/components/services/screen_ai/BUILD.gn.old
+++ src/components/services/screen_ai/BUILD.gn
@@ -41,8 +41,6 @@ if (is_linux || is_chromeos) {
 
     deps = [
       "//base",
-      "//components/component_updater",
-      "//components/services/screen_ai/public/cpp:utilities",
       "//sandbox/linux:sandbox_services",
       "//ui/accessibility:ax_base",
     ]

++++++ remove-rust.patch ++++++
Remove this dead code which brings a dependency on rustc

--- src/components/BUILD.gn.orig        2024-03-27 16:30:09.189645288 +0100
+++ src/components/BUILD.gn     2024-03-28 23:11:14.847582213 +0100
@@ -282,7 +282,6 @@ test("components_unittests") {
     "//components/profile_metrics:unit_tests",
     "//components/proxy_config:unit_tests",
     "//components/push_notification:unit_tests",
-    "//components/qr_code_generator:unit_tests",
     "//components/query_parser:unit_tests",
     "//components/reading_list/core:unit_tests",
     "//components/reporting/client:unit_tests",
--- src/chrome/test/BUILD.gn.orig       2024-03-27 16:37:20.829583999 +0100
+++ src/chrome/test/BUILD.gn    2024-03-28 23:15:36.696977127 +0100
@@ -1765,8 +1765,6 @@ if (!is_android && !is_fuchsia) {
       "//chrome/common/privacy_budget:test_support",
       "//chrome/renderer",
       "//chrome/renderer/companion/visual_query:browser_tests",
-      "//chrome/services/qrcode_generator/public/cpp",
-      "//chrome/services/qrcode_generator/public/mojom",
       "//chrome/services/removable_storage_writer:lib",
       "//chrome/test/data/webui:resources_grit",
       "//chrome/test/data/webui/mojo:mojo_bindings",
@@ -6818,7 +6816,6 @@ if (!is_fuchsia) {
       "//chrome/common/themes:unit_tests",
       "//chrome/renderer/companion/visual_query:unit_tests",
       "//chrome/services/file_util:unit_tests",
-      "//chrome/services/qrcode_generator/public/cpp",
       "//components/account_id",
       "//components/assist_ranker/proto",
       "//components/autofill/content/browser:test_support",
--- src/chrome/services/qrcode_generator/BUILD.gn.orig  2024-03-27 
16:30:07.952978653 +0100
+++ src/chrome/services/qrcode_generator/BUILD.gn       2024-03-28 
23:20:47.829864401 +0100
@@ -15,8 +15,6 @@ source_set("qrcode_generator") {
   deps = [
     "//base",
     "//chrome:strings",
-    "//components/qr_code_generator",
-    "//components/qr_code_generator:qr_code_generator_features",
     "//components/vector_icons",
     "//mojo/public/cpp/bindings",
     "//net",
--- src/chrome/services/qrcode_generator/public/cpp/BUILD.gn.orig       
2024-03-27 16:30:07.952978653 +0100
+++ src/chrome/services/qrcode_generator/public/cpp/BUILD.gn    2024-03-28 
23:22:28.019734555 +0100
@@ -15,7 +15,6 @@ source_set("cpp") {
     "//chrome:strings",
     "//chrome/services/qrcode_generator",
     "//chrome/services/qrcode_generator/public/mojom",
-    "//components/qr_code_generator:qr_code_generator_features",
     "//content/public/browser",
     "//skia",
   ]

++++++ resolution_monitor-missing-bitset.patch ++++++
>From 214859e3567ea9def85305e4f021a5d407e1ccfe Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdap...@igalia.com>
Date: Tue, 23 Jan 2024 10:56:36 +0000
Subject: [PATCH] IWYU: missing include for usage of std::bitset in
 resolution_monitor.cc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Bug: 957519
Change-Id: Ia538bbca63105397963632d2a145886e256efeb6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5190545
Commit-Queue: José Dapena Paz <jdap...@igalia.com>
Reviewed-by: Henrik Boström <h...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1250732}
---
 .../renderer/platform/peerconnection/resolution_monitor.cc      | 2 ++
 1 file changed, 2 insertions(+)

diff --git 
a/third_party/blink/renderer/platform/peerconnection/resolution_monitor.cc 
b/third_party/blink/renderer/platform/peerconnection/resolution_monitor.cc
index 5d6a6495045c4..33135a1b22473 100644
--- a/third_party/blink/renderer/platform/peerconnection/resolution_monitor.cc
+++ b/third_party/blink/renderer/platform/peerconnection/resolution_monitor.cc
@@ -4,6 +4,8 @@
 
 #include 
"third_party/blink/renderer/platform/peerconnection/resolution_monitor.h"
 
+#include <bitset>
+
 #include "base/containers/span.h"
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"

++++++ script_promise_resolver-explicit-specialization.patch ++++++
>From 8b293359cafbc741e7742de824b98fbf87a51b51 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdap...@igalia.com>
Date: Thu, 8 Feb 2024 09:32:57 +0000
Subject: [PATCH] Do not use templates for ScriptPromiseResolver::ToV8
 implementation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The usage of templates for reusing the internal implementation of ToV8
is not making the code simpler. So, inline the implementations.

This also fixes a GCC build issue because it was implemented with
template specializations declared in the class scope, and that is
hitting the GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85282

Bug: 819294
Change-Id: I51f5a9e0a6e80ac707b630f270179c29fd84b059
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5223626
Commit-Queue: José Dapena Paz <jdap...@igalia.com>
Reviewed-by: Yuki Shiino <yukishi...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1257835}
---
 .../core/v8/script_promise_resolver.h         | 60 +++++--------------
 1 file changed, 14 insertions(+), 46 deletions(-)

diff --git 
a/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h 
b/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
index 93cecd06c2814..ae0081b735a67 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
@@ -316,70 +316,38 @@ class CORE_EXPORT ScriptPromiseResolver
     return V8String(isolate, value);
   }
 
-  template <size_t sizeOfValue>
-  static v8::Local<v8::Value> ToV8SignedIntegerInternal(int64_t value,
-                                                        v8::Isolate*);
-
-  template <>
-  v8::Local<v8::Value> ToV8SignedIntegerInternal<4>(int64_t value,
-                                                    v8::Isolate* isolate) {
-    return v8::Integer::New(isolate, static_cast<int32_t>(value));
-  }
-
-  template <>
-  v8::Local<v8::Value> ToV8SignedIntegerInternal<8>(int64_t value,
-                                                    v8::Isolate* isolate) {
-    int32_t value_in32_bit = static_cast<int32_t>(value);
-    if (value_in32_bit == value) {
-      return v8::Integer::New(isolate, value_in32_bit);
-    }
-    // V8 doesn't have a 64-bit integer implementation.
-    return v8::Number::New(isolate, value);
-  }
-
-  template <size_t sizeOfValue>
-  static v8::Local<v8::Value> ToV8UnsignedIntegerInternal(uint64_t value,
-                                                          v8::Isolate*);
-
-  template <>
-  v8::Local<v8::Value> ToV8UnsignedIntegerInternal<4>(uint64_t value,
-                                                      v8::Isolate* isolate) {
-    return v8::Integer::NewFromUnsigned(isolate, static_cast<uint32_t>(value));
-  }
-
-  template <>
-  v8::Local<v8::Value> ToV8UnsignedIntegerInternal<8>(uint64_t value,
-                                                      v8::Isolate* isolate) {
-    uint32_t value_in32_bit = static_cast<uint32_t>(value);
-    if (value_in32_bit == value) {
-      return v8::Integer::NewFromUnsigned(isolate, value_in32_bit);
-    }
-    // V8 doesn't have a 64-bit integer implementation.
-    return v8::Number::New(isolate, value);
-  }
-
   static v8::Local<v8::Value> ToV8(int32_t value,
                                    v8::Local<v8::Object> creation_context,
                                    v8::Isolate* isolate) {
-    return ToV8SignedIntegerInternal<sizeof value>(value, isolate);
+    return v8::Integer::New(isolate, value);
   }
 
   static v8::Local<v8::Value> ToV8(int64_t value,
                                    v8::Local<v8::Object> creation_context,
                                    v8::Isolate* isolate) {
-    return ToV8SignedIntegerInternal<sizeof value>(value, isolate);
+    int32_t value_in32_bit = static_cast<int32_t>(value);
+    if (value_in32_bit == value) {
+      return v8::Integer::New(isolate, value_in32_bit);
+    }
+    // V8 doesn't have a 64-bit integer implementation.
+    return v8::Number::New(isolate, value);
   }
 
   static v8::Local<v8::Value> ToV8(uint32_t value,
                                    v8::Local<v8::Object> creation_context,
                                    v8::Isolate* isolate) {
-    return ToV8UnsignedIntegerInternal<sizeof value>(value, isolate);
+    return v8::Integer::NewFromUnsigned(isolate, value);
   }
 
   static v8::Local<v8::Value> ToV8(uint64_t value,
                                    v8::Local<v8::Object> creation_context,
                                    v8::Isolate* isolate) {
-    return ToV8UnsignedIntegerInternal<sizeof value>(value, isolate);
+    uint32_t value_in32_bit = static_cast<uint32_t>(value);
+    if (value_in32_bit == value) {
+      return v8::Integer::NewFromUnsigned(isolate, value_in32_bit);
+    }
+    // V8 doesn't have a 64-bit integer implementation.
+    return v8::Number::New(isolate, value);
   }
 
   static v8::Local<v8::Value> ToV8(bool value,

++++++ search_engine_choice_service-missing-optional.patch ++++++
>From 4b48bc4dd6ce9c56d254e552a33a7b7c2d6fc226 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdap...@igalia.com>
Date: Thu, 1 Feb 2024 17:01:51 +0000
Subject: [PATCH] IWYU: usage of std::optional in
 search_engine_choice_service.h requires include
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Bug: 957519
Change-Id: If89767ae4cd261081efda97cde6a296209b68782
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5259337
Reviewed-by: Colin Blundell <blund...@chromium.org>
Commit-Queue: José Dapena Paz <jdap...@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1255105}
---
 .../search_engine_choice/search_engine_choice_service.h         | 2 ++
 1 file changed, 2 insertions(+)

diff --git 
a/components/search_engines/search_engine_choice/search_engine_choice_service.h 
b/components/search_engines/search_engine_choice/search_engine_choice_service.h
index b84ea7ec5fc08..c9dcce4b7c833 100644
--- 
a/components/search_engines/search_engine_choice/search_engine_choice_service.h
+++ 
b/components/search_engines/search_engine_choice/search_engine_choice_service.h
@@ -5,6 +5,8 @@
 #ifndef 
COMPONENTS_SEARCH_ENGINES_SEARCH_ENGINE_CHOICE_SEARCH_ENGINE_CHOICE_SERVICE_H_
 #define 
COMPONENTS_SEARCH_ENGINES_SEARCH_ENGINE_CHOICE_SEARCH_ENGINE_CHOICE_SERVICE_H_
 
+#include <optional>
+
 #include "base/memory/raw_ref.h"
 #include "base/memory/weak_ptr.h"
 #include "components/country_codes/country_codes.h"

++++++ system-yuv.patch ++++++
--- src/build/linux/unbundle/libyuv.gn.orig
+++ src/build/linux/unbundle/libyuv.gn
@@ -1,7 +1,7 @@
 import("//build/config/linux/pkg_config.gni")
 import("//build/shim_headers.gni")
 
-pkg_config("system_yuv") {
+pkg_config("libyuv_config") {
   packages = [ "libyuv" ]
 }
 
@@ -33,5 +33,5 @@ shim_headers("libyuv_shim") {
 
 source_set("libyuv") {
   deps = [ ":libyuv_shim" ]
-  public_configs = [ ":system_yuv" ]
+  public_configs = [ ":libyuv_config" ]
 }

++++++ wayland-proto-31-cursor-shape.patch ++++++
++++ 821 lines (skipped)

Reply via email to