7
0

Accepting request 1272836 from home:dziobian:gulgul-ultron:19

- Update to 35.2.1
  * Chromium 134.0.6998.205
  * Node 22.14.0
  * V8 13.4
  * Removed AVIF image format
  * Added excludeUrls to webRequest filter and deprecated the use of empty arrays in urls property.
  * Added fromVersionID on ServiceWorkers to get an instance of ServiceWorkerMain.
  * Deprecated getPreloads and setPreloads on Session.
  * Moved 'console-message' arguments into event object.
  * Added ServiceWorkerMain class to interact with service workers in the main process.
  * Added contextBridge.executeInMainWorld to safely execute code across world boundaries.
  * Added frame to 'console-message' event.
  * Added optional animation parameter to BrowserWindow.setVibrancy.
  * Added permission support for document.executeCommand("paste").
  * Added support for service worker preload scripts.
  * Support Portal's globalShortcuts.
    Electron must be run with --enable-features=GlobalShortcutsPortal in order to have the feature working.
  * see https://github.com/electron/electron/releases/tag/v35.0.0 and https://www.electronjs.org/blog/electron-35-0 for more
- Remove Fedora 40 support
  * drop bundled-minizip.patch
  * drop quiche-absl-HexStringToBytes.patch
- Leap 15.6: use backported wayland-protocols
  * drop wayland-protocol-toplevel-icon.patch
  * drop wayland-protocol-toplevel-icon-2.patch
  * drop wayland-protocol-toplevel-drag.patch
- Build with LTO also on 15.6 (so now we enable it everywhere)
- Fedora: use system simdjson
  * merge system-ada-url.patch into use-system-libraries-in-node.patch
- Drop no longer applicable patches
  * account_id-missing-optional.patch
  * blink-platform-INSIDE_BLINK-Wodr.patch
  * boringssl-internal-addc-cxx.patch
  * build-without-extensions.patch
  * css_attr_value_tainting-missing-once_flag.patch
  * electron-13-fix-base-check-nomerge.patch
  * exception_context-missing-variant.patch
  * fix-build-without-safebrowsing.patch
  * fix-build-without-service-discovery.patch
  * ip_protection_data_types-missing-optional.patch
  * node-compiler.patch
  * skia_image_decoder_base-missing-stack.patch
  * vtt_scanner-missing-variant.patch
  * wayland_connection-Wchanges-meaning.patch
- Add backported or upstreamable patches
  * ax_platform_node_id-fpermissive.patch
  * browser_process_impl-fix-safe_browsing_mode-0.patch
  * content_browser_client-incomplete-WebUIController.patch
  * css_shape_value-constructor.patch
  * exception_state-constexpr-initializer.patch
  * fix-build-without-pdf.patch
  * fix-build-without-video-effects.patch
  * media_session_uma_helper-missing-optional.patch
  * object_paint_properties-explicit-specialization-in-non-namespace-scope.patch
  * perfetto-ThreadTrack-Current-null-dereference.patch
  * picture_in_picture_window_manager_uma_helper-missing-optional.patch
  * plugin_utils-build-without-electron_extensions.patch
  * raw_ptr-fpermissive.patch
  * resource_response-Wchanges-meaning.patch
  * resource-Wchanges-meaning.patch
  * string-hasher-flax-vector-conversions.patch
  * string_truncator-convert.patch
  * style_scope-unqualified-To.patch
  * to_vector-std-projected-gcc119888.patch
  * unexportable_key_service_impl-Wlto-type-mismatch.patch
  * xml_document_parser-Wmissing-template-keyword.patch
- merge remove-libphonenumber.patch & delete-old-language-detection-which-uses-tflite.patch
  into remove-ai-language-detection-factory-which-requires-tflite-and-libphonenumber.patch
- Revert upstream change which breaks build with old abseil
  * webrtc-make_ref_counted-absl2024-nullability.patch
- Conditionally (15.6) remove feature change which needs new spirv
  * angle-SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT.patch
- Use system sqlite in node (except 15.6)
  * system-sqlite.patch
- Remove more rust code
  * chromium-132-no-rust.patch
- Actually disable AVIF support without disabling AV1 video
  * disable-avif-really.patch
- Various other build fixes
  * absl_strings-missing-headers.patch
  * blink-shape_result-highway.patch
  * build-without-mesage-center.patch
  * fix-system-highway.patch
  * gn-logspam-breaks-install.patch
  * permission-gcc14.2.patch

OBS-URL: https://build.opensuse.org/request/show/1272836
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=202
This commit is contained in:
2025-04-26 10:14:41 +00:00
committed by Git OBS Bridge
parent 096668bf34
commit bfff7443fb
72 changed files with 3252 additions and 802 deletions

View File

@@ -271,7 +271,7 @@ index 3c97e4a6cf4c7..a55e4ab51d5b3 100644
- // 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)) {
- if (media::IsDecoderSupportedVideoType(type)) {
- codec = type.codec;
- profile = type.profile;
- }
@@ -307,7 +307,7 @@ index 3c97e4a6cf4c7..a55e4ab51d5b3 100644
+ // 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)) {
+ if (media::IsDecoderSupportedVideoType(type)) {
+ codec = type.codec;
+ profile = type.profile;
+ }

View File

@@ -1,8 +1,12 @@
Actually disable the fontations code flag since we don't build that library. Otherwise chromium crashes with a null dereference
--- src/third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-01-06 22:04:18.385199599 +0100
+++ src/third_party/blink/renderer/platform/runtime_enabled_features.json5 2025-01-14 19:49:21.336897930 +0100
@@ -2103,7 +2103,6 @@
--- src/third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-04-21 18:29:28.190307211 +0200
+++ src/third_party/blink/renderer/platform/runtime_enabled_features.json5 2025-04-21 23:33:49.257769003 +0200
@@ -2165,11 +2165,9 @@
},
{
name: "FontationsFontBackend",
- status: "stable",
},
{
name: "FontationsForSelectedFormats",

View File

@@ -0,0 +1,40 @@
--- src/build/linux/unbundle/absl_strings.gn.orig 2025-04-12 17:15:17.061420294 +0200
+++ src/build/linux/unbundle/absl_strings.gn 2025-04-15 20:16:58.452941199 +0200
@@ -5,6 +5,10 @@ pkg_config("system_absl_cord") {
packages = [ "absl_cord" ]
}
+pkg_config("system_absl_has_ostream_operator") {
+ packages = [ "absl_has_ostream_operator" ]
+}
+
pkg_config("system_absl_strings") {
packages = [ "absl_strings" ]
}
@@ -35,6 +39,9 @@ shim_headers("strings_shim") {
"ascii.h",
"charconv.h",
"escaping.h",
+ "has_absl_stringify.h",
+ "internal/damerau_levenshtein_distance.h",
+ "internal/string_constant.h",
"match.h",
"numbers.h",
"str_cat.h",
@@ -74,8 +81,15 @@ source_set("string_view") {
public_configs = [ ":system_absl_string_view" ]
}
+shim_headers("has_ostream_operator_shim") {
+ root_path = "."
+ prefix = "absl/strings/"
+ headers = [ "has_ostream_operator.h" ]
+}
+
source_set("has_ostream_operator") {
- # Dummy — unavailable with abseil 202308 and chromium 122 does not use it
+ deps = [ ":has_ostream_operator_shim" ]
+ public_configs = [ ":system_absl_has_ostream_operator" ]
}
source_set("ascii_test") {

View File

@@ -0,0 +1,62 @@
From 397eb7c81ee996027470b2453b787e4947cdc8c0 Mon Sep 17 00:00:00 2001
From: Shahbaz Youssefi <syoussefi@chromium.org>
Date: Sat, 29 Jun 2024 00:22:42 -0400
Subject: [PATCH] Vulkan: Easier to read SPIR-V disassembly
Bug: angleproject:349994211
Change-Id: I9d8da4a9fa336e1f5ecdfa39c33959ecebb2c6ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5667081
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
---
samples/shader_translator/shader_translator.cpp | 4 +++-
src/common/spirv/angle_spirv_utils.cpp | 4 +++-
src/compiler/translator/spirv/OutputSPIRV.cpp | 4 +++-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/samples/shader_translator/shader_translator.cpp b/samples/shader_translator/shader_translator.cpp
index 64f4df372f0..3d6aa709ce1 100644
--- a/third_party/angle/samples/shader_translator/shader_translator.cpp
+++ b/third_party/angle/samples/shader_translator/shader_translator.cpp
@@ -928,7 +928,9 @@ static void PrintSpirv(const sh::BinaryBlob &blob)
spvtools::SpirvTools spirvTools(SPV_ENV_VULKAN_1_1);
std::string readableSpirv;
- spirvTools.Disassemble(blob, &readableSpirv, 0);
+ spirvTools.Disassemble(blob, &readableSpirv,
+ SPV_BINARY_TO_TEXT_OPTION_COMMENT | SPV_BINARY_TO_TEXT_OPTION_INDENT |
+ SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT);
puts(readableSpirv.c_str());
#endif
diff --git a/src/common/spirv/angle_spirv_utils.cpp b/src/common/spirv/angle_spirv_utils.cpp
index 5082b3c7341..fc83582eb48 100644
--- a/third_party/angle/src/common/spirv/angle_spirv_utils.cpp
+++ b/third_party/angle/src/common/spirv/angle_spirv_utils.cpp
@@ -62,7 +62,9 @@ void Print(const Blob &blob)
{
spvtools::SpirvTools spirvTools(GetEnv(blob));
std::string readableSpirv;
- spirvTools.Disassemble(blob, &readableSpirv, 0);
+ spirvTools.Disassemble(blob, &readableSpirv,
+ SPV_BINARY_TO_TEXT_OPTION_COMMENT | SPV_BINARY_TO_TEXT_OPTION_INDENT |
+ SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT);
INFO() << "Disassembled SPIR-V:\n" << readableSpirv.c_str();
}
diff --git a/src/compiler/translator/spirv/OutputSPIRV.cpp b/src/compiler/translator/spirv/OutputSPIRV.cpp
index ad5c12e07fe..1ed6b264622 100644
--- a/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.cpp
+++ b/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.cpp
@@ -6550,7 +6550,9 @@ spirv::Blob OutputSPIRVTraverser::getSpirv()
spvtools::SpirvTools spirvTools(mCompileOptions.emitSPIRV14 ? SPV_ENV_VULKAN_1_1_SPIRV_1_4
: SPV_ENV_VULKAN_1_1);
std::string readableSpirv;
- spirvTools.Disassemble(result, &readableSpirv, 0);
+ spirvTools.Disassemble(result, &readableSpirv,
+ SPV_BINARY_TO_TEXT_OPTION_COMMENT | SPV_BINARY_TO_TEXT_OPTION_INDENT |
+ SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT);
fprintf(stderr, "%s\n", readableSpirv.c_str());
#endif // ANGLE_DEBUG_SPIRV_GENERATION

View File

@@ -0,0 +1,12 @@
--- src/ui/accessibility/platform/ax_platform_node_id.h.orig 2025-04-16 14:36:44.316067879 +0200
+++ src/ui/accessibility/platform/ax_platform_node_id.h 2025-04-17 12:14:07.150992641 +0200
@@ -55,9 +55,7 @@ class AXPlatformNodeId
} // namespace ui
-namespace std {
template <>
struct std::hash<ui::AXPlatformNodeId>
: std::hash<base::StrongAlias<class ui::AXPlatformNodeIdTag, int32_t>> {};
-} // namespace std
#endif // UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_ID_H_

View File

@@ -9,8 +9,8 @@
#include "base/time/time_override.h"
#include "build/build_config.h"
--- src/base/BUILD.gn.orig 2024-12-08 18:43:52.881356091 +0100
+++ src/base/BUILD.gn 2024-12-18 13:19:11.049201868 +0100
--- src/base/BUILD.gn.orig 2025-04-11 12:12:20.504331178 +0200
+++ src/base/BUILD.gn 2025-04-11 20:49:30.979616277 +0200
@@ -1,3 +1,8 @@
+import("//build/config/linux/pkg_config.gni")
+
@@ -20,7 +20,7 @@
# Copyright 2013 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -809,8 +814,6 @@ component("base") {
@@ -797,8 +802,6 @@ component("base") {
"task/updateable_sequenced_task_runner.h",
"test/scoped_logging_settings.h",
"test/spin_wait.h",
@@ -29,10 +29,10 @@
"thread_annotations.h",
"threading/hang_watcher.cc",
"threading/hang_watcher.h",
@@ -1028,6 +1031,7 @@ component("base") {
@@ -1014,6 +1017,7 @@ component("base") {
"//build/config/compiler:prevent_unsafe_narrowing",
"//build/config/compiler:wexit_time_destructors",
"//build/config/compiler:wglobal_constructors",
"//electron/build/config:mas_build",
+ ":system_nspr",
]

View File

@@ -0,0 +1,16 @@
--- src/third_party/blink/renderer/platform/fonts/shaping/shape_result.h.orig 2025-04-23 20:35:41.224982139 +0200
+++ src/third_party/blink/renderer/platform/fonts/shaping/shape_result.h 2025-04-23 21:44:29.556139260 +0200
@@ -54,9 +54,13 @@
#include "ui/gfx/geometry/rect_f.h"
#include "ui/gfx/geometry/vector2d_f.h"
+#include <hwy/base.h>
+
#if defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM64)
+#if HWY_MAJOR > 1 || (HWY_MAJOR == 1 && HWY_MINOR >= 1)
#define USE_SIMD_FOR_COMPUTING_GLYPH_BOUNDS 1
#endif
+#endif
struct hb_buffer_t;

View File

@@ -0,0 +1,45 @@
--- src/electron/shell/browser/browser_process_impl.h.orig 2025-04-16 14:34:09.211257279 +0200
+++ src/electron/shell/browser/browser_process_impl.h 2025-04-18 21:20:48.780761049 +0200
@@ -16,6 +16,7 @@
#include "chrome/browser/browser_process.h"
#include "components/embedder_support/origin_trials/origin_trials_settings_storage.h"
#include "components/prefs/value_map_pref_store.h"
+#include "components/safe_browsing/buildflags.h"
#include "printing/buildflags/buildflags.h"
#include "services/network/public/cpp/network_quality_tracker.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
@@ -104,7 +105,9 @@ class BrowserProcessImpl : public Browse
DownloadRequestLimiter* download_request_limiter() override;
BackgroundModeManager* background_mode_manager() override;
StatusTray* status_tray() override;
+#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
safe_browsing::SafeBrowsingService* safe_browsing_service() override;
+#endif
subresource_filter::RulesetService* subresource_filter_ruleset_service()
override;
component_updater::ComponentUpdateService* component_updater() override;
--- src/electron/BUILD.gn.orig 2025-04-16 14:34:09.140868383 +0200
+++ src/electron/BUILD.gn 2025-04-18 21:29:07.278572174 +0200
@@ -465,6 +465,7 @@ source_set("electron_lib") {
"//components/os_crypt/sync",
"//components/pref_registry",
"//components/prefs",
+ "//components/safe_browsing:buildflags",
"//components/security_state/content",
"//components/upload_list",
"//components/user_prefs",
--- src/electron/shell/browser/browser_process_impl.cc.orig 2025-04-16 14:34:09.211257279 +0200
+++ src/electron/shell/browser/browser_process_impl.cc 2025-04-18 21:32:53.957517063 +0200
@@ -257,10 +257,12 @@ StatusTray* BrowserProcessImpl::status_t
return nullptr;
}
+#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
safe_browsing::SafeBrowsingService*
BrowserProcessImpl::safe_browsing_service() {
return nullptr;
}
+#endif
subresource_filter::RulesetService*
BrowserProcessImpl::subresource_filter_ruleset_service() {

View File

@@ -0,0 +1,10 @@
--- src/components/global_media_controls/BUILD.gn 2025-04-16 14:36:27.043179983 +0200
+++ /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/nodejs-electron-35.1.5-build/src/components/global_media_controls/BUILD.gn 2025-04-18 14:41:32.341441955 +0200
@@ -48,7 +48,6 @@ component("global_media_controls") {
}
public_deps = [
- "//components/media_message_center",
"//services/media_session/public/cpp",
"//services/media_session/public/mojom",
"//ui/views",

View File

@@ -1,9 +1,9 @@
--- src/chrome/test/BUILD.gn.orig 2024-12-08 18:44:32.671357320 +0100
+++ src/chrome/test/BUILD.gn 2025-01-01 21:35:00.776064485 +0100
@@ -8317,7 +8317,6 @@ test("unit_tests") {
"//chrome/browser/ui/zoom:unit_tests",
"//chrome/browser/user_annotations",
"//chrome/browser/web_applications:web_applications_test_support",
"//chrome/common/accessibility:mojo_bindings",
"//chrome/common/read_anything:mojo_bindings",
- "//chrome/services/speech:unit_tests",
"//components/app_constants",
"//components/color",

View File

@@ -21,9 +21,9 @@ Subject: [PATCH] Disable various compiler configs
build/config/compiler/BUILD.gn | 114 +++++----------------------------
1 file changed, 17 insertions(+), 97 deletions(-)
--- src/build/config/compiler/BUILD.gn.orig 2024-12-08 18:34:51.744673228 +0100
+++ src/build/config/compiler/BUILD.gn 2024-12-18 11:06:05.334038035 +0100
@@ -310,9 +310,7 @@ config("compiler") {
--- src/build/config/compiler/BUILD.gn.orig 2025-04-21 18:29:05.106306929 +0200
+++ src/build/config/compiler/BUILD.gn 2025-04-22 20:59:45.689108303 +0200
@@ -308,9 +308,7 @@ config("compiler") {
configs += [
# See the definitions below.
@@ -33,7 +33,23 @@ Subject: [PATCH] Disable various compiler configs
":compiler_codegen",
":compiler_deterministic",
]
@@ -342,7 +340,12 @@ config("compiler") {
@@ -325,7 +323,6 @@ config("compiler") {
# See: https://gcc.gnu.org/PR97913
# TODO(mpdenton): remove is_clang once GCC bug is fixed.
if ((!is_nacl || is_nacl_saigo) && !is_ubsan && is_clang) {
- cflags += [ "-fno-delete-null-pointer-checks" ]
}
# Make signed overflow and pointer overflowdefined to wrap.
@@ -335,7 +332,6 @@ config("compiler") {
if (is_win) {
cflags += [ "/clang:-fwrapv" ]
} else {
- cflags += [ "-fwrapv" ]
}
}
@@ -351,7 +347,12 @@ config("compiler") {
if (!is_win) {
# Common POSIX compiler flags setup.
# --------------------------------
@@ -47,7 +63,7 @@ Subject: [PATCH] Disable various compiler configs
# Stack protection. ShadowCallStack and Stack protector address the same
# problems. Therefore, we only enable one or the other. Clang advertises SCS as
@@ -487,10 +490,6 @@ config("compiler") {
@@ -498,10 +499,6 @@ config("compiler") {
# Linux/Android/Fuchsia common flags setup.
# ---------------------------------
if (is_linux || is_chromeos || is_android || is_fuchsia) {
@@ -58,7 +74,7 @@ Subject: [PATCH] Disable various compiler configs
if (!is_clang) {
# Use pipes for communicating between sub-processes. Faster.
@@ -1107,11 +1106,6 @@ config("libcxx_hardening") {
@@ -1124,11 +1121,6 @@ config("libcxx_hardening") {
defines = [ "_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE" ]
}
@@ -70,7 +86,7 @@ Subject: [PATCH] Disable various compiler configs
}
# The BUILDCONFIG file sets this config on targets by default, which means when
@@ -1177,7 +1171,8 @@ config("thinlto_optimize_max") {
@@ -1194,7 +1186,8 @@ config("thinlto_optimize_max") {
# without using everything that "compiler" brings in. Options that
# tweak code generation for a particular CPU do not belong here!
# See "compiler_codegen", below.
@@ -80,7 +96,7 @@ Subject: [PATCH] Disable various compiler configs
cflags = []
ldflags = []
defines = []
@@ -1811,7 +1806,8 @@ config("treat_warnings_as_errors") {
@@ -1824,7 +1817,8 @@ config("treat_warnings_as_errors") {
# Collects all warning flags that are used by default. This is used as a
# subconfig of both chromium_code and no_chromium_code. This way these
# flags are guaranteed to appear on the compile command line after -Wall.
@@ -90,7 +106,7 @@ Subject: [PATCH] Disable various compiler configs
cflags = []
cflags_c = []
cflags_cc = []
@@ -2064,11 +2060,7 @@ config("chromium_code") {
@@ -2071,11 +2065,7 @@ config("chromium_code") {
defines = [ "_HAS_NODISCARD" ]
}
} else {
@@ -103,7 +119,7 @@ Subject: [PATCH] Disable various compiler configs
# In Chromium code, we define __STDC_foo_MACROS in order to get the
# C99 macros on Mac and Linux.
@@ -2077,24 +2069,6 @@ config("chromium_code") {
@@ -2084,24 +2074,6 @@ config("chromium_code") {
"__STDC_FORMAT_MACROS",
]
@@ -128,7 +144,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_apple) {
cflags_objc = [ "-Wimplicit-retain-self" ]
cflags_objcc = [ "-Wimplicit-retain-self" ]
@@ -2245,7 +2219,6 @@ config("no_rtti") {
@@ -2268,7 +2240,6 @@ config("no_rtti") {
config("export_dynamic") {
# TODO(crbug.com/40118868): Revisit after target_os flip is completed.
if (is_linux || is_chromeos_lacros || export_libcxxabi_from_executables) {
@@ -136,7 +152,7 @@ Subject: [PATCH] Disable various compiler configs
}
}
@@ -2333,7 +2306,8 @@ config("wexit_time_destructors") {
@@ -2366,7 +2337,8 @@ config("wexit_time_destructors") {
# gcc 4.9 and earlier had no way of suppressing this warning without
# suppressing the rest of them. Here we centralize the identification of
# the gcc 4.9 toolchains.
@@ -146,7 +162,7 @@ Subject: [PATCH] Disable various compiler configs
cflags = []
if (is_clang) {
cflags += [ "-Wno-incompatible-pointer-types" ]
@@ -2451,7 +2425,8 @@ if (is_win) {
@@ -2483,7 +2455,8 @@ if (is_win) {
common_optimize_on_cflags += [ "-fno-math-errno" ]
}
@@ -156,7 +172,7 @@ Subject: [PATCH] Disable various compiler configs
if (!is_win) {
if (enable_frame_pointers) {
cflags = [ "-fno-omit-frame-pointer" ]
@@ -2492,7 +2467,8 @@ config("default_stack_frames") {
@@ -2524,7 +2497,8 @@ config("default_stack_frames") {
# [0]: https://pinpoint-dot-chromeperf.appspot.com/job/147634a8be0000
# [1]: https://pinpoint-dot-chromeperf.appspot.com/job/132bc772be0000
# [2]: https://crrev.com/c/5447532
@@ -166,7 +182,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_win) {
# clang-cl's /O2 corresponds to clang's -O3, and really want -O2 for
# consistency with the other platforms.
@@ -2541,7 +2517,8 @@ config("optimize") {
@@ -2573,7 +2547,8 @@ config("optimize") {
}
# Turn off optimizations.
@@ -176,7 +192,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_win) {
cflags = [
"/Od", # Disable optimization.
@@ -2581,7 +2558,8 @@ config("no_optimize") {
@@ -2613,7 +2588,8 @@ config("no_optimize") {
# Turns up the optimization level. Used to explicitly enable -O2 instead of
# -Os for select targets on platforms that use optimize_for_size. No-op
# elsewhere.
@@ -186,7 +202,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -2614,7 +2592,8 @@ config("optimize_max") {
@@ -2646,7 +2622,8 @@ config("optimize_max") {
#
# TODO(crbug.com/41259697) - rework how all of these configs are related
# so that we don't need this disclaimer.
@@ -196,7 +212,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -2643,7 +2622,8 @@ config("optimize_speed") {
@@ -2675,7 +2652,8 @@ config("optimize_speed") {
}
}
@@ -206,7 +222,7 @@ Subject: [PATCH] Disable various compiler configs
cflags = [ "-O1" ] + common_optimize_on_cflags
rustflags = [ "-Copt-level=1" ]
ldflags = common_optimize_on_ldflags
@@ -2774,7 +2754,8 @@ config("win_pdbaltpath") {
@@ -2806,7 +2784,8 @@ config("win_pdbaltpath") {
}
# Full symbols.
@@ -216,7 +232,7 @@ Subject: [PATCH] Disable various compiler configs
rustflags = []
configs = []
if (is_win) {
@@ -2936,7 +2917,8 @@ config("symbols") {
@@ -2968,7 +2947,8 @@ config("symbols") {
# Minimal symbols.
# This config guarantees to hold symbol for stack trace which are shown to user
# when crash happens in unittests running on buildbot.
@@ -226,7 +242,7 @@ Subject: [PATCH] Disable various compiler configs
rustflags = []
if (is_win) {
# Functions, files, and line tables only.
@@ -3021,7 +3003,8 @@ config("minimal_symbols") {
@@ -3053,7 +3033,8 @@ config("minimal_symbols") {
# This configuration contains function names only. That is, the compiler is
# told to not generate debug information and the linker then just puts function
# names in the final debug information.

View File

@@ -1,49 +1,54 @@
--- a/third_party/blink/renderer/platform/image-decoders/BUILD.gn
+++ b/third_party/blink/renderer/platform/image-decoders/BUILD.gn
@@ -74,12 +74,9 @@
sources += [
"avif/avif_image_decoder.cc",
"avif/avif_image_decoder.h",
@@ -77,14 +77,6 @@
"//ui/gfx/geometry:geometry_skia",
]
- if (enable_av1_decoder) {
- sources += [
- "avif/crabbyavif_image_decoder.cc",
- "avif/crabbyavif_image_decoder.h",
]
- ]
-
- deps += [ "//third_party/crabbyavif" ]
- }
deps += [
- "//third_party/crabbyavif",
"//third_party/libavif",
"//third_party/libavifinfo",
]
if (enable_rust_png) {
sources += [
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
@@ -47,7 +47,6 @@
@@ -51,9 +51,6 @@
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/geometry/size_conversions.h"
#if BUILDFLAG(ENABLE_AV1_DECODER)
#include "third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.h"
-#if BUILDFLAG(ENABLE_AV1_DECODER)
-#include "third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder.h"
#endif
-#endif
namespace blink {
@@ -192,9 +191,7 @@
@@ -196,11 +193,6 @@
if (MatchesBMPSignature(contents)) {
return "image/bmp";
}
#if BUILDFLAG(ENABLE_AV1_DECODER)
- if (base::FeatureList::IsEnabled(blink::features::kCrabbyAvif)
- ? CrabbyAVIFImageDecoder::MatchesAVIFSignature(fast_reader)
- : AVIFImageDecoder::MatchesAVIFSignature(fast_reader)) {
+ if (AVIFImageDecoder::MatchesAVIFSignature(fast_reader)) {
return "image/avif";
}
#endif
@@ -300,11 +300,7 @@
-#if BUILDFLAG(ENABLE_AV1_DECODER)
- if (CrabbyAVIFImageDecoder::MatchesAVIFSignature(fast_reader)) {
- return "image/avif";
- }
-#endif
return String();
}
@@ -305,12 +297,6 @@
} else if (mime_type == "image/bmp" || mime_type == "image/x-xbitmap") {
decoder = std::make_unique<BMPImageDecoder>(alpha_option, color_behavior,
max_decoded_bytes);
#if BUILDFLAG(ENABLE_AV1_DECODER)
} else if (mime_type == "image/avif") {
- if (base::FeatureList::IsEnabled(blink::features::kCrabbyAvif)) {
- decoder = std::make_unique<CrabbyAVIFImageDecoder>(
- alpha_option, high_bit_depth_decoding_option, color_behavior,
- max_decoded_bytes, animation_option);
- } else {
+ if (true) {
decoder = std::make_unique<AVIFImageDecoder>(
alpha_option, high_bit_depth_decoding_option, color_behavior,
max_decoded_bytes, animation_option);
-#if BUILDFLAG(ENABLE_AV1_DECODER)
- } else if (mime_type == "image/avif") {
- decoder = std::make_unique<CrabbyAVIFImageDecoder>(
- alpha_option, high_bit_depth_decoding_option, color_behavior, aux_image,
- max_decoded_bytes, animation_option);
-#endif
}
if (decoder) {

View File

@@ -1,32 +1,12 @@
diff -up chromium-129.0.6668.42.old/media/filters/ffmpeg_glue.cc.me chromium-129.0.6668.42.old/media/filters/ffmpeg_glue.cc
--- chromium-129.0.6668.42.old/media/filters/ffmpeg_glue.cc.me 2024-09-15 22:12:33.945186323 +0200
+++ chromium-129.0.6668.42.old/media/filters/ffmpeg_glue.cc 2024-09-16 10:53:13.334970539 +0200
@@ -17,14 +17,11 @@
diff -up chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc.me chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc
--- chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc.me 2025-02-05 13:28:17.782881439 +0100
+++ chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc 2025-02-05 13:33:15.256928027 +0100
@@ -111,7 +111,7 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol
namespace media {
// We don't allow H.264 parsing during demuxing since we have our own parser
// and the ffmpeg one increases memory usage unnecessarily.
- format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
+ // format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
-// Kill switches in case things explode. Remove after M132.
+// Kill switch in case things explode. Remove after M132.
// TODO(crbug.com/355485812): Re-enable this flag.
BASE_FEATURE(kAllowOnlyAudioCodecsDuringDemuxing,
"AllowOnlyAudioCodecsDuringDemuxing",
base::FEATURE_ENABLED_BY_DEFAULT);
-BASE_FEATURE(kForbidH264ParsingDuringDemuxing,
- "ForbidH264ParsingDuringDemuxing",
- base::FEATURE_ENABLED_BY_DEFAULT);
// Internal buffer size used by AVIO for reading.
// TODO(dalecurtis): Experiment with this buffer size and measure impact on
@@ -118,12 +115,6 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol
// Enable fast, but inaccurate seeks for MP3.
format_context_->flags |= AVFMT_FLAG_FAST_SEEK;
- // We don't allow H.264 parsing during demuxing since we have our own parser
- // and the ffmpeg one increases memory usage unnecessarily.
- if (base::FeatureList::IsEnabled(kForbidH264ParsingDuringDemuxing)) {
- format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
- }
-
// Ensures format parsing errors will bail out. From an audit on 11/2017, all
// instances were real failures. Solves bugs like http://crbug.com/710791.
format_context_->error_recognition |= AV_EF_EXPLODE;

View File

@@ -1,14 +1,14 @@
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -8,7 +8,6 @@
--- src/skia/BUILD.gn.orig 2025-04-11 12:05:22.085153891 +0200
+++ src/skia/BUILD.gn 2025-04-11 20:35:59.999827501 +0200
@@ -8,7 +8,6 @@ import("//build/config/features.gni")
import("//build/config/freetype/freetype.gni")
import("//build/config/rust.gni")
import("//build/config/sanitizers/sanitizers.gni")
-import("//build/rust/rust_static_library.gni")
import("//gpu/vulkan/features.gni")
import("//testing/test.gni")
import("//third_party/skia/gn/shared_sources.gni")
@@ -47,27 +46,6 @@
import("//skia/skia.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
@@ -37,27 +36,6 @@ buildflag_header("buildflags") {
]
}
@@ -23,9 +23,9 @@
- cxx_bindings = skia_fontations_bridge_sources
- deps = [
- ":path_bridge",
- "//third_party/rust/font_types/v0_7:lib",
- "//third_party/rust/read_fonts/v0_22:lib",
- "//third_party/rust/skrifa/v0_22:lib",
- "//third_party/rust/font_types/v0_8:lib",
- "//third_party/rust/read_fonts/v0_25:lib",
- "//third_party/rust/skrifa/v0_26:lib",
- ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
@@ -36,14 +36,21 @@
# External-facing config for dependent code.
config("skia_config") {
@@ -394,15 +373,9 @@
# See SK_TYPEFACE_FACTORY_FREETYPE
sources += skia_ports_freetype_sources
sources += skia_ports_fontmgr_custom_sources
@@ -182,7 +160,6 @@ config("skia_library_config") {
if (use_blink && enable_freetype) {
defines += [
"SK_TYPEFACE_FACTORY_FREETYPE",
- "SK_TYPEFACE_FACTORY_FONTATIONS",
"SK_FONTMGR_FREETYPE_EMPTY_AVAILABLE",
]
}
@@ -417,14 +394,6 @@ component("skia") {
public += skia_ports_fontmgr_empty_public
}
sources += skia_ports_typeface_proxy_sources
- sources += skia_ports_typeface_fontations_sources
sources += skia_ports_fontmgr_empty_sources
public += skia_ports_fontmgr_empty_public
- sources += skia_ports_fontmgr_fontations_sources
-
- # Fontations Rust/C++ bridge interfaces.
- deps += [
- ":bridge_rust_side",
@@ -52,17 +59,32 @@
}
if (is_win) {
--- a/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc
+++ b/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc
@@ -12,7 +12,6 @@
#include "third_party/blink/renderer/platform/fonts/opentype/font_format_check.h"
@@ -719,13 +688,7 @@ skia_source_set("skia_core_and_effects")
# skia_core_and_effects rather than the other way around.
public_deps = [ "//third_party/dawn/include/dawn:cpp_headers" ]
}
- if (use_blink) {
- # Fontations Rust/C++ bridge interfaces, needed by SkTypeface.
- deps += [
- ":bridge_rust_side",
- ":path_bridge",
- ]
- }
+
visibility = [ ":skia" ]
}
--- src/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc.orig 2025-04-11 12:05:22.929220697 +0200
+++ src/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc 2025-04-11 20:35:59.999827501 +0200
@@ -13,7 +13,6 @@
#include "third_party/freetype_buildflags.h"
#include "third_party/skia/include/core/SkStream.h"
#include "third_party/skia/include/core/SkTypeface.h"
-#include "third_party/skia/include/ports/SkTypeface_fontations.h"
#if BUILDFLAG(IS_WIN)
#include "third_party/blink/renderer/platform/fonts/win/dwrite_font_format_support.h"
@@ -54,7 +53,7 @@
@@ -55,7 +54,7 @@ bool IsFreeTypeSystemRasterizer() {
}
sk_sp<SkTypeface> MakeTypefaceDefaultFontMgr(sk_sp<SkData> data) {
@@ -71,7 +93,7 @@
if (RuntimeEnabledFeatures::FontationsFontBackendEnabled()) {
std::unique_ptr<SkStreamAsset> stream(new SkMemoryStream(data));
return SkTypeface_Make_Fontations(std::move(stream), SkFontArguments());
@@ -82,10 +81,6 @@
@@ -83,10 +82,6 @@ sk_sp<SkTypeface> MakeTypefaceFallback(s
}
#endif
@@ -82,7 +104,7 @@
sk_sp<SkTypeface> MakeVariationsTypeface(
sk_sp<SkData> data,
@@ -187,7 +182,6 @@
@@ -188,7 +183,6 @@ bool WebFontTypefaceFactory::CreateTypef
const FontFormatCheck format_check(data);
const FontInstantiator instantiator = {
MakeTypefaceDefaultFontMgr,
@@ -90,4 +112,3 @@
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE)
MakeTypefaceFallback,
#endif

290
chromium-132-no-rust.patch Normal file
View File

@@ -0,0 +1,290 @@
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -38,8 +38,6 @@
import("//build/config/sysroot.gni")
import("//build/config/ui.gni")
import("//build/nocompile.gni")
-import("//build/rust/rust_bindgen.gni")
-import("//build/rust/rust_static_library.gni")
import("//build/timestamp.gni")
import("//build/util/process_version.gni")
import("//build_overrides/build.gni")
@@ -1022,11 +1020,6 @@
# Used by metrics/crc32, except on NaCl builds.
deps += [ "//third_party/zlib" ]
- # NaCl does not support Rust.
- deps += [
- ":rust_logger",
- "//third_party/rust/serde_json_lenient/v0_2/wrapper",
- ]
}
# `raw_ptr` cannot be made a component due to CRT symbol issues.
@@ -1063,7 +1056,7 @@
"//third_party/abseil-cpp:absl",
]
- if (!is_nacl) {
+ if (is_nacl) {
sources += [
"containers/span_rust.h",
"strings/string_view_rust.h",
@@ -1543,8 +1536,6 @@
"files/scoped_temp_file.h",
"json/json_file_value_serializer.cc",
"json/json_file_value_serializer.h",
- "logging/rust_log_integration.cc",
- "logging/rust_log_integration.h",
"memory/discardable_memory.cc",
"memory/discardable_memory.h",
"memory/discardable_memory_allocator.cc",
@@ -2447,40 +2438,6 @@
}
}
-rust_bindgen("logging_log_severity_bindgen") {
- # TODO(danakj): Maybe combine all base bindgen targets, or all base/logging
- # ones even) into a single GN target? But the GN rule needs to handle multiple
- # headers then.
- header = "logging/log_severity.h"
- cpp = true
- visibility = [ ":*" ]
-
- # Transitive generated header dependency.
- deps = [ ":debugging_buildflags" ]
-}
-
-rust_bindgen("logging_rust_log_integration_bindgen") {
- header = "logging/rust_log_integration.h"
- cpp = true
- visibility = [ ":*" ]
-
- # Transitive generated header dependency.
- deps = [ ":debugging_buildflags" ]
-}
-
-rust_static_library("rust_logger") {
- allow_unsafe = true # Unsafe needed for FFI.
- deps = [
- ":logging_log_severity_bindgen",
- ":logging_rust_log_integration_bindgen",
- "//third_party/rust/log/v0_4:lib",
- ]
- visibility = [ ":base" ]
- sources = [ "logging/rust_logger.rs" ]
- crate_root = "logging/rust_logger.rs"
-
- cxx_bindings = [ "logging/rust_logger.rs" ]
-}
if (is_linux || is_chromeos) {
# Split out as a separate target for two reasons:
@@ -3564,7 +3521,7 @@
sources += [ "location_unittest.cc" ]
}
- if (!is_nacl) {
+ if (is_nacl) {
sources += [
"containers/span_rust_unittest.cc",
"strings/string_piece_rust_unittest.cc",
@@ -3617,7 +3574,7 @@
deps += [ "allocator/partition_allocator/src/partition_alloc:unittests" ]
}
- if (!is_nacl) {
+ if (is_nacl) {
deps += [ "//build/rust:cxx_cppdeps" ]
}
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -28,7 +28,6 @@
import("//gpu/vulkan/features.gni")
import("//media/gpu/args.gni")
import("//media/media_options.gni")
-import("//mojo/public/rust/rust.gni")
import("//pdf/features.gni")
import("//ppapi/buildflags/buildflags.gni")
import("//printing/buildflags/buildflags.gni")
@@ -888,12 +887,9 @@
deps = [
":rust_build_tests",
- "//base:base_unittests", # There is rust stuff in here.
- "//testing/rust_gtest_interop:rust_gtest_interop_unittests",
- "//third_party/cloud_authenticator/processor",
]
- if (enable_rust_mojo) {
+ if (false) {
deps += [
"//mojo/public/rust:mojo_rust",
"//mojo/public/rust:mojo_rust_integration_unittests",
--- a/base/test/BUILD.gn
+++ b/base/test/BUILD.gn
@@ -7,7 +7,6 @@
import("//build/config/features.gni")
import("//build/config/nacl/config.gni")
import("//build/config/ui.gni")
-import("//build/rust/rust_static_library.gni")
import("//build_overrides/build.gni")
import("//third_party/protobuf/proto_library.gni")
@@ -39,16 +38,6 @@
]
}
-rust_static_library("test_rust_logger_consumer") {
- allow_unsafe = true # Unsafe needed for FFI
- testonly = true
- deps = [ "//third_party/rust/log/v0_4:lib" ]
- sources = [ "logging/test_rust_logger_consumer.rs" ]
-
- crate_root = "logging/test_rust_logger_consumer.rs"
-
- cxx_bindings = [ "logging/test_rust_logger_consumer.rs" ]
-}
static_library("test_support") {
testonly = true
@@ -189,7 +178,6 @@
public_deps = [
":test_config",
- ":test_rust_logger_consumer",
"//base",
"//base:base_static",
"//base:i18n",
--- a/third_party/blink/common/BUILD.gn
+++ b/third_party/blink/common/BUILD.gn
@@ -341,7 +341,6 @@
"//services/metrics/public/cpp:ukm_builders",
"//services/metrics/public/mojom:mojom",
"//services/network/public/cpp:cpp",
- "//third_party/blink/common/rust_crash",
"//third_party/blink/public/common:buildflags",
"//third_party/re2",
"//ui/base:base",
--- a/third_party/breakpad/BUILD.gn
+++ b/third_party/breakpad/BUILD.gn
@@ -494,11 +494,6 @@
# For breakpad/src/common/stabs_reader.h.
defines = [ "HAVE_MACH_O_NLIST_H" ]
- # Rust demangle support.
- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ]
- defines += [ "HAVE_RUSTC_DEMANGLE" ]
- include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include" ]
- sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include/rustc_demangle.h" ]
}
test("breakpad_unittests") {
sources = [ "breakpad/src/common/module_unittest.cc" ]
@@ -742,11 +737,6 @@
include_dirs = [ "breakpad/src" ]
- # Rust demangle support.
- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ]
- defines += [ "HAVE_RUSTC_DEMANGLE" ]
- include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include" ]
- sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include/rustc_demangle.h" ]
libs = [ "z" ]
}
--- a/base/json/json_reader.cc
+++ b/base/json/json_reader.cc
@@ -13,7 +13,7 @@
#include "base/metrics/histogram_macros.h"
#include "build/build_config.h"
-#if !BUILDFLAG(IS_NACL)
+#if BUILDFLAG(IS_NACL)
#include "base/strings/string_view_rust.h"
#include "third_party/rust/serde_json_lenient/v0_2/wrapper/functions.h"
#include "third_party/rust/serde_json_lenient/v0_2/wrapper/lib.rs.h"
@@ -23,7 +23,7 @@
// TODO(crbug.com/40811643): Move the C++ parser into components/nacl to just
// run in-process there. Don't compile base::JSONReader on NaCL at all.
-#if !BUILDFLAG(IS_NACL)
+#if BUILDFLAG(IS_NACL)
namespace {
using serde_json_lenient::ContextPointer;
@@ -140,7 +140,7 @@
std::optional<Value> JSONReader::Read(std::string_view json,
int options,
size_t max_depth) {
-#if BUILDFLAG(IS_NACL)
+#if !BUILDFLAG(IS_NACL)
internal::JSONParser parser(options, max_depth);
return parser.Parse(json);
#else // BUILDFLAG(IS_NACL)
@@ -173,7 +173,7 @@
JSONReader::Result JSONReader::ReadAndReturnValueWithError(
std::string_view json,
int options) {
-#if BUILDFLAG(IS_NACL)
+#if !BUILDFLAG(IS_NACL)
internal::JSONParser parser(options);
auto value = parser.Parse(json);
if (!value) {
@@ -213,7 +213,7 @@
if (!base::FeatureList::GetInstance()) {
return false;
}
-#if BUILDFLAG(IS_NACL)
+#if !BUILDFLAG(IS_NACL)
return false;
#else
return base::FeatureList::IsEnabled(base::features::kUseRustJsonParser);
--- a/base/logging.cc
+++ b/base/logging.cc
@@ -126,7 +126,7 @@
#include "base/fuchsia/scoped_fx_logger.h"
#endif
-#if !BUILDFLAG(IS_NACL)
+#if BUILDFLAG(IS_NACL)
#include "base/logging/rust_logger.rs.h"
#endif
@@ -526,7 +526,7 @@
}
#endif
-#if !BUILDFLAG(IS_NACL)
+#if BUILDFLAG(IS_NACL)
// Connects Rust logging with the //base logging functionality.
internal::init_rust_log_crate();
#endif
--- a/third_party/blink/common/chrome_debug_urls.cc
+++ b/third_party/blink/common/chrome_debug_urls.cc
@@ -11,7 +11,6 @@
#include "base/threading/platform_thread.h"
#include "build/build_config.h"
#include "third_party/blink/common/crash_helpers.h"
-#include "third_party/blink/common/rust_crash/src/lib.rs.h"
#include "url/gurl.h"
#if BUILDFLAG(IS_WIN)
@@ -117,7 +116,7 @@
// Ensure that ASAN works even in Rust code.
LOG(ERROR) << "Intentionally causing ASAN heap overflow in Rust"
<< " because user navigated to " << url.spec();
- crash_in_rust_with_overflow();
+ //crash_in_rust_with_overflow();
}
}
#endif // ADDRESS_SANITIZER
@@ -137,7 +136,7 @@
} else if (url == kChromeUICrashRustURL) {
// Cause a typical crash in Rust code, so we can test that call stack
// collection and symbol mangling work across the language boundary.
- crash_in_rust();
+ //crash_in_rust();
} else if (url == kChromeUIDumpURL) {
// This URL will only correctly create a crash dump file if content is
// hosted in a process that has correctly called

View File

@@ -21,40 +21,32 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
media/filters/ffmpeg_demuxer.cc | 16 ++++++++++++++++
2 files changed, 20 insertions(+)
Index: electron-17.1.2/media/filters/audio_decoder_unittest.cc
Index: chromium-126.0.6478.8/media/filters/ffmpeg_demuxer.cc
===================================================================
--- electron-17.1.2.orig/media/filters/audio_decoder_unittest.cc 2022-03-11 08:49:30.740949416 +0100
+++ electron-17.1.2/media/filters/audio_decoder_unittest.cc 2022-03-11 09:17:36.916088893 +0100
@@ -102,7 +102,11 @@ void SetDiscardPadding(AVPacket* packet,
}
--- chromium-126.0.6478.8.orig/media/filters/ffmpeg_demuxer.cc
+++ chromium-126.0.6478.8/media/filters/ffmpeg_demuxer.cc
@@ -343,11 +343,19 @@
}
// If the timestamp is positive, try to use FFmpeg's discard data.
base::span<const uint8_t> GetSideData(const AVPacket* packet) {
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int skip_samples_size = 0;
+ int side_data_size = 0;
+#else
size_t skip_samples_size = 0;
size_t side_data_size = 0;
+#endif
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
Index: chromium-118.0.5993.18/media/filters/ffmpeg_demuxer.cc
===================================================================
--- chromium-118.0.5993.18.orig/media/filters/ffmpeg_demuxer.cc
+++ chromium-118.0.5993.18/media/filters/ffmpeg_demuxer.cc
@@ -398,7 +398,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
scoped_refptr<DecoderBuffer> buffer;
uint8_t* side_data = av_packet_get_side_data(
packet, AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int side_data_size = 0;
+ return base::span<const uint8_t>(side_data, base::checked_cast<size_t>(side_data_size));
+#else
size_t side_data_size = 0;
return base::span<const uint8_t>(side_data, side_data_size);
+#endif
uint8_t* side_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
}
@@ -461,7 +465,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
side_data + side_data_size);
void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
@@ -474,7 +482,11 @@
base::HeapArray<uint8_t>::CopiedFrom(side_data);
}
+#if LIBAVUTIL_VERSION_MAJOR < 57

View File

@@ -1,71 +1,69 @@
Index: electron-17.1.0/chrome/browser/about_flags.cc
===================================================================
--- electron-17.1.0.orig/chrome/browser/about_flags.cc 2022-03-07 17:20:30.424811477 +0100
+++ electron-17.1.0/chrome/browser/about_flags.cc 2022-03-09 08:25:19.662417046 +0100
@@ -3822,12 +3822,12 @@ const FeatureEntry kFeatureEntries[] = {
--- src/chrome/browser/about_flags.cc.orig 2025-04-11 12:05:16.388151477 +0200
+++ src/chrome/browser/about_flags.cc 2025-04-12 12:45:36.431775614 +0200
@@ -5590,12 +5590,12 @@ const FeatureEntry kFeatureEntries[] = {
#endif
#endif // BUILDFLAG(IS_ANDROID)
#endif // ENABLE_VR
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-#if BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_CHROMEOS_) || (defined(OS_LINUX) && !defined(OS_ANDROID))
{"disable-accelerated-mjpeg-decode",
flag_descriptions::kAcceleratedMjpegDecodeName,
- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-#endif // BUILDFLAG(IS_CHROMEOS)
+#endif // BUILDFLAG(IS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
{"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
--- src/chrome/browser/flag_descriptions.cc.orig 2024-12-08 18:34:53.268006605 +0100
+++ src/chrome/browser/flag_descriptions.cc 2025-01-01 20:24:47.007188847 +0100
@@ -5838,12 +5838,24 @@ const char kUseAngleGL[] = "OpenGL";
--- src/chrome/browser/flag_descriptions.cc.orig 2025-04-11 12:05:16.849151673 +0200
+++ src/chrome/browser/flag_descriptions.cc 2025-04-12 12:46:16.943776292 +0200
@@ -5708,12 +5708,24 @@ const char kUseAngleDefault[] = "Default
#if BUILDFLAG(IS_CHROMEOS_ASH)
#if BUILDFLAG(IS_CHROMEOS)
+#endif
+
+// Chrome OS and Linux --------------------------------------------------------
+
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+#if BUILDFLAG(IS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
const char kAcceleratedMjpegDecodeName[] =
"Hardware-accelerated mjpeg decode for captured frame";
const char kAcceleratedMjpegDecodeDescription[] =
"Enable hardware-accelerated mjpeg decode for captured frame where "
"Enable hardware-accelerated MJPEG decode for captured frame where "
"available.";
+#endif
+
+// Chrome OS ------------------------------------------------------------------
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
+
const char kAccessibilityFilterKeysName[] = "Filter keys";
const char kAccessibilityFilterKeysDescription[] =
"Enables settings to filter key presses in various ways, such as slow keys "
--- src/chrome/browser/flag_descriptions.h.orig 2024-12-08 18:34:53.268006605 +0100
+++ src/chrome/browser/flag_descriptions.h 2025-01-01 20:26:07.993071516 +0100
@@ -3375,9 +3375,21 @@ extern const char kUseAngleGL[];
const char kAccessibilityBounceKeysName[] = "Bounce keys";
const char kAccessibilityBounceKeysDescription[] =
"Enables accessibility settings for bounce keys, which ignores quickly "
--- src/chrome/browser/flag_descriptions.h.orig 2025-04-11 12:05:16.850151673 +0200
+++ src/chrome/browser/flag_descriptions.h 2025-04-12 12:47:00.923776530 +0200
@@ -3340,9 +3340,21 @@ extern const char kUseAngleDefault[];
#if BUILDFLAG(IS_CHROMEOS_ASH)
#if BUILDFLAG(IS_CHROMEOS)
+#endif
+
+// Chrome OS and Linux --------------------------------------------------------
+
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+#if BUILDFLAG(IS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
extern const char kAcceleratedMjpegDecodeName[];
extern const char kAcceleratedMjpegDecodeDescription[];
+#endif
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
+
+// Chrome OS ------------------------------------------------------------------
+
extern const char kAccessibilityFilterKeysName[];
extern const char kAccessibilityFilterKeysDescription[];
extern const char kAccessibilityBounceKeysName[];
extern const char kAccessibilityBounceKeysDescription[];

View File

@@ -1,6 +1,6 @@
--- src/third_party/electron_node/common.gypi.orig 2024-12-08 18:45:44.261359453 +0100
+++ src/third_party/electron_node/common.gypi 2024-12-18 11:12:53.414653184 +0100
@@ -487,10 +487,15 @@
--- src/third_party/electron_node/common.gypi.orig 2025-04-10 20:07:02.154742467 +0200
+++ src/third_party/electron_node/common.gypi 2025-04-11 11:45:57.996110023 +0200
@@ -514,15 +514,19 @@
'ldflags': [ '-pthread' ],
}],
[ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi"', {
@@ -11,14 +11,19 @@
+ # `-fvisibility=hidden` is something we're adding to fix downstream overzealous exports.
+ # The electron headers annotate their visibility correctly, but many third-party code does not which leads to bloated builds.
+ 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', '-fpic', '-fno-semantic-interposition', '-fvisibility=hidden' ],
'cflags_cc': [ '-fno-rtti', '-fno-exceptions', '-std=gnu++20' ],
'cflags_cc': [
'-fno-rtti',
'-fno-exceptions',
- '-fno-strict-aliasing',
'-std=gnu++20',
],
'defines': [ '__STDC_FORMAT_MACROS' ],
- 'ldflags': [ '-rdynamic' ],
+ #'ldflags': [ '-rdynamic' ], this is totally bogus — we are building a plugin, not a plugin host
+ #'ldflags': [ '-rdynamic' ], this is totally bogus — we are building a plugin, not a plugin host
'target_conditions': [
# The 1990s toolchain on SmartOS can't handle thin archives.
['_type=="static_library" and OS=="solaris"', {
@@ -670,29 +675,7 @@
@@ -700,29 +704,7 @@
'-Wl,--export-dynamic',
],
}],

View File

@@ -0,0 +1,10 @@
--- src/content/public/browser/content_browser_client.cc.orig 2025-04-16 14:45:09.657704679 +0200
+++ src/content/public/browser/content_browser_client.cc 2025-04-17 16:18:19.395831947 +0200
@@ -53,6 +53,7 @@
#include "content/public/browser/vpn_service_proxy.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_view_delegate.h"
+#include "content/public/browser/web_ui_controller.h"
#include "content/public/common/alternative_error_page_override_info.mojom.h"
#include "content/public/common/content_features.h"
#include "content/public/common/url_utils.h"

View File

@@ -1,6 +1,6 @@
--- src/third_party/abseil-cpp/BUILD.gn.orig 2024-12-08 18:35:00.641340155 +0100
+++ src/third_party/abseil-cpp/BUILD.gn 2025-01-01 21:58:32.559624434 +0100
@@ -84,13 +83,9 @@ group("absl_component_deps") {
--- src/third_party/abseil-cpp/BUILD.gn.orig 2025-04-11 12:05:22.125274194 +0200
+++ src/third_party/abseil-cpp/BUILD.gn 2025-04-12 14:23:17.763743696 +0200
@@ -84,13 +84,9 @@ group("absl_component_deps") {
"//third_party/abseil-cpp/absl/hash",
"//third_party/abseil-cpp/absl/log:absl_check",
"//third_party/abseil-cpp/absl/log:absl_log",
@@ -14,7 +14,7 @@
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/meta:type_traits",
"//third_party/abseil-cpp/absl/numeric:bits",
@@ -305,8 +288,6 @@ if (absl_build_tests) {
@@ -290,8 +286,6 @@ if (absl_build_tests) {
"absl/container:flat_hash_set_test",
"absl/container:hash_function_defaults_test",
"absl/container:inlined_vector_test",
@@ -23,7 +23,7 @@
"absl/container:node_slot_policy_test",
"absl/container:raw_hash_set_allocator_test",
"absl/container:raw_hash_set_test",
@@ -315,11 +296,8 @@ if (absl_build_tests) {
@@ -300,11 +294,8 @@ if (absl_build_tests) {
"absl/crc:crc_cord_state_test",
"absl/crc:crc_memcpy_test",
"absl/crc:non_temporal_memcpy_test",
@@ -35,7 +35,31 @@
"absl/flags:flag_test",
"absl/functional:any_invocable_test",
"absl/functional:function_ref_test",
@@ -382,11 +360,7 @@ if (absl_build_tests) {
@@ -328,7 +319,6 @@ if (absl_build_tests) {
"absl/log:vlog_is_on_test",
"absl/log/internal:fnmatch_test",
"absl/log/internal:stderr_log_sink_test",
- "absl/log/internal:structured_proto_test",
"absl/memory:memory_test",
"absl/meta:type_traits_test",
"absl/numeric:int128_test",
@@ -336,7 +326,6 @@ if (absl_build_tests) {
"absl/profiling:periodic_sampler_test",
"absl/random:distributions_test",
"absl/random:mock_distributions_test",
- "absl/random/internal:nonsecure_base_test",
"absl/status:status_matchers_test",
"absl/status:status_test",
"absl/status:statusor_test",
@@ -359,7 +348,6 @@ if (absl_build_tests) {
"absl/strings:has_absl_stringify_test",
"absl/strings:has_ostream_operator_test",
"absl/strings:match_test",
- "absl/strings:str_cat_test",
"absl/strings:str_format_arg_test",
"absl/strings:str_format_bind_test",
"absl/strings:str_format_checker_test",
@@ -370,11 +358,7 @@ if (absl_build_tests) {
"absl/strings:str_format_test",
"absl/strings:str_replace_test",
"absl/strings:string_view_test",

View File

@@ -232,10 +232,8 @@ keeplibs=(
third_party/hunspell #heavily forked version
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/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
@@ -276,9 +274,11 @@ keeplibs=(
third_party/rapidhash #Fork
third_party/re2 # fedora too old
third_party/rnnoise #use of private headers
third_party/search_engines_data #integral part of chromium (but should not be?). was under components/ before E35, see https://github.com/chromium/chromium/commit/b8a327a1aa0227cf96dbbe0ad55f1c2773b23c23
third_party/simdutf #Not in Factory
third_party/skia #integral part of chrome
third_party/speech-dispatcher #Headers for a delay-loaded optional dependency
third_party/spirv-headers
third_party/spirv-headers #15.6 too old
third_party/sqlite #heavily forked version
third_party/swiftshader #not available as a shared library
third_party/swiftshader/third_party/astc-encoder #not in rawhide or factory. Debian has it (astc-encoder)
@@ -307,14 +307,14 @@ keeplibs=(
third_party/wayland-protocols/unstable #unknown origin. not in wayland-protocol-devel or elsewhere
third_party/wuffs #not in any distro
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
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
v8/src/third_party/valgrind #incompatible definition of VALGRIND_DISCARD_TRANSLATIONS
v8/third_party/inspector_protocol #integral part of chrome
v8/third_party/rapidhash-v8 #derived code, not vendored dep
v8/third_party/siphash #derived code, not vendored dep
v8/third_party/utf8-decoder #derived code, not vendored dep
v8/third_party/v8 #derived code, not vendored dep
v8/third_party/valgrind #incompatible definition of VALGRIND_DISCARD_TRANSLATIONS
)
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove
if [ $? -ne 0 ]; then
@@ -330,6 +330,7 @@ find third_party/electron_node/deps/cares -type f ! -name "*.gn" -a ! -name "*.g
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/ngtcp2 -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/simdutf -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/

View File

@@ -0,0 +1,11 @@
--- src/third_party/blink/renderer/core/css/css_shape_value.h.orig 2025-04-16 14:36:32.392070147 +0200
+++ src/third_party/blink/renderer/core/css/css_shape_value.h 2025-04-16 22:22:56.896578913 +0200
@@ -96,7 +96,7 @@ using CSSShapeControlPoint = std::pair<C
template <wtf_size_t NumControlPoints>
class CSSShapeCurveCommand : public CSSShapeCommand {
public:
- CSSShapeCurveCommand<1>(Type type,
+ CSSShapeCurveCommand(Type type,
const CSSValuePair& end_point,
const CSSShapeControlPoint control_point)
: CSSShapeCommand(type, end_point), control_points_{control_point} {}

View File

@@ -55,122 +55,3 @@ index 21470f0869cfda..21772fce07cc5e 100644
"language_translator.cc",
"language_translator.h",
"translation.cc",
diff --git a/third_party/blink/renderer/modules/on_device_translation/translation.h b/third_party/blink/renderer/modules/on_device_translation/translation.h
index 0a0f54be56787a..e19db842628997 100644
--- a/third_party/blink/renderer/modules/on_device_translation/translation.h
+++ b/third_party/blink/renderer/modules/on_device_translation/translation.h
@@ -18,7 +18,6 @@
#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
namespace blink {
-class LanguageDetector;
class LanguageTranslator;
class V8TranslationAvailability;
@@ -43,12 +42,6 @@ class Translation final : public ScriptWrappable,
ScriptState* script_state,
TranslationLanguageOptions* options,
ExceptionState& exception_state);
- ScriptPromise<V8TranslationAvailability> canDetect(
- ScriptState* script_state,
- ExceptionState& exception_state);
- ScriptPromise<LanguageDetector> createDetector(
- ScriptState* script_state,
- ExceptionState& exception_state);
private:
HeapMojoRemote<mojom::blink::TranslationManager>&
diff --git a/third_party/blink/renderer/modules/on_device_translation/translation.idl b/third_party/blink/renderer/modules/on_device_translation/translation.idl
index a27472ece123df..b9c74c41d4c406 100644
--- a/third_party/blink/renderer/modules/on_device_translation/translation.idl
+++ b/third_party/blink/renderer/modules/on_device_translation/translation.idl
@@ -31,20 +31,4 @@ interface Translation {
Promise<LanguageTranslator> createTranslator(
TranslationLanguageOptions options
);
- [
- RuntimeEnabled=LanguageDetectionAPI,
- Exposed=Window,
- Measure,
- CallWith=ScriptState,
- RaisesException
- ]
- Promise<TranslationAvailability> canDetect();
- [
- RuntimeEnabled=LanguageDetectionAPI,
- Exposed=Window,
- Measure,
- CallWith=ScriptState,
- RaisesException
- ]
- Promise<LanguageDetector> createDetector();
};
--- src/third_party/blink/renderer/modules/on_device_translation/language_detector.idl.orig 2025-01-02 22:23:59.384885429 +0100
+++ src/third_party/blink/renderer/modules/on_device_translation/language_detector.idl 2025-01-03 22:57:39.104809606 +0100
@@ -8,16 +8,3 @@ dictionary LanguageDetectionResult {
DOMString? detectedLanguage;
double confidence;
};
-
-[
- RuntimeEnabled=LanguageDetectionAPI,
- Exposed=Window
-]
-interface LanguageDetector {
- [
- Measure,
- CallWith=ScriptState,
- RaisesException
- ]
- Promise<sequence<LanguageDetectionResult>> detect(DOMString input);
-};
--- src/third_party/blink/renderer/modules/on_device_translation/translation.cc.orig 2025-01-02 22:23:59.384885429 +0100
+++ src/third_party/blink/renderer/modules/on_device_translation/translation.cc 2025-01-03 23:11:15.414694080 +0100
@@ -10,7 +10,6 @@
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_translation_language_options.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
-#include "third_party/blink/renderer/modules/on_device_translation/language_detector.h"
#include "third_party/blink/renderer/modules/on_device_translation/language_translator.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/bindings/script_state.h"
@@ -116,39 +115,4 @@ ScriptPromise<LanguageTranslator> Transl
return promise;
}
-ScriptPromise<V8TranslationAvailability> Translation::canDetect(
- ScriptState* script_state,
- ExceptionState& exception_state) {
- if (!script_state->ContextIsValid()) {
- exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
- "The execution context is not valid.");
- return ScriptPromise<V8TranslationAvailability>();
- }
-
- auto* resolver =
- MakeGarbageCollected<ScriptPromiseResolver<V8TranslationAvailability>>(
- script_state);
- auto promise = resolver->Promise();
-
- resolver->Resolve(
- V8TranslationAvailability(V8TranslationAvailability::Enum::kReadily));
-
- return promise;
-}
-
-ScriptPromise<LanguageDetector> Translation::createDetector(
- ScriptState* script_state,
- ExceptionState& exception_state) {
- if (!script_state->ContextIsValid()) {
- exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
- "The execution context is not valid.");
- return ScriptPromise<LanguageDetector>();
- }
-
- auto* resolver =
- MakeGarbageCollected<ScriptPromiseResolver<LanguageDetector>>(
- script_state);
- resolver->Resolve(MakeGarbageCollected<LanguageDetector>());
- return resolver->Promise();
-}
} // namespace blink

View File

@@ -1,12 +1,11 @@
diff -up chromium-125.0.6422.41/media/base/media_switches.cc.disable-FFmpegAllowLists chromium-125.0.6422.41/media/base/media_switches.cc
--- chromium-125.0.6422.41/media/base/media_switches.cc.disable-FFmpegAllowLists 2024-05-12 21:28:43.694027396 +0200
+++ chromium-125.0.6422.41/media/base/media_switches.cc 2024-05-12 21:32:48.155063623 +0200
@@ -1753,7 +1753,7 @@ BASE_FEATURE(kUseWindowBoundsForPip,
// Enables FFmpeg allow lists for supported codecs / containers.
BASE_FEATURE(kFFmpegAllowLists,
"FFmpegAllowLists",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
#if BUILDFLAG(IS_WIN)
// Enables audio offload when supported by endpoints.
--- src/media/ffmpeg/ffmpeg_common.cc.orig 2025-04-11 12:05:21.289638236 +0200
+++ src/media/ffmpeg/ffmpeg_common.cc 2025-04-12 12:23:36.647784415 +0200
@@ -76,7 +76,7 @@ const char* GetAllowedVideoDecoders() {
void ApplyCodecContextSecuritySettings(AVCodecContext* codec_context) {
// Future versions of ffmpeg may copy the allow list from the format
// context.
- if (!codec_context->codec_whitelist) {
+ if (false) {
// Note: FFmpeg will try to free this string, so we must duplicate it.
codec_context->codec_whitelist =
av_strdup(codec_context->codec_type == AVMEDIA_TYPE_AUDIO

39
disable-avif-really.patch Normal file
View File

@@ -0,0 +1,39 @@
Cleanup after chromium-127-crabby.patch
Do not advertise AVIF support to allow for graceful degradation.
diff '--color=auto' -urp src/content/common/content_constants_internal.cc src.new/content/common/content_constants_internal.cc
--- src/content/common/content_constants_internal.cc 2025-04-21 18:29:19.250307076 +0200
+++ src.new/content/common/content_constants_internal.cc 2025-04-23 18:12:33.518743675 +0200
@@ -11,7 +11,7 @@ namespace content {
// 20MiB
const size_t kMaxLengthOfDataURLString = 1024 * 1024 * 20;
-#if BUILDFLAG(ENABLE_AV1_DECODER)
+#if 0
const char kFrameAcceptHeaderValue[] =
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,"
"image/webp,image/apng,*/*;q=0.8";
diff '--color=auto' -urp src/third_party/blink/common/loader/network_utils.cc src.new/third_party/blink/common/loader/network_utils.cc
--- src/third_party/blink/common/loader/network_utils.cc 2025-04-21 18:29:25.994307178 +0200
+++ src.new/third_party/blink/common/loader/network_utils.cc 2025-04-23 18:12:48.166740983 +0200
@@ -34,7 +34,7 @@ bool AlwaysAccessNetwork(
}
const char* ImageAcceptHeader() {
-#if BUILDFLAG(ENABLE_AV1_DECODER)
+#if 0
return "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8";
#else
return "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8";
diff '--color=auto' -urp src/third_party/blink/common/mime_util/mime_util.cc src.new/third_party/blink/common/mime_util/mime_util.cc
--- src/third_party/blink/common/mime_util/mime_util.cc 2025-04-21 18:29:26.002307178 +0200
+++ src.new/third_party/blink/common/mime_util/mime_util.cc 2025-04-23 18:13:01.090738191 +0200
@@ -41,7 +41,7 @@ constexpr auto kSupportedImageTypes = ba
"image/x-icon", // ico
"image/x-xbitmap", // xbm
"image/x-png",
-#if BUILDFLAG(ENABLE_AV1_DECODER)
+#if 0
"image/avif",
#endif
});

View File

@@ -144,21 +144,19 @@ author: Michael Gilbert <mgilbert@debian.org>
]
data_deps = [ "//testing:test_scripts_shared" ]
}
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -755,12 +755,6 @@
"content/test/web_ui_mojo_test_resources.grd": {
"includes": [7340],
--- src/tools/gritsettings/resource_ids.spec.orig 2025-04-11 12:29:49.277239656 +0200
+++ src/tools/gritsettings/resource_ids.spec 2025-04-11 12:30:15.524243417 +0200
@@ -1248,10 +1248,6 @@
"META": {"sizes": {"includes": [20]}},
"includes": [8280],
},
-
- # This file is generated during the build.
- "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": {
- "META": {"sizes": {"includes": [20],}},
- "includes": [7360],
- "includes": [8300],
- },
# END content/ section.
# START "everything else" section.
"<(SHARED_INTERMEDIATE_DIR)/content/browser/webrtc/resources/resources.grd": {
"META": {"sizes": {"includes": [20],}},
"includes": [8320],
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -2530,7 +2530,6 @@ source_set("browser") {
@@ -315,17 +313,17 @@ author: Michael Gilbert <mgilbert@debian.org>
"//third_party/perfetto/src/trace_processor:trace_processor_shell",
]
data = [
--- a/electron/electron_paks.gni
+++ b/electron/electron_paks.gni
@@ -57,7 +57,6 @@
"$root_gen_dir/chrome/dev_ui_browser_resources.pak",
--- src/electron/electron_paks.gni.orig 2025-04-11 12:02:41.243100651 +0200
+++ src/electron/electron_paks.gni 2025-04-11 12:28:19.897748625 +0200
@@ -57,7 +57,6 @@ template("electron_extra_paks") {
"$root_gen_dir/chrome/common_resources.pak",
"$root_gen_dir/components/components_resources.pak",
"$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
"$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/content/gpu_resources.pak",
@@ -73,7 +72,6 @@
@@ -76,7 +75,6 @@ template("electron_extra_paks") {
"//content/browser/resources/gpu:resources",
"//content/browser/resources/media:resources",
"//content/browser/resources/process:resources",

View File

@@ -101,9 +101,9 @@ Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
if ((is_linux || is_chromeos) && use_dbus) {
deps += [ "//dbus" ]
}
--- src/content/browser/browser_interface_binders.cc.orig 2024-12-08 18:34:57.541340064 +0100
+++ src/content/browser/browser_interface_binders.cc 2024-12-18 12:22:33.827251622 +0100
@@ -59,7 +59,9 @@
-- src/content/browser/browser_interface_binders.cc.orig 2025-04-11 12:05:19.980351905 +0200
+++ src/content/browser/browser_interface_binders.cc 2025-04-11 19:48:15.944587282 +0200
@@ -61,7 +61,9 @@
#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/browser/service_worker/service_worker_host.h"
#include "content/browser/shared_storage/shared_storage_worklet_host.h"
@@ -113,7 +113,7 @@ Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
#include "content/browser/storage_access/storage_access_handle.h"
#include "content/browser/tracing/trace_report/trace_report.mojom.h"
#include "content/browser/tracing/trace_report/trace_report_internals_ui.h"
@@ -98,7 +100,9 @@
@@ -100,7 +102,9 @@
#include "media/mojo/mojom/media_metrics_provider.mojom.h"
#include "media/mojo/mojom/media_player.mojom.h"
#include "media/mojo/mojom/remoting.mojom.h"
@@ -123,7 +123,7 @@ Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
#include "media/mojo/mojom/video_decode_perf_history.mojom.h"
#include "media/mojo/mojom/video_encoder_metrics_provider.mojom.h"
#include "media/mojo/mojom/webrtc_video_perf.mojom.h"
@@ -203,7 +207,9 @@
@@ -206,7 +210,9 @@
#else // BUILDFLAG(IS_ANDROID)
#include "content/browser/direct_sockets/direct_sockets_service_impl.h"
#include "media/mojo/mojom/renderer_extensions.mojom.h"
@@ -133,20 +133,21 @@ Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
#include "third_party/blink/public/mojom/hid/hid.mojom.h"
#include "third_party/blink/public/mojom/installedapp/installed_app_provider.mojom.h"
#include "third_party/blink/public/mojom/serial/serial.mojom.h"
@@ -860,10 +866,12 @@ void PopulateFrameBinders(RenderFrameHos
@@ -865,11 +871,13 @@ void PopulateFrameBinders(RenderFrameHos
map->Add<blink::mojom::SharedWorkerConnector>(
base::BindRepeating(&BindSharedWorkerConnector, base::Unretained(host)));
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
map->Add<media::mojom::SpeechRecognizer>(
base::BindRepeating(&SpeechRecognitionDispatcherHost::Create,
host->GetProcess()->GetID(), host->GetRoutingID()),
host->GetProcess()->GetDeprecatedID(),
host->GetRoutingID()),
GetIOThreadTaskRunner({}));
+#endif
map->Add<blink::mojom::SpeechSynthesis>(base::BindRepeating(
&RenderFrameHostImpl::GetSpeechSynthesis, base::Unretained(host)));
@@ -1163,6 +1171,7 @@ void PopulateBinderMapWithContext(
@@ -1197,6 +1205,7 @@ void PopulateBinderMapWithContext(
#if !BUILDFLAG(IS_ANDROID)
map->Add<blink::mojom::DirectSocketsService>(
base::BindRepeating(&DirectSocketsServiceImpl::CreateForFrame));
@@ -154,7 +155,7 @@ Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
map->Add<media::mojom::SpeechRecognitionContext>(base::BindRepeating(
&EmptyBinderForFrame<media::mojom::SpeechRecognitionContext>));
map->Add<media::mojom::SpeechRecognitionClientBrowserInterface>(
@@ -1174,6 +1183,7 @@ void PopulateBinderMapWithContext(
@@ -1208,6 +1217,7 @@ void PopulateBinderMapWithContext(
map->Add<media::mojom::MediaPlayerObserverClient>(base::BindRepeating(
&EmptyBinderForFrame<media::mojom::MediaPlayerObserverClient>));
#endif
@@ -236,12 +237,12 @@ index 3a2e713ccc3..6af5afde20e 100644
{wrf::EnableSharedWorker, switches::kDisableSharedWorkers, false},
diff --git a/chromium/media/BUILD.gn b/chromium/media/BUILD.gn
index 01e0910666e..6ce78127e3f 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -47,6 +47,7 @@ buildflag_header("media_buildflags") {
"ENABLE_PLATFORM_MPEG_H_AUDIO=$enable_platform_mpeg_h_audio",
--- src/media/BUILD.gn 2025-04-11 12:05:21.244153535 +0200
+++ src/media/BUILD.gn 2025-04-11 19:48:51.764578046 +0200
@@ -61,6 +61,7 @@ buildflag_header("media_buildflags") {
"ENABLE_MSE_MPEG2TS_STREAM_PARSER=$enable_mse_mpeg2ts_stream_parser",
"PLATFORM_HAS_OPTIONAL_HEVC_SUPPORT=$platform_has_optional_hevc_support",
"PLATFORM_HAS_OPTIONAL_HEVC_DECODE_SUPPORT=$platform_has_optional_hevc_decode_support",
"PLATFORM_HAS_OPTIONAL_HEVC_ENCODE_SUPPORT=$platform_has_optional_hevc_encode_support",
+ "ENABLE_WEB_SPEECH=$enable_web_speech",
"USE_ARC_PROTECTED_MEDIA=$use_arc_protected_media",
"USE_CHROMEOS_MEDIA_ACCELERATION=$use_vaapi||$use_v4l2_codec",

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cea37fe7429268baea5169fde8341775d510c1a2450d924fe85315d58b14cfb7
size 691226562

3
electron-35.2.1.tar.zst Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:88c862afb7258a3c9b2ca823f4d6077e59065ba830d0edf974a8b7ecfceaf022
size 753660040

View File

@@ -0,0 +1,15 @@
In file included from ../../third_party/blink/renderer/platform/bindings/bigint.cc:7:
../../third_party/blink/renderer/platform/bindings/exception_state.h:136:37: error: constexpr static data member kEmptyContext must have an initializer
136 | static constexpr ExceptionContext kEmptyContext;
--- src/third_party/blink/renderer/platform/bindings/exception_state.h.orig 2025-04-16 14:36:33.017070028 +0200
+++ src/third_party/blink/renderer/platform/bindings/exception_state.h 2025-04-16 20:05:07.925331205 +0200
@@ -133,7 +133,7 @@ class PLATFORM_EXPORT ExceptionState {
// Delegated constructor for DummyExceptionStateForTesting
explicit ExceptionState(DummyExceptionStateForTesting& dummy_derived);
- static constexpr ExceptionContext kEmptyContext;
+ static constexpr ExceptionContext kEmptyContext{};
private:
void SetExceptionInfo(ExceptionCode, const String&);

View File

@@ -0,0 +1,19 @@
--- src/chrome/browser/ui/lens/BUILD.gn.orig 2025-04-11 12:05:17.505799730 +0200
+++ src/chrome/browser/ui/lens/BUILD.gn 2025-04-12 13:42:57.195753884 +0200
@@ -276,13 +276,15 @@ source_set("interactive_ui_tests") {
"//components/feature_engagement/public",
"//components/lens:enterprise_policy",
"//components/lens:features",
- "//components/pdf/browser:browser",
"//components/prefs",
"//components/search_engines",
"//components/user_education/views",
"//content/test:test_support",
"//testing/gtest",
]
+ if (enable_pdf) {
+ deps += [ "//components/pdf/browser:browser" ]
+ }
}
source_set("unit_tests") {

View File

@@ -1,6 +1,6 @@
--- src/chrome/test/BUILD.gn.orig 2024-12-08 18:44:32.671357320 +0100
+++ src/chrome/test/BUILD.gn 2025-01-01 20:54:36.278270275 +0100
@@ -1959,9 +1959,6 @@ if (!is_android) {
--- src/chrome/test/BUILD.gn.orig 2025-04-11 12:13:12.932314099 +0200
+++ src/chrome/test/BUILD.gn 2025-04-12 13:00:11.499771987 +0200
@@ -2079,9 +2079,6 @@ if (!is_android) {
"//chrome/browser/resource_coordinator:tab_manager_features",
"//chrome/browser/safe_browsing:advanced_protection",
"//chrome/browser/safe_browsing:verdict_cache_manager_factory",
@@ -10,7 +10,7 @@
"//chrome/browser/search",
"//chrome/browser/search_engines",
"//chrome/browser/segmentation_platform:test_utils",
@@ -2334,9 +2331,6 @@ if (!is_android) {
@@ -2485,9 +2482,6 @@ if (!is_android) {
"//services/network/public/proto:sct_audit_report_proto",
"//services/preferences/public/cpp",
"//services/preferences/public/cpp/tracked",
@@ -20,7 +20,15 @@
"//services/service_manager/public/cpp",
"//services/strings",
"//services/test/echo/public/mojom",
@@ -8373,7 +8367,6 @@ test("unit_tests") {
@@ -8027,7 +8021,6 @@ test("unit_tests") {
# Non-android deps for "unit_tests" target.
deps += [
- "../browser/screen_ai:screen_ai_install_state",
"//chrome/browser/apps:icon_standardizer",
"//chrome/browser/apps/app_service",
"//chrome/browser/apps/app_service:app_registry_cache_waiter",
@@ -8172,7 +8165,6 @@ test("unit_tests") {
"//services/device/public/cpp/bluetooth",
"//services/metrics/public/cpp:ukm_builders",
"//services/network:test_support",
@@ -28,9 +36,36 @@
"//services/video_effects/test:test_support",
"//third_party/crashpad/crashpad/util",
"//third_party/libaddressinput",
--- src/chrome/browser/BUILD.gn.orig 2024-12-08 18:44:32.671357320 +0100
+++ src/chrome/browser/BUILD.gn 2025-01-01 21:05:47.125477818 +0100
@@ -4343,9 +4343,6 @@ static_library("browser") {
@@ -8445,7 +8437,6 @@ test("unit_tests") {
"//chrome/browser/push_notification",
"//chrome/browser/push_notification:test_support",
"//chrome/browser/push_notification/protos:proto",
- "//chrome/browser/screen_ai/public:test_support",
"//chrome/browser/smart_card:smart_card",
"//chrome/browser/task_manager:impl",
"//chrome/browser/ui/ash:test_support",
@@ -8591,7 +8582,6 @@ test("unit_tests") {
"//chrome/browser/nearby_sharing/contacts:unit_tests",
"//chrome/browser/nearby_sharing/local_device_data:unit_tests",
"//chrome/browser/policy:unit_tests",
- "//chrome/browser/screen_ai:unit_tests",
"//chrome/browser/smart_card:unit_tests",
"//chrome/browser/support_tool/ash:unit_tests",
"//chrome/browser/ui/ash:unit_tests",
--- src/chrome/browser/BUILD.gn.orig 2025-04-11 12:13:12.927314100 +0200
+++ src/chrome/browser/BUILD.gn 2025-04-12 13:12:42.819768051 +0200
@@ -4228,10 +4228,6 @@ static_library("browser") {
"//chrome/browser/new_tab_page/chrome_colors",
"//chrome/browser/policy:path_parser",
"//chrome/browser/resources:component_extension_resources",
- "//chrome/browser/screen_ai:prefs",
- "//chrome/browser/screen_ai:screen_ai_install_state",
- "//chrome/browser/screen_ai:screen_ai_service_router_factory",
- "//chrome/browser/screen_ai/public:optical_character_recognizer",
"//chrome/browser/search/background",
"//chrome/browser/smart_card",
"//chrome/browser/themes",
@@ -4357,9 +4353,6 @@ static_library("browser") {
"//components/webauthn/core/browser:passkey_model",
"//services/device/public/cpp/bluetooth",
"//services/device/public/cpp/hid",
@@ -98,3 +133,42 @@
]
configs += [ "//build/config/compiler:wexit_time_destructors" ]
--- src/chrome/browser/profiles/BUILD.gn.orig 2025-04-11 12:05:17.028151748 +0200
+++ src/chrome/browser/profiles/BUILD.gn 2025-04-12 13:17:59.379764245 +0200
@@ -302,7 +302,6 @@ source_set("profiles_extra_parts_impl")
"//chrome/browser/feedback",
"//chrome/browser/hid",
"//chrome/browser/media/router/discovery/access_code:access_code_sink_service",
- "//chrome/browser/screen_ai:screen_ai_service_router_factory",
"//chrome/browser/search",
"//chrome/browser/search/background",
"//chrome/browser/search_engine_choice",
--- src/chrome/browser/prefs/BUILD.gn.orig 2025-04-11 12:05:17.010048233 +0200
+++ src/chrome/browser/prefs/BUILD.gn 2025-04-12 13:20:41.959768617 +0200
@@ -265,7 +265,6 @@ source_set("impl") {
} else {
deps += [
"//chrome/browser/promos:utils",
- "//chrome/browser/screen_ai:prefs",
"//chrome/browser/search/background",
"//chrome/browser/search_engine_choice",
"//chrome/browser/search_engines",
--- src/chrome/browser/ui/BUILD.gn.orig 2025-04-11 12:05:17.331313863 +0200
+++ src/chrome/browser/ui/BUILD.gn 2025-04-12 13:26:46.759762260 +0200
@@ -1705,8 +1705,6 @@ static_library("ui") {
"//chrome/browser/reading_list",
"//chrome/browser/safe_browsing",
"//chrome/browser/safe_browsing:advanced_protection",
- "//chrome/browser/screen_ai:screen_ai_install_state",
- "//chrome/browser/screen_ai:screen_ai_service_router_factory",
"//chrome/browser/smart_card:smart_card",
"//chrome/browser/tab_group_sync:utils",
"//chrome/browser/themes",
@@ -2376,7 +2374,6 @@ static_library("ui") {
"//chrome/browser/policy:onc",
"//chrome/browser/policy:system_features_disable_list",
"//chrome/browser/push_notification:push_notification",
- "//chrome/browser/screen_ai/public:optical_character_recognizer",
"//chrome/browser/ui/ash/accessibility",
"//chrome/browser/ui/ash/app_access",
"//chrome/browser/ui/ash/arc",

View File

@@ -48,12 +48,12 @@
assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")
generate_allowlist_from_histograms_file("webui_name_variants") {
--- src/chrome/browser/extensions/BUILD.gn.orig 2024-12-08 18:34:53.171339936 +0100
+++ src/chrome/browser/extensions/BUILD.gn 2024-12-18 13:09:34.948061857 +0100
--- src/chrome/browser/extensions/BUILD.gn.orig 2025-04-11 12:05:16.772151640 +0200
+++ src/chrome/browser/extensions/BUILD.gn 2025-04-11 20:28:31.291951121 +0200
@@ -20,7 +20,6 @@ import("//testing/libfuzzer/fuzzer_test.
import("//third_party/protobuf/proto_library.gni")
assert(enable_extensions)
assert(enable_extensions_core)
-assert(enable_supervised_users)
assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")

View File

@@ -0,0 +1,40 @@
From 09a3abf8f4aca3b00ccbabc860b0819d7e3ea206 Mon Sep 17 00:00:00 2001
From: Yunsik Jung <yunsik.jung@lge.com>
Date: Fri, 21 Mar 2025 08:12:22 -0700
Subject: [PATCH] Fix build error when "enable_video_effects=false" in Linux
kVideoEffects is engaged even when ENABLE_VIDEO_EFFECTS is false.
(https://crrev.com/c/5898146)
However, "video_effects_sandbox_hook_linux.h" is not included when
ENABLE_VIDEO_EFFECTS is false which caused build error.
Thus, include "video_effects_sandbox_hook_linux.h" in Linux regardless
of ENABLE_VIDEO_EFFECTS.
Bug: N/A
Change-Id: If0bb3f1b391a7960ee8ff9ad83d8c858a24cedb5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6380633
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1436051}
---
content/utility/utility_main.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/content/utility/utility_main.cc b/content/utility/utility_main.cc
index 7456eab4558962..ffb16be8ce8541 100644
--- a/content/utility/utility_main.cc
+++ b/content/utility/utility_main.cc
@@ -66,9 +66,9 @@
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-#if BUILDFLAG(ENABLE_VIDEO_EFFECTS) && BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX)
#include "services/video_effects/video_effects_sandbox_hook_linux.h" // nogncheck
-#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS) && BUILDFLAG(IS_LINUX)
+#endif // BUILDFLAG(IS_LINUX)
#if BUILDFLAG(IS_CHROMEOS)
#include "chromeos/ash/components/assistant/buildflags.h"

8
fix-system-highway.patch Normal file
View File

@@ -0,0 +1,8 @@
--- src/build/linux/unbundle/highway.gn.orig 2025-04-11 12:05:15.714160237 +0200
+++ src/build/linux/unbundle/highway.gn 2025-04-12 14:26:12.155738961 +0200
@@ -18,3 +18,5 @@ source_set("libhwy") {
public_configs = [ ":libhwy_external_config" ]
public_deps = [ ":libhwy_shim" ]
}
+
+source_set("highway_tests") {}

View File

@@ -73,9 +73,9 @@ Use -fpic for code which goes only in dlls (gives smaller code),
sources = [
"compression_utils_portable.cc",
"compression_utils_portable.h",
--- src/ui/qt/BUILD.gn.old 2022-12-02 23:49:17.792117400 +0100
+++ src/ui/qt/BUILD.gn 2022-12-04 14:32:48.407196100 +0100
@@ -43,6 +43,8 @@
--- src/ui/qt/BUILD.gn.orig 2025-04-10 19:56:03.150817690 +0200
+++ src/ui/qt/BUILD.gn 2025-04-11 11:42:11.904342754 +0200
@@ -39,6 +39,8 @@ source_set("qt_interface") {
# target instead.
public = [ "qt_interface.h" ]
sources = [ "qt_interface.cc" ]
@@ -84,7 +84,7 @@ Use -fpic for code which goes only in dlls (gives smaller code),
}
template("qt_shim") {
@@ -76,6 +78,8 @@
@@ -99,6 +101,8 @@ template("qt_shim") {
sources += get_target_outputs(":generate_moc" + invoker.qt_version)
deps += [ ":generate_moc" + invoker.qt_version ]
}
@@ -92,7 +92,7 @@ Use -fpic for code which goes only in dlls (gives smaller code),
+ asmflags = ["-fpic", "-fno-semantic-interposition"]
}
}
qt_shim("qt5_shim") {
if (use_qt5) {
--- src/third_party/abseil-cpp/BUILD.gn.old
+++ src/third_party/abseil-cpp/BUILD.gn
@@ -132,6 +132,8 @@ config("absl_define_config") {

View File

@@ -0,0 +1,21 @@
Threatening downstream maintainers on stdout may be fun, but it breaks `gn desc` which we call in %install
--- src/build/config/c++/c++.gni 2025-04-16 14:36:21.927410223 +0200
+++ src/build/config/c++/c++.gni 2025-04-19 00:11:43.759874434 +0200
@@ -110,16 +110,3 @@ assert(!(is_ios && libcxx_is_shared),
# Chromium will require using its libc++ library implementation. Warn if the
# current configuration is not using it.
-if ((!use_custom_libcxx || !use_custom_libcxx_for_host) &&
- # Standalone use of //build outside of Chromium can disable libc++.
- build_with_chromium &&
- # Try to avoid spamming the console lots. It's not actually
- # toolchain-specific.
- current_toolchain == default_toolchain) {
- print("*********************************************************************")
- print("WARNING: Support for linking against a C++ standard library other ")
- print(" than the one in-tree (buildtools/third_party/libc++) is deprecated")
- print(" and support for this will end. We plan to remove this option in ")
- print(" M138.")
- print("*********************************************************************")
-}

View File

@@ -0,0 +1,26 @@
--- src/v8/src/codegen/riscv/macro-assembler-riscv.h.orig 2025-04-24 18:27:30.451008724 +0200
+++ src/v8/src/codegen/riscv/macro-assembler-riscv.h 2025-04-24 23:48:27.554835902 +0200
@@ -400,10 +400,7 @@ class V8_EXPORT_PRIVATE MacroAssembler :
push_helper(rs...);
}
- template <>
- void push_helper(Register r) {
- StoreWord(r, MemOperand(sp, 0));
- }
+ void push_helper() {}
public:
// Push a number of registers. The leftmost register first (to the highest
@@ -548,10 +545,7 @@ class V8_EXPORT_PRIVATE MacroAssembler :
LoadWord(r, MemOperand(sp, sizeof...(rs) * kSystemPointerSize));
}
- template <>
- void pop_helper(Register r) {
- LoadWord(r, MemOperand(sp, 0));
- }
+ void pop_helper() {}
public:
// Pop a number of registers. The leftmost register last (from the highest

View File

@@ -0,0 +1,35 @@
From 4ca8cffec2e6dea43de24a6a9d88095b73ab10f4 Mon Sep 17 00:00:00 2001
From: Ivan Murashov <ivan.murashov@lge.com>
Date: Wed, 19 Feb 2025 22:59:45 -0800
Subject: [PATCH] IWYU: Add missing include for std::optional usage in
media_session_uma_helper.h
In the CL https://crrev.com/c/6204145 used std::optional in
the content/browser/media/session/media_session_uma_helper.h,
but corresponding include was missed.
Added missing include for std::optional usage.
Bug: 41455655
Change-Id: I482a496f6f72762f02e8e6e1484a7eae58147148
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6279927
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Ivan Murashov <ivan.murashov@lge.com>
Reviewed-by: Tommy Steimel <steimel@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1422370}
---
content/browser/media/session/media_session_uma_helper.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/content/browser/media/session/media_session_uma_helper.h b/content/browser/media/session/media_session_uma_helper.h
index 70000267af9687..51dd098826020c 100644
--- a/content/browser/media/session/media_session_uma_helper.h
+++ b/content/browser/media/session/media_session_uma_helper.h
@@ -5,6 +5,8 @@
#ifndef CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_UMA_HELPER_H_
#define CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_UMA_HELPER_H_
+#include <optional>
+
#include "base/memory/raw_ptr.h"
#include "base/time/clock.h"
#include "base/time/time.h"

View File

@@ -1,11 +1,11 @@
Do not ship bundled zlib headers. Electron uses the system zlib, and anyone compiling against it should also.
--- src/electron/BUILD.gn.orig
+++ src/electron/BUILD.gn
@@ -1582,7 +1582,6 @@ group("copy_node_headers") {
public_deps = header_groups + [
":node_gypi_headers",
":node_version_header",
- ":zlib_headers",
]
--- src/electron/BUILD.gn.orig 2025-04-11 12:02:41.207130337 +0200
+++ src/electron/BUILD.gn 2025-04-11 20:58:52.999468971 +0200
@@ -1569,7 +1569,6 @@ group("copy_node_headers") {
":generate_node_headers",
":node_gypi_headers",
":node_version_header",
- ":zlib_headers",
]
}

View File

@@ -20,7 +20,7 @@
%define mod_name electron
# https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json
%define abi_version 130
%define abi_version 133
# Do not provide libEGL.so, etc…
%define __provides_exclude ^lib.*\\.so.*$
@@ -73,34 +73,14 @@ ExcludeArch: %arm
%bcond_without gdbjit
%endif
%ifnarch %ix86 %arm
%if (0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora})
#We no longer support 32-bit.
%bcond_without lto
%else
%bcond_with lto
%endif
%endif
%ifarch %ix86 %arm
%bcond_with lto
%endif
%ifarch aarch64
#Linker overflows without LTO.
%bcond_without lto
%endif
%bcond_with mold
%if 0%{?suse_version} || 0%{?fedora} >= 41
%bcond_without system_minizip
%else
%bcond_with system_minizip
%endif
%bcond_with system_yuv
@@ -109,16 +89,19 @@ ExcludeArch: %arm
%bcond_without system_vpx
%bcond_without bro_11
%bcond_without ffmpeg_6
%bcond_without wayland_34
%bcond_without system_vk_headers
%bcond_without spirv_2024
%bcond_without cares_21
#sqlite requires being compiled with session support, not a specific version.
%bcond_without system_sqlite
%else
%bcond_with system_vpx
%bcond_with bro_11
%bcond_with ffmpeg_6
%bcond_with wayland_34
%bcond_with system_vk_headers
%bcond_with spirv_2024
%bcond_with cares_21
%bcond_with system_sqlite
%endif
@@ -127,9 +110,11 @@ ExcludeArch: %arm
%if 0%{?fedora}
%bcond_without system_llhttp
%bcond_without system_histogram
%bcond_without system_simdjson
%else
%bcond_with system_llhttp
%bcond_with system_histogram
%bcond_with system_simdjson
%endif
@@ -140,8 +125,8 @@ ExcludeArch: %arm
%endif
# requires `run_convert_utf8_to_latin1_with_errors`
%if 0%{?fedora} >= 41
# requires `base64_options`
%if 0%{?fedora} >= 42
%bcond_without system_simdutf
%else
%bcond_with system_simdutf
@@ -153,9 +138,6 @@ ExcludeArch: %arm
%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}
%bcond_without system_abseil
@@ -207,11 +189,11 @@ ExcludeArch: %arm
Name: nodejs-electron
Version: 33.4.10
Version: 35.2.1
%global tag_version %version
Release: 0
Summary: Build cross platform desktop apps with JavaScript, HTML, and CSS
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}
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
Group: Development/Languages/NodeJS
URL: https://github.com/electron/electron
Source0: %{mod_name}-%{tag_version}.tar.zst
@@ -231,13 +213,18 @@ Source411: aom3.10-AV1E_SET_AUTO_TILES.patch
Source412: webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch
Source413: webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch
# and wayland protocol 1.32
Source420: wayland-protocol-toplevel-icon.patch
Source421: wayland-protocol-toplevel-icon-2.patch
Source422: wayland-protocol-toplevel-drag.patch
# and abseil 2401
Source460: quiche-absl-HexStringToBytes.patch
#Source420: wayland-protocol-toplevel-icon.patch
#Source421: wayland-protocol-toplevel-icon-2.patch
#Source422: wayland-protocol-toplevel-drag.patch
#Source423: wayland_connection-Wchanges-meaning.patch
# and abseil 2407
#Source460: quiche-absl-HexStringToBytes.patch
Source461: webrtc-make_ref_counted-absl2024-nullability.patch
#Source462: quiche-absl-HexStringToBytes-2.patch
# and c-ares 1.19
Source470: node-cares-1.21.patch
# and spirv 2023
Source480: angle-SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT.patch
@@ -257,11 +244,12 @@ Patch75: gcc-asmflags.patch
Patch77: angle_link_glx.patch
Patch78: rdynamic.patch
Patch80: icon.patch
Patch82: node-compiler.patch
#Patch82: node-compiler.patch
Patch84: aarch64-Xclang.patch
Patch85: devtools-frontend-compress_files-oom.patch
Patch86: enable_stack_trace_line_numbers-symbol_level.patch
Patch97: chromium-127-cargo_crate.patch
Patch98: gn-logspam-breaks-install.patch
# PATCHES that remove code we don't want. Most of them can be reused verbatim by other distributors,
@@ -281,7 +269,7 @@ Patch586: aom-vpx-no-thread-wrapper.patch
Patch588: remove-password-manager-and-policy.patch
Patch589: remove-puffin.patch
Patch590: remove-sync.patch
Patch591: fix-build-without-safebrowsing.patch
#Patch591: fix-build-without-safebrowsing.patch
Patch592: fix-build-without-supervised-users.patch
Patch593: fix-build-without-screen-ai.patch
Patch594: build-without-speech-service.patch
@@ -290,10 +278,15 @@ Patch595: chromium-123-qrcode.patch
Patch596: chromium-130-fontations.patch
Patch597: chromium-125-cloud_authenticator.patch
Patch598: chromium-127-crabby.patch
Patch599: chromium-132-no-rust.patch
#End gentoo patches
Patch599: remove-libphonenumber.patch
Patch600: delete-old-language-detection-which-uses-tflite.patch
Patch601: MakeSbixTypeface-null-pointer-call.patch
#Patch600: remove-libphonenumber.patch
#Patch601: delete-old-language-detection-which-uses-tflite.patch
Patch601: MakeSbixTypeface-null-pointer-call.patch
Patch602: remove-ai-language-detection-factory-which-requires-tflite-and-libphonenumber.patch
Patch603: build-without-mesage-center.patch
Patch604: disable-avif-really.patch
Patch605: permission-gcc14.2.patch
@@ -320,10 +313,14 @@ Patch1078: system-simdutf.patch
Patch1079: system-libm.patch
Patch1085: webp-no-sharpyuv.patch
Patch1086: zip_internal-missing-uLong-Z_DEFAULT_COMPRESSION.patch
Patch1087: system-ada-url.patch
#Patch1087: system-ada-url.patch
Patch1088: cr130-abseil-remove-unused-deps.patch
Patch1089: system-absl_algorithm.patch
Patch1090: cr130-absl-base.patch
Patch1091: use-system-libraries-in-node.patch
Patch1092: fix-system-highway.patch
Patch1093: system-sqlite.patch
Patch1094: absl_strings-missing-headers.patch
# PATCHES to fix interaction with third-party software
@@ -334,12 +331,12 @@ Patch2010: chromium-93-ffmpeg-4.4.patch
# is produced:
# 'nomerge' attribute cannot be applied to a declaration
# See https://reviews.llvm.org/D92800
Patch2022: electron-13-fix-base-check-nomerge.patch
#Patch2022: electron-13-fix-base-check-nomerge.patch
Patch2032: seccomp_bpf-no-lto.patch
Patch2034: swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch
Patch2035: RenderFrameHostImpl-use-after-free.patch
# https://github.com/electron/electron/pull/40032
Patch2040: build-without-extensions.patch
#Patch2040: build-without-extensions.patch
%if %{without bro_11}
Patch2042: brotli-remove-shared-dictionary.patch
%else
@@ -347,11 +344,7 @@ Source2042: brotli-remove-shared-dictionary.patch
%endif
Patch2045: libxml-2.12-xmlCtxtGetLastError-const.patch
Patch2046: chromium-118-sigtrap_system_ffmpeg.patch
%if %{with system_minizip}
Source2047: bundled-minizip.patch
%else
Patch2047: bundled-minizip.patch
%endif
#Patch2047: bundled-minizip.patch
Patch2048: absl2023-encapsulated_web_transport-StrCat.patch
#Work around gcc14 overly aggressive optimizer.
Patch2058: v8-strict-aliasing.patch
@@ -362,6 +355,8 @@ Patch2060: chromium-129-disable-H.264-video-parser-during-demuxing.patch
Patch2061: private_aggregation_host-uint128.patch
Patch2062: wayland_version.patch
Patch2063: fix-building-with-pipewire-1.3.82.patch
#Conditionably disable feature which requires new highway
Patch2064: blink-shape_result-highway.patch
# PATCHES that should be submitted upstream verbatim or near-verbatim
@@ -378,23 +373,45 @@ Patch3134: swiftshader-llvm18-LLVMJIT-Host.patch
Patch3135: swiftshader-llvm18-LLVMJIT-CodeGenOptLevel.patch
Patch3138: distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
Patch3144: mt21_util-flax-vector-conversions.patch
Patch3149: boringssl-internal-addc-cxx.patch
#Patch3149: boringssl-internal-addc-cxx.patch
Patch3151: distributed_point_functions-evaluate_prg_hwy-signature.patch
Patch3173: blink-platform-INSIDE_BLINK-Wodr.patch
#Patch3173: blink-platform-INSIDE_BLINK-Wodr.patch
Patch3174: swiftshader-llvm19-LLVMJIT-getHostCPUFeatures.patch
Patch3175: swiftshader-llvm19-LLVMReactor-incomplete-Module.patch
Patch3176: fix-build-without-service-discovery.patch
Patch3177: wayland_connection-Wchanges-meaning.patch
Patch3178: ip_protection_data_types-missing-optional.patch
Patch3179: account_id-missing-optional.patch
Patch3180: skia_image_decoder_base-missing-stack.patch
Patch3181: exception_context-missing-variant.patch
Patch3182: css_attr_value_tainting-missing-once_flag.patch
Patch3183: vtt_scanner-missing-variant.patch
#Patch3176: fix-build-without-service-discovery.patch
#Patch3178: ip_protection_data_types-missing-optional.patch
#Patch3179: account_id-missing-optional.patch
#Patch3180: skia_image_decoder_base-missing-stack.patch
#Patch3181: exception_context-missing-variant.patch
#Patch3182: css_attr_value_tainting-missing-once_flag.patch
#Patch3183: vtt_scanner-missing-variant.patch
Patch3184: electron_usb_delegate-incomplete-UsbDeviceInfo.patch
Patch3185: bsc1224178-font-gc.patch
Patch3186: string_view-incomplete-CodePointIterator.patch
Patch3187: swiftshader-llvm20-absoluteSymbols.patch
Patch3188: fix-build-without-pdf.patch
Patch3189: raw_ptr-fpermissive.patch
Patch3190: exception_state-constexpr-initializer.patch
Patch3191: resource_response-Wchanges-meaning.patch
Patch3192: perfetto-ThreadTrack-Current-null-dereference.patch
Patch3193: resource-Wchanges-meaning.patch
Patch3194: string_truncator-convert.patch
Patch3195: object_paint_properties-explicit-specialization-in-non-namespace-scope.patch
Patch3196: css_shape_value-constructor.patch
Patch3197: xml_document_parser-Wmissing-template-keyword.patch
Patch3198: ax_platform_node_id-fpermissive.patch
Patch3199: style_scope-unqualified-To.patch
Patch3200: content_browser_client-incomplete-WebUIController.patch
Patch3201: fix-build-without-video-effects.patch
Patch3202: media_session_uma_helper-missing-optional.patch
Patch3203: picture_in_picture_window_manager_uma_helper-missing-optional.patch
Patch3204: browser_process_impl-fix-safe_browsing_mode-0.patch
Patch3205: plugin_utils-build-without-electron_extensions.patch
Patch3206: string-hasher-flax-vector-conversions.patch
Patch3207: unexportable_key_service_impl-Wlto-type-mismatch.patch
Patch3208: to_vector-std-projected-gcc119888.patch
Patch3209: macro-assembler-riscv-explicit-specialization-in-non-namespace-scope.patch
Patch3210: v8-macro-assembler-riscv-leaptiering.patch
# Patches to re-enable upstream force disabled features.
# There's no sense in submitting them but they may be reused as-is by other packagers.
@@ -455,14 +472,15 @@ BuildRequires: ninja >= 1.7.2
%else
BuildRequires: ninja-build >= 1.7.2
%endif
%if 0%{?fedora} >= 37
%if 0%{?fedora}
BuildRequires: nodejs-npm
#otherwise electron-typescript-definitions crashes like https://github.com/nodejs/node/issues/51752
BuildRequires: nodejs-full-i18n
%else
BuildRequires: npm
%endif
%if 0%{?suse_version}
BuildRequires: nodejs-packaging
%endif
BuildRequires: npm(rollup)
BuildRequires: nodejs-packaging
BuildRequires: pkgconfig
BuildRequires: plasma-wayland-protocols
BuildRequires: python3-json5
@@ -475,7 +493,7 @@ BuildRequires: (python3-setuptools if python3 >= 3.12)
%endif
BuildRequires: python%{PYVER}-six
%if %{with system_simdutf}
BuildRequires: simdutf-devel >= 3.2.17
BuildRequires: simdutf-devel >= 5
%endif
BuildRequires: snappy-devel
%if 0%{?suse_version}
@@ -519,13 +537,14 @@ BuildRequires: pkgconfig(absl_int128)
BuildRequires: pkgconfig(absl_memory)
BuildRequires: pkgconfig(absl_node_hash_map)
BuildRequires: pkgconfig(absl_node_hash_set)
BuildRequires: pkgconfig(absl_nullability)
BuildRequires: pkgconfig(absl_optional)
BuildRequires: pkgconfig(absl_random_random)
BuildRequires: pkgconfig(absl_span)
BuildRequires: pkgconfig(absl_stacktrace)
BuildRequires: pkgconfig(absl_status)
BuildRequires: pkgconfig(absl_statusor)
BuildRequires: pkgconfig(absl_strings)
BuildRequires: pkgconfig(absl_strings) >= 20240700
BuildRequires: pkgconfig(absl_str_format)
BuildRequires: pkgconfig(absl_symbolize)
BuildRequires: pkgconfig(absl_synchronization)
@@ -568,10 +587,6 @@ BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavformat) >= 58
BuildRequires: pkgconfig(libavutil)
%endif
%if %{with system_avif}
# Needs avifRGBImage::maxThreads
BuildRequires: pkgconfig(libavif) >= 1
%endif
%if %{with bro_11}
BuildRequires: pkgconfig(libbrotlicommon) >= 1.1~
%endif
@@ -580,7 +595,6 @@ BuildRequires: pkgconfig(libbrotlienc)
BuildRequires: pkgconfig(libcares)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libevent)
BuildRequires: pkgconfig(libhwy) >= 1
BuildRequires: pkgconfig(libnghttp2)
BuildRequires: pkgconfig(libnotify)
@@ -605,13 +619,7 @@ BuildRequires: pkgconfig(libyuv) >= 1894
BuildRequires: pkgconfig(libyuv)
%endif
BuildRequires: pkgconfig(libzstd)
%if %{with system_minizip}
%if 0%{?fedora}
BuildRequires: minizip-compat-devel
%else
BuildRequires: pkgconfig(minizip)
%endif
%endif
BuildRequires: pkgconfig(nspr) >= 4.9.5
BuildRequires: pkgconfig(nss) >= 3.26
BuildRequires: pkgconfig(opus) >= 1.3.1
@@ -626,17 +634,21 @@ BuildRequires: pkgconfig(Qt6Widgets)
#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_simdjson}
BuildRequires: pkgconfig(simdjson)
%endif
%if 0%{?suse_version}
BuildRequires: spirv-headers
%else
BuildRequires: spirv-headers-devel
%endif
BuildRequires: pkgconfig(SPIRV-Tools) >= 2022.2
BuildRequires: pkgconfig(vulkan) >= 1.3
%if %{with wayland_34}
BuildRequires: pkgconfig(wayland-protocols) >= 1.33
%if %{with spirv_2024}
BuildRequires: pkgconfig(SPIRV-Tools) >= 2024
%endif
BuildRequires: pkgconfig(wayland-protocols) >= 1.32
BuildRequires: pkgconfig(SPIRV-Tools) >= 2022.2
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(vulkan) >= 1.3
BuildRequires: pkgconfig(wayland-protocols) >= 1.37
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xshmfence)
BuildRequires: pkgconfig(zlib)
@@ -753,13 +765,6 @@ patch -R -p1 < %SOURCE412
patch -R -p1 < %SOURCE413
%endif
%if %{without wayland_34}
patch -R -p1 < %PATCH3177
patch -R -p1 < %SOURCE422
patch -R -p1 < %SOURCE421
patch -R -p1 < %SOURCE420
%endif
%if %{without cares_21}
patch -R -p1 < %SOURCE470
%endif
@@ -773,20 +778,24 @@ patch -R -p1 < %SOURCE400
patch -R -p1 < %SOURCE401
%endif
%if %{without spirv_2024}
patch -R -p1 < %SOURCE480
%endif
%if %{without system_sqlite}
patch -R -p1 < %PATCH1093
%endif
# This one just removes compatibility with old abseil and does not add anything, reverting unconditionally.
patch -R -p1 < %SOURCE461
# This one depends on an abseil nightly, reverting unconditionally.
patch -R -p1 < %SOURCE460
#Replace non-free rollup 4.x with rollup 3.x. This probably won't last for long and we will have to figure out how to build rollup 4
rm -rf third_party/node/node_modules/@rollup/wasm-node/
ln -srvT third_party/devtools-frontend/src/node_modules/rollup third_party/node/node_modules/@rollup/wasm-node
rm -rf third_party/devtools-frontend/src/node_modules/@rollup/wasm-node/
cp -arvT %{nodejs_sitelib}/rollup third_party/node/node_modules/@rollup/wasm-node
cp -alrvT third_party/node/node_modules/@rollup/wasm-node third_party/devtools-frontend/src/node_modules/@rollup/wasm-node
# Link system wayland-protocols-devel into where chrome expects them
@@ -828,7 +837,6 @@ gn_system_libraries=(
jsoncpp
libaom
libdrm
libevent
libjpeg
libpng
libsecret
@@ -876,18 +884,10 @@ gn_system_libraries+=(
%if %{with system_avif}
find third_party/libavif -type f ! -name "*.gn" -a ! -name "*.gni" -delete
gn_system_libraries+=( libavif )
%endif
%if %{with system_minizip}
find third_party/zlib/contrib -type f ! -name "*.gn" -a ! -name "*.gni" -delete
%endif
%if %{with system_re2}
find third_party/re2 -type f ! -name "*.gn" -a ! -name "*.gni" -delete
@@ -917,6 +917,11 @@ find third_party/libyuv -type f ! -name "*.gn" -a ! -name "*.gni" -delete
gn_system_libraries+=( libyuv )
%endif
%if %{with system_simdutf}
find third_party/simdutf -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
gn_system_libraries+=( simdutf )
%endif
build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries[@]}
@@ -932,8 +937,12 @@ find third_party/electron_node/deps/llhttp -type f ! -name "*.gn" -a ! -name "*.
find third_party/electron_node/deps/histogram -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
%endif
%if %{with system_simdutf}
find third_party/electron_node/deps/simdutf -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
%if %{with system_simdjson}
find third_party/electron_node/deps/simdjson -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
%endif
%if %{with system_sqlite}
find third_party/electron_node/deps/sqlite -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
%endif
@@ -1056,7 +1065,7 @@ unset MALLOC_PERTURB_
%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=6 -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
export LDFLAGS="$LDFLAGS -flto=auto --param ggc-min-expand=20 --param ggc-min-heapsize=32768 --param lto-max-streaming-parallelism=4 -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"
@@ -1071,6 +1080,9 @@ export LDFLAGS="$LDFLAGS -fuse-ld=mold"
export CCACHE_COMPRESS=1
ccache -o max_size=0 || true
#see generate_node_headers.py
export ELECTRON_OUT_DIR=Release
# Create the configuration for GN
# Available options: out/Release/gn args --list out/Release/
myconf_gn=""
@@ -1150,6 +1162,7 @@ myconf_gn+=' angle_enable_swiftshader=true'
# do not build PDF support
myconf_gn+=' enable_glic=false'
myconf_gn+=" enable_pdf=false"
myconf_gn+=' enable_pdf_ink2=false'
myconf_gn+=" enable_pdf_viewer=false"
@@ -1169,6 +1182,7 @@ myconf_gn+=' content_enable_legacy_ipc=true'
#do not build webextensions support
myconf_gn+=' enable_electron_extensions=false'
myconf_gn+=' enable_platform_apps=false'
# The option below get overriden by whatever is in CFLAGS/CXXFLAGS, so they affect only C++ code.
# symbol_level=2 is full debug
@@ -1251,12 +1265,13 @@ myconf_gn+=' structured_metrics_enabled=false'
myconf_gn+=' structured_metrics_debug_enabled=false'
myconf_gn+=' build_dawn_tests=false'
myconf_gn+=' enable_compute_pressure=false'
myconf_fn+=' enable_guest_view=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_rust_png=false'
myconf_gn+=' enable_chromium_prelude=false'
myconf_gn+=' chrome_root_store_cert_management_ui=false'
@@ -1265,7 +1280,6 @@ myconf_gn+=' use_kerberos=false'
myconf_gn+=' disable_histogram_support=true'
#Do not build Chromecast
myconf_gn+=" enable_remoting=false"
myconf_gn+=" enable_media_remoting=false"
@@ -1283,6 +1297,18 @@ myconf_gn+=' enable_perfetto_trace_processor_json=false'
myconf_gn+=' enable_perfetto_trace_processor_httpd=false'
myconf_gn+=' enable_perfetto_zlib=false'
#Otherwise mksnapshot crashes
#0 perfetto::ThreadTrack::Current () at ../../third_party/perfetto/src/tracing/track.cc:105
#1 0x0000555555815084 in v8::internal::GCTracer::GCTracer () at ../../v8/src/heap/gc-tracer.cc:184
#2 v8::internal::Heap::SetUpSpaces (this=0x555557507788, new_allocation_info=..., old_allocation_info=...) at ../../v8/src/heap/heap.cc:5788
#3 0x000055555704895b in v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) [clone .isra.0] () at ../../v8/src/execution/isolate.cc:5556
#4 0x0000555555b51ad3 in v8::internal::Isolate::InitWithoutSnapshot () at ../../v8/src/execution/isolate.cc:5184
#5 v8::internal::SnapshotCreatorImpl::InitInternal (this=0x55555750c130, blob=0x0) at ../../v8/src/snapshot/snapshot.cc:868
#6 0x0000555555654b15 in v8::internal::SnapshotCreatorImpl::SnapshotCreatorImpl () at ../../v8/src/snapshot/snapshot.cc:929
#7 v8::SnapshotCreator::SnapshotCreator () at ../../v8/src/api/api.cc:552
#8 main (argc=1465209528, argv=0x3ff0000000000000) at ../../v8/src/snapshot/mksnapshot.cc:298
#myconf_gn+=' v8_use_perfetto=false'
myconf_gn+=' dawn_complete_static_libs=true'
@@ -1340,8 +1366,8 @@ myconf_gn+=" use_system_llhttp=true"
%if %{with system_histogram}
myconf_gn+=" use_system_histogram=true"
%endif
%if %{with system_simdutf}
myconf_gn+=' use_system_simdutf=true'
%if %{with system_simdjson}
myconf_gn+=' use_system_simdjson=true'
%endif
myconf_gn+=" is_clang=false"
@@ -1378,8 +1404,6 @@ myconf_gn+=' skia_use_dawn=false'
myconf_gn+=" proprietary_codecs=true"
myconf_gn+=" ffmpeg_branding=\"Chrome\""
# GN does not support passing cflags:
# https://bugs.chromium.org/p/chromium/issues/detail?id=642016
gn gen out/Release --testonly=false --args="import(\"//electron/build/args/release.gn\") ${myconf_gn}"
@@ -1464,7 +1488,7 @@ cp /dev/stdin %{buildroot}%{_rpmconfigdir}/macros.d/macros.electron <<"EOF"
# Build native modules against Electron. This should be done as the first step in ‰build. You must set CFLAGS/LDFLAGS previously.
# You can call it multiple times in different directories and pass more parameters to it (seen in vscode)
%%electron_rebuild %{?jitless} PATH="%{_libexecdir}/electron-node:$PATH" npm rebuild --verbose --foreground-scripts --nodedir=%{_includedir}/electron
%%electron_rebuild PATH="%{_libexecdir}/electron-node:$PATH" npm rebuild --verbose --foreground-scripts --nodedir=%{_includedir}/electron
# Sanity check that native modules load. You must include this in ‰check if the package includes native modules (possibly in addition to actual test suites)
# These do, in order:

View File

@@ -0,0 +1,99 @@
--- src/third_party/blink/renderer/core/paint/object_paint_properties.h.orig 2025-04-16 14:36:32.662070096 +0200
+++ src/third_party/blink/renderer/core/paint/object_paint_properties.h 2025-04-16 22:12:50.444628128 +0200
@@ -174,47 +174,6 @@ class CORE_EXPORT ObjectPaintProperties
template <typename NodeType>
struct NodeIdRange {};
- template <>
- struct NodeIdRange<PaintPropertyNode> {
- static constexpr NodeId kFirst = NodeId::kFirstTransform;
- static constexpr NodeId kLast = NodeId::kClipAlias;
- };
- template <>
- struct NodeIdRange<TransformPaintPropertyNodeOrAlias> {
- static constexpr NodeId kFirst = NodeId::kFirstTransform;
- static constexpr NodeId kLast = NodeId::kTransformAlias;
- };
- template <>
- struct NodeIdRange<TransformPaintPropertyNode> {
- static constexpr NodeId kFirst = NodeId::kFirstTransform;
- static constexpr NodeId kLast = NodeId::kLastTransform;
- };
- template <>
- struct NodeIdRange<ScrollPaintPropertyNode> {
- static constexpr NodeId kFirst = NodeId::kFirstScroll;
- static constexpr NodeId kLast = NodeId::kLastScroll;
- };
- template <>
- struct NodeIdRange<EffectPaintPropertyNodeOrAlias> {
- static constexpr NodeId kFirst = NodeId::kFirstEffect;
- static constexpr NodeId kLast = NodeId::kEffectAlias;
- };
- template <>
- struct NodeIdRange<EffectPaintPropertyNode> {
- static constexpr NodeId kFirst = NodeId::kFirstEffect;
- static constexpr NodeId kLast = NodeId::kLastEffect;
- };
- template <>
- struct NodeIdRange<ClipPaintPropertyNodeOrAlias> {
- static constexpr NodeId kFirst = NodeId::kFirstClip;
- static constexpr NodeId kLast = NodeId::kClipAlias;
- };
- template <>
- struct NodeIdRange<ClipPaintPropertyNode> {
- static constexpr NodeId kFirst = NodeId::kFirstClip;
- static constexpr NodeId kLast = NodeId::kLastClip;
- };
-
public:
template <typename NodeType>
bool HasNode() const {
@@ -579,6 +538,48 @@ class CORE_EXPORT ObjectPaintProperties
#endif
};
+template <>
+struct ObjectPaintProperties::NodeIdRange<PaintPropertyNode> {
+ static constexpr NodeId kFirst = NodeId::kFirstTransform;
+ static constexpr NodeId kLast = NodeId::kClipAlias;
+};
+template <>
+struct ObjectPaintProperties::NodeIdRange<TransformPaintPropertyNodeOrAlias> {
+ static constexpr NodeId kFirst = NodeId::kFirstTransform;
+ static constexpr NodeId kLast = NodeId::kTransformAlias;
+};
+template <>
+struct ObjectPaintProperties::NodeIdRange<TransformPaintPropertyNode> {
+ static constexpr NodeId kFirst = NodeId::kFirstTransform;
+ static constexpr NodeId kLast = NodeId::kLastTransform;
+};
+template <>
+struct ObjectPaintProperties::NodeIdRange<ScrollPaintPropertyNode> {
+ static constexpr NodeId kFirst = NodeId::kFirstScroll;
+ static constexpr NodeId kLast = NodeId::kLastScroll;
+};
+template <>
+struct ObjectPaintProperties::NodeIdRange<EffectPaintPropertyNodeOrAlias> {
+ static constexpr NodeId kFirst = NodeId::kFirstEffect;
+ static constexpr NodeId kLast = NodeId::kEffectAlias;
+};
+template <>
+struct ObjectPaintProperties::NodeIdRange<EffectPaintPropertyNode> {
+ static constexpr NodeId kFirst = NodeId::kFirstEffect;
+ static constexpr NodeId kLast = NodeId::kLastEffect;
+};
+template <>
+struct ObjectPaintProperties::NodeIdRange<ClipPaintPropertyNodeOrAlias> {
+ static constexpr NodeId kFirst = NodeId::kFirstClip;
+ static constexpr NodeId kLast = NodeId::kClipAlias;
+};
+template <>
+struct ObjectPaintProperties::NodeIdRange<ClipPaintPropertyNode> {
+ static constexpr NodeId kFirst = NodeId::kFirstClip;
+ static constexpr NodeId kLast = NodeId::kLastClip;
+};
+
+
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_OBJECT_PAINT_PROPERTIES_H_

View File

@@ -0,0 +1,42 @@
#Otherwise mksnapshot crashes
#0 perfetto::ThreadTrack::Current () at ../../third_party/perfetto/src/tracing/track.cc:105
#1 0x0000555555815084 in v8::internal::GCTracer::GCTracer () at ../../v8/src/heap/gc-tracer.cc:184
#2 v8::internal::Heap::SetUpSpaces (this=0x555557507788, new_allocation_info=..., old_allocation_info=...) at ../../v8/src/heap/heap.cc:5788
#3 0x000055555704895b in v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) [clone .isra.0] () at ../../v8/src/execution/isolate.cc:5556
#4 0x0000555555b51ad3 in v8::internal::Isolate::InitWithoutSnapshot () at ../../v8/src/execution/isolate.cc:5184
#5 v8::internal::SnapshotCreatorImpl::InitInternal (this=0x55555750c130, blob=0x0) at ../../v8/src/snapshot/snapshot.cc:868
#6 0x0000555555654b15 in v8::internal::SnapshotCreatorImpl::SnapshotCreatorImpl () at ../../v8/src/snapshot/snapshot.cc:929
#7 v8::SnapshotCreator::SnapshotCreator () at ../../v8/src/api/api.cc:552
#8 main (argc=1465209528, argv=0x3ff0000000000000) at ../../v8/src/snapshot/mksnapshot.cc:298
--- src/third_party/perfetto/src/tracing/internal/tracing_muxer_fake.h.orig 2025-04-16 14:38:49.066064367 +0200
+++ src/third_party/perfetto/src/tracing/internal/tracing_muxer_fake.h 2025-04-16 21:06:46.592994525 +0200
@@ -44,11 +44,7 @@ class TracingMuxerFake : public TracingM
~TracingMuxerFake() override;
static constexpr TracingMuxerFake* Get() {
-#if PERFETTO_HAS_NO_DESTROY()
return &instance;
-#else
- return nullptr;
-#endif
}
// TracingMuxer implementation.
--- src/third_party/perfetto/src/tracing/internal/tracing_muxer_fake.cc.orig 2025-04-16 14:38:49.066064367 +0200
+++ src/third_party/perfetto/src/tracing/internal/tracing_muxer_fake.cc 2025-04-16 21:13:09.044959936 +0200
@@ -27,13 +27,11 @@ PERFETTO_NORETURN void FailUninitialized
} // namespace
-#if PERFETTO_HAS_NO_DESTROY()
// static
PERFETTO_NO_DESTROY TracingMuxerFake::FakePlatform
TracingMuxerFake::FakePlatform::instance{};
// static
PERFETTO_NO_DESTROY TracingMuxerFake TracingMuxerFake::instance{};
-#endif // PERFETTO_HAS_NO_DESTROY()
TracingMuxerFake::~TracingMuxerFake() = default;

13
permission-gcc14.2.patch Normal file
View File

@@ -0,0 +1,13 @@
This file fails to compile under gcc 14.2 but should be entirely dead code
--- src/components/services/app_service/public/cpp/BUILD.gn.orig 2025-04-21 18:29:17.630307050 +0200
+++ src/components/services/app_service/public/cpp/BUILD.gn 2025-04-23 18:18:14.510674646 +0200
@@ -28,8 +28,6 @@ component("app_types") {
"menu.h",
"package_id.cc",
"package_id.h",
- "permission.cc",
- "permission.h",
"preferred_app.cc",
"preferred_app.h",
"run_on_os_login_types.cc",

View File

@@ -0,0 +1,35 @@
From 1e7508ce083f6c7e43011f899faf10537a6379e2 Mon Sep 17 00:00:00 2001
From: Ivan Murashov <ivan.murashov@lge.com>
Date: Thu, 20 Feb 2025 10:37:19 -0800
Subject: [PATCH] IWYU: Add missing include for std::optional usage in
picture_in_picture_window_manager_uma_helper.h
In the CL https://crrev.com/c/6191230 used std::optional in the
chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h,
but corresponding include was missed.
Added missing include for std::optional usage.
Bug: 41455655
Change-Id: I70f67c4a06481875d4602b16a97532cdad2a63b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6275068
Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org>
Commit-Queue: Ivan Murashov <ivan.murashov@lge.com>
Reviewed-by: Tommy Steimel <steimel@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1422669}
---
.../picture_in_picture_window_manager_uma_helper.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h b/chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h
index cb826fc5a20598..866670224c8a38 100644
--- a/chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h
+++ b/chrome/browser/picture_in_picture/picture_in_picture_window_manager_uma_helper.h
@@ -5,6 +5,8 @@
#ifndef CHROME_BROWSER_PICTURE_IN_PICTURE_PICTURE_IN_PICTURE_WINDOW_MANAGER_UMA_HELPER_H_
#define CHROME_BROWSER_PICTURE_IN_PICTURE_PICTURE_IN_PICTURE_WINDOW_MANAGER_UMA_HELPER_H_
+#include <optional>
+
#include "base/memory/raw_ptr.h"
#include "base/time/clock.h"
#include "base/time/time.h"

View File

@@ -0,0 +1,20 @@
--- src/electron/shell/browser/plugins/plugin_utils.cc.orig 2025-04-16 14:34:09.220241915 +0200
+++ src/electron/shell/browser/plugins/plugin_utils.cc 2025-04-18 21:59:05.472058588 +0200
@@ -33,6 +33,8 @@ std::string PluginUtils::GetExtensionIdF
base::flat_map<std::string, std::string>
PluginUtils::GetMimeTypeToExtensionIdMap(
content::BrowserContext* browser_context) {
+ base::flat_map<std::string, std::string> mime_type_to_extension_id_map;
+
#if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS)
const auto& allowed_extension_ids = MimeTypesHandler::GetMIMETypeAllowlist();
if (allowed_extension_ids.empty())
@@ -41,8 +43,6 @@ PluginUtils::GetMimeTypeToExtensionIdMap
const extensions::ExtensionSet& enabled_extensions =
extensions::ExtensionRegistry::Get(browser_context)->enabled_extensions();
- base::flat_map<std::string, std::string> mime_type_to_extension_id_map;
-
// Go through the white-listed extensions and try to use them to intercept
// the URL request.
for (const std::string& id : allowed_extension_ids) {

View File

@@ -21,22 +21,22 @@ In file included from /usr/include/c++/14/string:49,
143 | absl::uint128 bucket;
| ^~~~~~
--- src/content/browser/private_aggregation/private_aggregation_host.cc 2025-01-02 22:23:57.594885484 +0100
+++ /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/src/content/browser/private_aggregation/private_aggregation_host.cc 2025-01-03 21:33:27.795544465 +0100
@@ -51,7 +51,6 @@
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/network/public/cpp/is_potentially_trustworthy.h"
--- src/content/browser/private_aggregation/private_aggregation_pending_contributions.h.orig 2025-04-16 14:36:28.649070859 +0200
+++ src/content/browser/private_aggregation/private_aggregation_pending_contributions.h 2025-04-17 16:33:05.731832452 +0200
@@ -11,7 +11,6 @@
#include <vector>
#include "content/common/content_export.h"
-#include "third_party/abseil-cpp/absl/numeric/int128.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/abseil-cpp/absl/types/variant.h"
#include "third_party/blink/public/mojom/aggregation_service/aggregatable_report.mojom.h"
#include "third_party/blink/public/mojom/private_aggregation/private_aggregation_host.mojom.h"
@@ -140,7 +139,7 @@ struct ContributionMergeKey {
auto operator<=>(const ContributionMergeKey& a) const = default;
@@ -41,7 +40,7 @@ class CONTENT_EXPORT PrivateAggregationP
- absl::uint128 bucket;
+ unsigned __int128 bucket;
uint64_t filtering_id;
};
auto operator<=>(const ContributionMergeKey& a) const = default;
- absl::uint128 bucket;
+ unsigned __int128 bucket;
uint64_t filtering_id;
};

48
raw_ptr-fpermissive.patch Normal file
View File

@@ -0,0 +1,48 @@
From f12e128221d2011c57448032d67309da94f55dde Mon Sep 17 00:00:00 2001
From: Marshall Greenblatt <marshall@chromium.org>
Date: Thu, 13 Feb 2025 17:47:09 -0800
Subject: [PATCH] Fix extra qualification on member 'basic_common_reference'
Fixes the following errors when building on Windows with
use_custom_libcxx=false.
In file included from ../..\base/memory/raw_ptr.h:11:
../../base/allocator/partition_allocator/src\partition_alloc/pointers/raw_ptr.h(1274,13): error: extra qualification on member 'basic_common_reference' [-Werror,-Wextra-qualification]
1274 | struct std::basic_common_reference<raw_ptr<T, Traits>, T*, TQ, UQ> {
| ^
../../base/allocator/partition_allocator/src\partition_alloc/pointers/raw_ptr.h(1284,13): error: extra qualification on member 'basic_common_reference' [-Werror,-Wextra-qualification]
1284 | struct std::basic_common_reference<T*, raw_ptr<T, Traits>, TQ, UQ> {
| ^
2 errors generated.
Change-Id: I86f92b206fdcba8d0e820c7a625e1c28518f02a0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6265643
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1420246}
---
.../src/partition_alloc/pointers/raw_ptr.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h
index c3ac11523410fb..2a3d3bc4d1f342 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h
@@ -1271,7 +1271,7 @@ template <typename T,
typename TQ,
template <typename>
typename UQ>
-struct std::basic_common_reference<raw_ptr<T, Traits>, T*, TQ, UQ> {
+struct basic_common_reference<raw_ptr<T, Traits>, T*, TQ, UQ> {
using type = T*;
};
@@ -1281,7 +1281,7 @@ template <typename T,
typename TQ,
template <typename>
typename UQ>
-struct std::basic_common_reference<T*, raw_ptr<T, Traits>, TQ, UQ> {
+struct basic_common_reference<T*, raw_ptr<T, Traits>, TQ, UQ> {
using type = T*;
};

View File

@@ -0,0 +1,373 @@
--- src/third_party/blink/renderer/modules/ai/ai.cc.orig 2025-04-16 14:36:32.771242661 +0200
+++ src/third_party/blink/renderer/modules/ai/ai.cc 2025-04-17 16:44:52.883833032 +0200
@@ -30,7 +30,6 @@ void AI::Trace(Visitor* visitor) const {
visitor->Trace(ai_summarizer_factory_);
visitor->Trace(ai_writer_factory_);
visitor->Trace(ai_rewriter_factory_);
- visitor->Trace(ai_language_detector_factory_);
visitor->Trace(ai_translator_factory_);
}
@@ -78,15 +77,6 @@ AIRewriterFactory* AI::rewriter() {
return ai_rewriter_factory_.Get();
}
-AILanguageDetectorFactory* AI::languageDetector() {
- if (!ai_language_detector_factory_) {
- ai_language_detector_factory_ =
- MakeGarbageCollected<AILanguageDetectorFactory>(GetExecutionContext(),
- task_runner_);
- }
- return ai_language_detector_factory_.Get();
-}
-
AITranslatorFactory* AI::translator() {
if (!ai_translator_factory_) {
ai_translator_factory_ =
--- src/third_party/blink/renderer/modules/ai/ai.h.orig 2025-04-16 14:36:32.771242661 +0200
+++ src/third_party/blink/renderer/modules/ai/ai.h 2025-04-17 16:45:08.367832844 +0200
@@ -10,7 +10,6 @@
#include "third_party/blink/public/mojom/ai/ai_manager.mojom-blink.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
-#include "third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.h"
#include "third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.h"
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
@@ -37,7 +36,6 @@ class AI final : public ScriptWrappable,
AISummarizerFactory* summarizer();
AIRewriterFactory* rewriter();
AIWriterFactory* writer();
- AILanguageDetectorFactory* languageDetector();
AITranslatorFactory* translator();
HeapMojoRemote<mojom::blink::AIManager>& GetAIRemote();
@@ -51,7 +49,6 @@ class AI final : public ScriptWrappable,
Member<AISummarizerFactory> ai_summarizer_factory_;
Member<AIWriterFactory> ai_writer_factory_;
Member<AIRewriterFactory> ai_rewriter_factory_;
- Member<AILanguageDetectorFactory> ai_language_detector_factory_;
Member<AITranslatorFactory> ai_translator_factory_;
};
--- src/third_party/blink/renderer/modules/ai/ai.idl 2025-04-16 14:36:32.771242661 +0200
+++ src/third_party/blink/renderer/modules/ai/ai.idl 2025-04-18 13:52:33.485440478 +0200
@@ -40,11 +40,6 @@ interface AI {
readonly attribute AIRewriterFactory rewriter;
[
- RuntimeEnabled=LanguageDetectionAPI
- ]
- readonly attribute AILanguageDetectorFactory languageDetector;
-
- [
RuntimeEnabled=TranslationAPI
]
readonly attribute AITranslatorFactory translator;
--- src/third_party/blink/renderer/modules/ai/BUILD.gn 2025-04-16 14:36:32.771172881 +0200
+++ src/third_party/blink/renderer/modules/ai/BUILD.gn 2025-04-18 21:41:05.606552171 +0200
@@ -41,16 +41,8 @@ blink_modules_sources("ai") {
"exception_helpers.h",
"model_execution_responder.cc",
"model_execution_responder.h",
- "on_device_translation/ai_language_detector.cc",
- "on_device_translation/ai_language_detector.h",
- "on_device_translation/ai_language_detector_capabilities.cc",
- "on_device_translation/ai_language_detector_capabilities.h",
- "on_device_translation/ai_language_detector_factory.cc",
- "on_device_translation/ai_language_detector_factory.h",
"on_device_translation/ai_translator.cc",
"on_device_translation/ai_translator.h",
- "on_device_translation/ai_translator_capabilities.cc",
- "on_device_translation/ai_translator_capabilities.h",
"on_device_translation/ai_translator_factory.cc",
"on_device_translation/ai_translator_factory.h",
]
@@ -60,7 +52,5 @@ blink_modules_sources("ai") {
deps = [
"//components/language_detection/content/common",
"//components/language_detection/content/common:common_blink",
- "//components/language_detection/content/renderer",
- "//components/language_detection/core",
]
}
--- src/third_party/blink/renderer/platform/BUILD.gn.orig 2025-04-12 14:33:45.435739667 +0200
+++ src/third_party/blink/renderer/platform/BUILD.gn 2025-04-12 15:58:59.809440918 +0200
@@ -1239,8 +1239,6 @@ component("platform") {
"keyboard_codes.h",
"language.cc",
"language.h",
- "language_detection/language_detection_model.cc",
- "language_detection/language_detection_model.h",
"link_hash.cc",
"link_hash.h",
"media/media_player_client.h",
@@ -1757,11 +1755,8 @@ component("platform") {
"//cc/mojo_embedder",
"//components/language_detection/content/common",
"//components/language_detection/content/common:common_blink",
- "//components/language_detection/content/renderer",
- "//components/language_detection/core",
"//components/paint_preview/common",
"//components/search_engines:search_engine_utils",
- "//components/translate/core/language_detection:language_detection",
"//components/viz/client",
"//components/viz/common",
"//components/webrtc:net_address_utils",
--- src/components/translate/core/common/BUILD.gn.orig 2025-04-12 14:33:35.535738956 +0200
+++ src/components/translate/core/common/BUILD.gn 2025-04-12 16:04:56.897440792 +0200
@@ -23,7 +23,6 @@ static_library("common") {
deps = [
"//base",
"//components/language/core/common",
- "//components/language_detection/core:core",
"//third_party/metrics_proto",
"//url",
]
--- src/third_party/blink/renderer/modules/BUILD.gn 2025-04-16 14:36:32.763311004 +0200
+++ src/third_party/blink/renderer/modules/BUILD.gn 2025-04-18 14:17:17.869441496 +0200
@@ -128,7 +128,6 @@ component("modules") {
"//third_party/blink/renderer/modules/netinfo",
"//third_party/blink/renderer/modules/nfc",
"//third_party/blink/renderer/modules/notifications",
- "//third_party/blink/renderer/modules/on_device_translation",
"//third_party/blink/renderer/modules/payments",
"//third_party/blink/renderer/modules/payments/goods",
"//third_party/blink/renderer/modules/peerconnection",
--- src/third_party/blink/renderer/bindings/idl_in_modules.gni 2025-04-16 14:36:32.335223804 +0200
+++ src/third_party/blink/renderer/bindings/idl_in_modules.gni 2025-04-18 21:39:21.064884303 +0200
@@ -28,12 +28,8 @@ static_idl_files_in_modules = [
"//third_party/blink/renderer/modules/ai/ai_summarizer_factory.idl",
"//third_party/blink/renderer/modules/ai/ai_writer.idl",
"//third_party/blink/renderer/modules/ai/ai_writer_factory.idl",
- "//third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector.idl",
- "//third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.idl",
- "//third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_capabilities.idl",
"//third_party/blink/renderer/modules/ai/on_device_translation/ai_translator.idl",
"//third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl",
- "//third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_capabilities.idl",
"//third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl",
"//third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.idl",
"//third_party/blink/renderer/modules/animationworklet/css_animation_worklet.idl",
@@ -542,10 +538,6 @@ static_idl_files_in_modules = [
"//third_party/blink/renderer/modules/notifications/service_worker_global_scope_notifications.idl",
"//third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.idl",
"//third_party/blink/renderer/modules/notifications/timestamp_trigger.idl",
- "//third_party/blink/renderer/modules/on_device_translation/language_translator.idl",
- "//third_party/blink/renderer/modules/on_device_translation/translation_language_options.idl",
- "//third_party/blink/renderer/modules/on_device_translation/translation.idl",
- "//third_party/blink/renderer/modules/on_device_translation/window_or_worker_global_scope_translation.idl",
"//third_party/blink/renderer/modules/payments/abort_payment_event.idl",
"//third_party/blink/renderer/modules/payments/address_errors.idl",
"//third_party/blink/renderer/modules/payments/address_init.idl",
--- src/third_party/blink/renderer/bindings/generated_in_modules.gni 2025-04-16 14:36:32.335223804 +0200
+++ src/third_party/blink/renderer/bindings/generated_in_modules.gni 2025-04-18 15:55:02.121445718 +0200
@@ -148,10 +148,6 @@ generated_dictionary_sources_in_modules
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_model_initial_prompt.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_model_prompt_options.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_model_prompt_options.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_create_options.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_create_options.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_detect_options.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_detect_options.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_rewrite_options.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_rewrite_options.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_create_core_options.cc",
@@ -728,8 +724,6 @@ generated_dictionary_sources_in_modules
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_key_system_track_configuration.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_landmark.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_landmark.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detection_result.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_detection_result.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_lock_info.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_lock_info.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_lock_manager_snapshot.cc",
@@ -922,8 +916,6 @@ generated_dictionary_sources_in_modules
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ml_triangular_options.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ml_where_support_limits.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ml_where_support_limits.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation_language_options.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation_language_options.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_multi_cache_query_options.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_multi_cache_query_options.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_navigation_preload_state.cc",
@@ -1552,8 +1544,6 @@ generated_enumeration_sources_in_modules
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gamepad_haptics_result.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gamepad_mapping_type.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gamepad_mapping_type.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation_availability.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation_availability.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_address_mode.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_address_mode.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_auto_layout_mode.cc",
@@ -1956,12 +1946,6 @@ generated_interface_sources_in_modules =
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_model_factory.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_create_monitor.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_create_monitor.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_capabilities.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_capabilities.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_factory.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector_factory.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_language_detector.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_factory.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter_factory.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_rewriter.cc",
@@ -1972,8 +1956,6 @@ generated_interface_sources_in_modules =
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_summarizer_factory.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_summarizer.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_summarizer.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator_capabilities.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator_capabilities.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator_factory.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator_factory.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ai_translator.cc",
@@ -2466,8 +2448,6 @@ generated_interface_sources_in_modules =
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_keyboard_layout_map.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_khr_parallel_shader_compile.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_khr_parallel_shader_compile.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_translator.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_language_translator.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_launch_params.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_launch_params.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_launch_queue.cc",
@@ -2924,8 +2904,6 @@ generated_interface_sources_in_modules =
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_track_default.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_track_default_list.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_track_default_list.h",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation.cc",
- "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_translation.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_url.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_url.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_usb.cc",
--- src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl 2025-04-16 14:36:32.773113846 +0200
+++ src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl 2025-04-18 21:45:18.481187932 +0200
@@ -11,11 +11,6 @@ interface AITranslatorFactory {
]
Promise<AITranslator> create(AITranslatorCreateOptions options);
// TODO(crbug.com/390459310): Replace with availability.
- [
- CallWith=ScriptState,
- RaisesException
- ]
- Promise<AITranslatorCapabilities> capabilities();
};
dictionary AITranslatorCreateCoreOptions {
--- src/content/public/browser/content_browser_client.cc 2025-04-17 16:18:19.395831947 +0200
+++ src/content/public/browser/content_browser_client.cc 2025-04-18 22:48:04.297289260 +0200
@@ -1882,15 +1882,6 @@ GetContentLanguageDetectionDriver() {
}
} // namespace
-void ContentBrowserClient::BindLanguageDetectionDriver(
- content::BrowserContext* browser_context,
- base::SupportsUserData* context_user_data,
- mojo::PendingReceiver<
- language_detection::mojom::ContentLanguageDetectionDriver> receiver) {
- if (base::FeatureList::IsEnabled(blink::features::kLanguageDetectionAPI)) {
- GetContentLanguageDetectionDriver().AddReceiver(std::move(receiver));
- }
-}
#if !BUILDFLAG(IS_ANDROID)
void ContentBrowserClient::QueryInstalledWebAppsByManifestId(
--- src/content/browser/browser_interface_binders.cc 2025-04-16 14:36:28.520070884 +0200
+++ src/content/browser/browser_interface_binders.cc 2025-04-18 23:10:18.079235856 +0200
@@ -1156,19 +1164,6 @@ void PopulateFrameBinders(RenderFrameHos
base::Unretained(host)));
}
- if (base::FeatureList::IsEnabled(blink::features::kLanguageDetectionAPI)) {
- map->Add<language_detection::mojom::ContentLanguageDetectionDriver>(
- base::BindRepeating(
- [](RenderFrameHostImpl* host,
- mojo::PendingReceiver<
- language_detection::mojom::ContentLanguageDetectionDriver>
- receiver) {
- GetContentClient()->browser()->BindLanguageDetectionDriver(
- host->GetBrowserContext(), &host->document_associated_data(),
- std::move(receiver));
- },
- base::Unretained(host)));
- }
}
void PopulateBinderMapWithContext(
@@ -1446,19 +1443,6 @@ void PopulateDedicatedWorkerBinders(Dedi
},
base::Unretained(host)));
}
- if (base::FeatureList::IsEnabled(blink::features::kLanguageDetectionAPI)) {
- map->Add<language_detection::mojom::ContentLanguageDetectionDriver>(
- base::BindRepeating(
- [](DedicatedWorkerHost* host,
- mojo::PendingReceiver<
- language_detection::mojom::ContentLanguageDetectionDriver>
- receiver) {
- GetContentClient()->browser()->BindLanguageDetectionDriver(
- host->GetProcessHost()->GetBrowserContext(), host,
- std::move(receiver));
- },
- base::Unretained(host)));
- }
}
void PopulateBinderMapWithContext(
@@ -1549,19 +1533,6 @@ void PopulateSharedWorkerBinders(SharedW
},
base::Unretained(host)));
}
- if (base::FeatureList::IsEnabled(blink::features::kLanguageDetectionAPI)) {
- map->Add<language_detection::mojom::ContentLanguageDetectionDriver>(
- base::BindRepeating(
- [](SharedWorkerHost* host,
- mojo::PendingReceiver<
- language_detection::mojom::ContentLanguageDetectionDriver>
- receiver) {
- GetContentClient()->browser()->BindLanguageDetectionDriver(
- host->GetProcessHost()->GetBrowserContext(), host,
- std::move(receiver));
- },
- base::Unretained(host)));
- }
// RenderProcessHost binders
map->Add<media::mojom::VideoDecodePerfHistory>(BindWorkerReceiver(
@@ -1704,22 +1675,6 @@ void PopulateServiceWorkerBinders(Servic
},
base::Unretained(host)));
}
- if (base::FeatureList::IsEnabled(blink::features::kLanguageDetectionAPI)) {
- map->Add<language_detection::mojom::ContentLanguageDetectionDriver>(
- base::BindRepeating(
- [](ServiceWorkerHost* host,
- mojo::PendingReceiver<
- language_detection::mojom::ContentLanguageDetectionDriver>
- receiver) {
- if (auto* process_host = static_cast<RenderProcessHostImpl*>(
- RenderProcessHost::FromID(host->worker_process_id()))) {
- GetContentClient()->browser()->BindLanguageDetectionDriver(
- process_host->GetBrowserContext(), host,
- std::move(receiver));
- }
- },
- base::Unretained(host)));
- }
// RenderProcessHost binders
map->Add<media::mojom::VideoDecodePerfHistory>(BindServiceWorkerReceiver(
--- src/content/public/browser/content_browser_client.h 2025-04-16 14:45:28.636752215 +0200
+++ src/content/public/browser/content_browser_client.h 2025-04-18 23:30:15.399851141 +0200
@@ -3144,11 +3144,6 @@ class CONTENT_EXPORT ContentBrowserClien
// Binds to a singleton new instance of
// `language_detection::ContentLanguageDetectionDriver` which receives the
// model from a local file specified by a flag param..
- virtual void BindLanguageDetectionDriver(
- BrowserContext* browser_context,
- base::SupportsUserData* context_user_data,
- mojo::PendingReceiver<
- language_detection::mojom::ContentLanguageDetectionDriver> receiver);
#if !BUILDFLAG(IS_ANDROID)
// Given the last committed URL of the RenderFrameHost, |frame_url|, and the

View File

@@ -45,17 +45,17 @@ Remove this unused component which brings a huge dependency on //third_party/daw
#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && BUILDFLAG(IS_CHROMEOS)
services.Add(RunShapeDetectionService);
--- src/content/utility/utility_main.cc.orig 2024-12-08 18:34:58.184673416 +0100
+++ src/content/utility/utility_main.cc 2024-12-18 12:43:43.314689968 +0100
--- src/content/utility/utility_main.cc.orig 2025-04-11 12:05:20.386081545 +0200
+++ src/content/utility/utility_main.cc 2025-04-11 19:56:46.620452510 +0200
@@ -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/screen_ai/buildflags/buildflags.h"
#include "services/tracing/public/cpp/trace_startup.h"
#include "services/video_effects/public/cpp/buildflags.h"
@@ -238,9 +237,6 @@ int UtilityMain(MainFunctionParams param
@@ -243,9 +242,6 @@ int UtilityMain(MainFunctionParams param
}
}
@@ -65,7 +65,7 @@ Remove this unused component which brings a huge dependency on //third_party/daw
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
// Thread type delegate of the process should be registered before first
@@ -275,11 +271,6 @@ int UtilityMain(MainFunctionParams param
@@ -278,11 +274,6 @@ int UtilityMain(MainFunctionParams param
case sandbox::mojom::Sandbox::kAudio:
pre_sandbox_hook = base::BindOnce(&audio::AudioPreSandboxHook);
break;
@@ -77,7 +77,7 @@ Remove this unused component which brings a huge dependency on //third_party/daw
case sandbox::mojom::Sandbox::kSpeechRecognition:
pre_sandbox_hook =
base::BindOnce(&speech::SpeechRecognitionPreSandboxHook);
@@ -440,9 +431,6 @@ int UtilityMain(MainFunctionParams param
@@ -454,9 +445,6 @@ int UtilityMain(MainFunctionParams param
run_loop.Run();

View File

@@ -1,22 +0,0 @@
--- src/third_party/blink/renderer/platform/BUILD.gn.orig 2025-01-02 22:23:59.424885429 +0100
+++ src/third_party/blink/renderer/platform/BUILD.gn 2025-01-03 19:03:30.286845650 +0100
@@ -1243,8 +1243,6 @@ component("platform") {
"keyboard_codes.h",
"language.cc",
"language.h",
- "language_detection/detect.cc",
- "language_detection/detect.h",
"link_hash.cc",
"link_hash.h",
"media/web_audio_source_provider_client.h",
@@ -1754,10 +1752,8 @@ component("platform") {
"//cc",
"//cc/ipc",
"//cc/mojo_embedder",
- "//components/language_detection/core:language_detection",
"//components/paint_preview/common",
"//components/search_engines:search_engine_utils",
- "//components/translate/core/language_detection:language_detection",
"//components/viz/client",
"//components/viz/common",
"//components/webrtc:net_address_utils",

View File

@@ -1,48 +1,3 @@
From 54ec71011a6ebb873590802a70b2bc07578ba201 Mon Sep 17 00:00:00 2001
From: Szabolcs David <davidsz@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.jensen@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,
bool enable_updated_grease_by_policy = true;
// TODO(crbug.com/40838057): Remove this after M126 which deprecates the
// policy.
+#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") {
@@ -91,19 +46,19 @@ cgit v1.2.3
"//components/prefs",
"//components/version_info",
"//content/public/browser",
--- src/components/permissions/BUILD.gn.old
+++ src/components/permissions/BUILD.gn
@@ -109,10 +109,7 @@ source_set("permissions") {
--- src/components/permissions/BUILD.gn.orig 2025-04-11 12:05:19.206024144 +0200
+++ src/components/permissions/BUILD.gn 2025-04-11 20:04:52.832323166 +0200
@@ -119,10 +119,7 @@ source_set("permissions") {
]
deps = [
"//base",
"//build:chromeos_buildflags",
- "//components/back_forward_cache",
- "//components/content_settings/browser",
"//components/content_settings/core/browser",
- "//components/content_settings/core/browser:cookie_settings",
"//components/favicon/core:core",
"//components/guest_view/buildflags",
"//components/keyed_service/content",
"//components/permissions/prediction_service",
--- src/components/proxy_config/BUILD.gn.old
+++ src/components/proxy_config/BUILD.gn
@@ -23,9 +23,6 @@ component("proxy_config") {
@@ -191,20 +146,24 @@ cgit v1.2.3
"//device/vr/buildflags",
]
}
--- src/components/search_engines/BUILD.gn.orig 2024-12-08 18:34:56.928006713 +0100
+++ src/components/search_engines/BUILD.gn 2024-12-18 12:48:04.888029763 +0100
@@ -16,45 +16,23 @@ static_library("search_engines") {
"default_search_manager.cc",
"default_search_manager.h",
"eea_countries_ids.h",
--- src/components/search_engines/BUILD.gn.orig 2025-04-11 12:05:19.397475381 +0200
+++ src/components/search_engines/BUILD.gn 2025-04-11 20:05:37.960311107 +0200
@@ -12,49 +12,21 @@ if (is_android) {
static_library("search_engines") {
sources = [
"choice_made_location.h",
- "default_search_manager.cc",
- "default_search_manager.h",
- "enterprise/default_search_policy_handler.cc",
- "enterprise/default_search_policy_handler.h",
"enterprise/enterprise_site_search_manager.cc",
"enterprise/enterprise_site_search_manager.h",
"enterprise/enterprise_search_manager.cc",
"enterprise/enterprise_search_manager.h",
- "keyword_table.cc",
- "keyword_table.h",
"keyword_web_data_service.cc",
"keyword_web_data_service.h",
- "reconciling_template_url_data_holder.cc",
- "reconciling_template_url_data_holder.h",
"search_engine_choice/search_engine_choice_metrics_service_accessor.h",
- "search_engine_choice/search_engine_choice_service.cc",
- "search_engine_choice/search_engine_choice_service.h",
@@ -219,8 +178,8 @@ cgit v1.2.3
- "template_url.h",
"template_url_data.cc",
"template_url_data.h",
"template_url_data_util.cc",
"template_url_data_util.h",
- "template_url_data_util.cc",
- "template_url_data_util.h",
- "template_url_fetcher.cc",
- "template_url_fetcher.h",
"template_url_id.h",
@@ -239,15 +198,15 @@ cgit v1.2.3
]
public_deps = [
@@ -69,7 +47,6 @@ static_library("search_engines") {
@@ -68,7 +46,6 @@ static_library("search_engines") {
"//components/sync",
"//components/webdata/common",
"//third_party/metrics_proto",
- "//third_party/omnibox_proto",
"//third_party/search_engines_data:prepopulated_engines",
]
deps = [
@@ -77,15 +54,9 @@ static_library("search_engines") {
@@ -77,16 +47,10 @@ static_library("search_engines") {
"//components/country_codes",
"//components/crash/core/common:crash_key",
"//components/database_utils",
@@ -259,11 +218,12 @@ cgit v1.2.3
- "//components/policy:generated",
- "//components/policy/core/browser",
"//components/pref_registry",
"//components/regional_capabilities",
- "//components/search_provider_logos:switches",
"//components/signin/public/base",
"//components/strings",
"//components/url_formatter",
@@ -97,7 +68,6 @@ static_library("search_engines") {
@@ -98,7 +62,6 @@ static_library("search_engines") {
"//services/network/public/mojom",
"//sql",
"//third_party/metrics_proto",
@@ -271,7 +231,7 @@ cgit v1.2.3
"//ui/base",
"//ui/gfx",
"//ui/gfx/geometry",
@@ -123,7 +93,7 @@ static_library("search_engines") {
@@ -124,7 +87,7 @@ static_library("search_engines") {
]
}
@@ -280,15 +240,15 @@ cgit v1.2.3
sources += [ "search_engine_choice/generated_marketing_snippets.cc" ]
deps += [
":generate_search_engine_icons",
@@ -132,7 +102,7 @@ static_library("search_engines") {
@@ -133,7 +96,7 @@ static_library("search_engines") {
]
}
- if (is_linux || is_win || is_mac || is_chromeos) {
+ if (false) {
sources += [
"enterprise/site_search_policy_handler.cc",
"enterprise/site_search_policy_handler.h",
"enterprise/search_aggregator_policy_handler.cc",
"enterprise/search_aggregator_policy_handler.h",
--- src/components/search/BUILD.gn.old
+++ src/components/search/BUILD.gn
@@ -6,10 +6,6 @@ static_library("search") {
@@ -302,9 +262,9 @@ cgit v1.2.3
]
deps = [
--- src/extensions/common/BUILD.gn.orig
+++ src/extensions/common/BUILD.gn
@@ -301,8 +301,6 @@ static_library("common") {
--- src/extensions/common/BUILD.gn.orig 2025-04-11 12:05:20.590871749 +0200
+++ src/extensions/common/BUILD.gn 2025-04-11 20:05:59.704305366 +0200
@@ -313,8 +313,6 @@ static_library("common") {
"extension_set.cc",
"extension_set.h",
"extension_updater_uma.h",
@@ -313,10 +273,10 @@ cgit v1.2.3
"extension_utility_types.h",
"extensions_client.cc",
"extensions_client.h",
@@ -498,8 +496,6 @@ static_library("common") {
"//components/crash/core/common",
@@ -524,8 +522,6 @@ static_library("common") {
"//components/crx_file",
"//components/nacl/common:buildflags",
"//components/pdf/common:util",
- "//components/safe_browsing/core/common",
- "//components/safe_browsing/core/common/hashprefix_realtime:hash_realtime_utils",
"//components/url_formatter",

View File

@@ -1,26 +1,26 @@
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") {
--- src/components/BUILD.gn.orig 2025-04-11 12:05:18.743943100 +0200
+++ src/components/BUILD.gn 2025-04-11 19:52:11.508526413 +0200
@@ -297,7 +297,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/browser/BUILD.gn.orig 2024-12-08 18:44:32.671357320 +0100
+++ src/chrome/browser/BUILD.gn 2024-12-18 12:38:43.758015814 +0100
@@ -1798,7 +1798,6 @@ static_library("browser") {
"//components/regional_capabilities:unit_tests",
--- src/chrome/browser/BUILD.gn.orig 2025-04-11 12:13:12.927314100 +0200
+++ src/chrome/browser/BUILD.gn 2025-04-11 19:52:48.976512203 +0200
@@ -1777,7 +1777,6 @@ static_library("browser") {
"//chrome/browser/profiling_host",
# TODO(crbug.com/40228447): break this dep when favicon is in its own target
- "//chrome/browser/share",
"//chrome/browser/ui",
# TODO(358041220): There is a circular_dependency of `cookie_controls:impl` module
@@ -1950,7 +1949,6 @@ static_library("browser") {
# with "//chrome/browser" due to the inclusion of //c/b/policy/profile_policy_connector.h
@@ -1935,7 +1934,6 @@ static_library("browser") {
"//chrome/browser/search_engine_choice",
"//chrome/browser/search_engine_choice:impl",
"//chrome/browser/search_engines",
@@ -28,7 +28,7 @@ Remove this dead code which brings a dependency on rustc
"//chrome/browser/sharing:buildflags",
"//chrome/browser/signin",
"//chrome/browser/signin:identity_manager_provider",
@@ -8566,7 +8564,6 @@ static_library("browser_generated_files"
@@ -8426,7 +8424,6 @@ static_library("browser_generated_files"
"//chrome/browser/new_tab_page/modules/v2/calendar:mojo_bindings",
"//chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption:mojo_bindings",
"//chrome/browser/profile_resetter:profile_reset_report_proto",
@@ -36,7 +36,7 @@ Remove this dead code which brings a dependency on rustc
"//chrome/browser/support_tool:support_tool_proto",
"//chrome/browser/sync_file_system/drive_backend:sync_file_system_drive_proto",
"//chrome/browser/ui:webui_name_variants",
@@ -9024,7 +9021,6 @@ static_library("test_support") {
@@ -8877,7 +8874,6 @@ static_library("test_support") {
"//chrome/browser/policy/messaging_layer/proto:crd_event_proto",
"//chrome/browser/search_engine_choice",
"//chrome/browser/search_engines",
@@ -62,17 +62,17 @@ Remove this dead code which brings a dependency on rustc
"//components/query_parser",
"//components/reading_list/core",
"//components/reading_list/features:flags",
--- src/chrome/test/BUILD.gn.orig 2024-12-08 18:44:32.671357320 +0100
+++ src/chrome/test/BUILD.gn 2024-12-18 12:39:55.361350918 +0100
@@ -2013,7 +2013,6 @@ if (!is_android) {
--- src/chrome/test/BUILD.gn.orig 2025-04-11 12:13:12.932314099 +0200
+++ src/chrome/test/BUILD.gn 2025-04-11 19:53:28.092504094 +0200
@@ -2163,7 +2163,6 @@ if (!is_android) {
"//chrome/browser/web_applications:prevent_close_test_support",
"//chrome/browser/web_applications:web_applications_test_support",
"//chrome/browser/webaudio:browser_tests",
- "//chrome/browser/webauthn:test_support",
"//chrome/common:version_header",
"//chrome/common/companion/visual_query:flags",
"//chrome/common/privacy_budget:test_support",
@@ -2186,7 +2185,6 @@ if (!is_android) {
"//chrome/renderer",
@@ -2337,7 +2336,6 @@ if (!is_android) {
"//components/privacy_sandbox/privacy_sandbox_attestations:test_support",
"//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto",
"//components/proxy_config",
@@ -80,7 +80,7 @@ Remove this dead code which brings a dependency on rustc
"//components/reading_list/core",
"//components/reading_list/features:flags",
"//components/resources",
@@ -6855,7 +6853,6 @@ test("unit_tests") {
@@ -6648,7 +6646,6 @@ test("unit_tests") {
"//components/privacy_sandbox/privacy_sandbox_attestations:test_support",
"//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto",
"//components/proxy_config",
@@ -88,7 +88,7 @@ Remove this dead code which brings a dependency on rustc
"//components/query_parser",
"//components/reading_list/core",
"//components/reading_list/core:test_support",
@@ -7029,7 +7026,6 @@ test("unit_tests") {
@@ -6829,7 +6826,6 @@ test("unit_tests") {
"//third_party/metrics_proto",
"//third_party/microsoft_webauthn",
"//third_party/re2",
@@ -96,12 +96,12 @@ Remove this dead code which brings a dependency on rustc
"//third_party/webrtc_overrides:webrtc_component",
"//third_party/widevine/cdm:headers",
"//third_party/zlib/google:compression_utils",
@@ -8314,8 +8310,6 @@ test("unit_tests") {
"//chrome/browser/ui/zoom",
"//chrome/browser/ui/zoom:unit_tests",
@@ -8115,8 +8111,6 @@ test("unit_tests") {
"//chrome/browser/upgrade_detector:build_state_observer",
"//chrome/browser/user_annotations",
"//chrome/browser/web_applications:web_applications_test_support",
- "//chrome/browser/webauthn:test_support",
- "//chrome/browser/webauthn/proto",
"//chrome/common/accessibility:mojo_bindings",
"//chrome/common/read_anything:mojo_bindings",
"//chrome/services/speech:unit_tests",
"//components/app_constants",

View File

@@ -6,20 +6,20 @@ Inspired by:
* https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit?h=122-based&id=8a9d741f4c4cf8170d5c50a336d51fe5d1b16ce8
* https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit?h=122-based&id=6a11e9169f5889883bf63a3522d0c3f8f23552b0
--- src/components/search_engines/BUILD.gn.orig
+++ src/components/search_engines/BUILD.gn
@@ -66,7 +66,6 @@ static_library("search_engines") {
--- src/components/search_engines/BUILD.gn.orig 2025-04-11 12:05:19.397475381 +0200
+++ src/components/search_engines/BUILD.gn 2025-04-11 20:18:41.424101555 +0200
@@ -65,7 +65,6 @@ static_library("search_engines") {
"//components/google/core/common",
"//components/keyed_service/core",
"//components/prefs",
- "//components/sync",
"//components/webdata/common",
"//third_party/metrics_proto",
]
--- src/electron/BUILD.gn.orig
+++ src/electron/BUILD.gn
@@ -1204,6 +1204,8 @@ if (is_mac) {
"//electron/buildflags",
"//third_party/search_engines_data:prepopulated_engines",
--- src/electron/BUILD.gn.orig 2025-04-11 12:02:41.207130337 +0200
+++ src/electron/BUILD.gn 2025-04-11 20:18:41.424101555 +0200
@@ -1210,6 +1210,8 @@ if (is_mac) {
"//third_party/electron_node:libnode",
"//ui/strings",
]
+
@@ -178,12 +178,15 @@ Inspired by:
// True if the dictionary has been loaded. Otherwise false.
bool is_loaded_;
--- src/device/fido/BUILD.gn.orig 2024-12-08 18:34:58.231340083 +0100
+++ src/device/fido/BUILD.gn 2024-12-18 12:59:49.294713941 +0100
@@ -163,36 +163,6 @@ component("fido") {
--- src/device/fido/BUILD.gn.orig 2025-04-11 12:05:20.416153184 +0200
+++ src/device/fido/BUILD.gn 2025-04-11 20:19:44.976088243 +0200
@@ -159,25 +159,6 @@ component("fido") {
"device_operation.h",
"device_response_converter.cc",
"device_response_converter.h",
- "enclave/attestation.cc",
- "enclave/attestation.h",
- "enclave/attestation_report.h",
- "enclave/constants.cc",
- "enclave/constants.h",
- "enclave/enclave_authenticator.cc",
@@ -200,42 +203,28 @@ Inspired by:
- "enclave/transact.h",
- "enclave/types.cc",
- "enclave/types.h",
- "enclave/verify/amd.cc",
- "enclave/verify/amd.h",
- "enclave/verify/attestation_report.cc",
- "enclave/verify/attestation_report.h",
- "enclave/verify/claim.cc",
- "enclave/verify/claim.h",
- "enclave/verify/endorsement.cc",
- "enclave/verify/endorsement.h",
- "enclave/verify/rekor.cc",
- "enclave/verify/rekor.h",
- "enclave/verify/utils.cc",
- "enclave/verify/utils.h",
- "enclave/verify/verifier.cc",
- "enclave/verify/verifier.h",
"fido_authenticator.cc",
"fido_authenticator.h",
"fido_device.cc",
@@ -257,7 +227,6 @@ component("fido") {
@@ -242,7 +223,6 @@ component("fido") {
]
deps += [
- "//components/sync/protocol:protocol",
"//device/fido/enclave/verify/proto:proto",
"//device/fido/enclave/proto:proto",
"//services/device/public/cpp/hid",
"//services/device/public/cpp/usb",
--- src/device/fido/fido_discovery_factory.cc.orig 2024-12-08 18:34:58.241340085 +0100
+++ src/device/fido/fido_discovery_factory.cc 2024-12-18 13:01:00.958049095 +0100
@@ -13,7 +13,6 @@
#include "device/fido/aoa/android_accessory_discovery.h"
--- src/device/fido/fido_discovery_factory.cc.orig 2025-04-11 12:05:20.421153186 +0200
+++ src/device/fido/fido_discovery_factory.cc 2025-04-11 20:18:43.280101088 +0200
@@ -12,7 +12,6 @@
#include "device/bluetooth/bluetooth_adapter_factory.h"
#include "device/fido/cable/fido_cable_discovery.h"
#include "device/fido/cable/v2_discovery.h"
-#include "device/fido/enclave/enclave_discovery.h"
#include "device/fido/features.h"
#include "device/fido/fido_discovery_base.h"
#include "device/fido/hid/fido_hid_discovery.h"
@@ -124,12 +123,7 @@ std::vector<std::unique_ptr<FidoDiscover
@@ -128,12 +127,7 @@ std::vector<std::unique_ptr<FidoDiscover
std::optional<std::unique_ptr<FidoDiscoveryBase>>
FidoDiscoveryFactory::MaybeCreateEnclaveDiscovery() {
@@ -268,3 +257,15 @@ Inspired by:
"//components/variations",
"//components/variations/field_trial_config",
"//components/variations/proto",
--- src/content/public/browser/BUILD.gn.orig 2025-04-11 12:05:20.173348334 +0200
+++ src/content/public/browser/BUILD.gn 2025-04-12 14:17:07.499743022 +0200
@@ -584,9 +584,7 @@ source_set("browser_sources") {
deps = [
"//cc",
"//components/input",
- "//components/language_detection/content/browser",
"//components/language_detection/content/common",
- "//components/language_detection/core/browser:language_detection_model_service",
"//components/services/storage/public/cpp",
"//components/variations:variations",
"//components/viz/host",

View File

@@ -0,0 +1,11 @@
--- src/third_party/blink/renderer/platform/loader/fetch/resource.h.orig 2025-04-16 14:36:33.086070015 +0200
+++ src/third_party/blink/renderer/platform/loader/fetch/resource.h 2025-04-16 21:57:27.672717364 +0200
@@ -363,7 +363,7 @@ class PLATFORM_EXPORT Resource : public
// attributes.
bool ForceIntegrityChecks() const;
- const IntegrityReport& IntegrityReport() const { return integrity_report_; }
+ const blink::IntegrityReport& IntegrityReport() const { return integrity_report_; }
bool MustRefetchDueToIntegrityMetadata(const FetchParameters&) const;
bool IsAlive() const { return is_alive_; }

View File

@@ -0,0 +1,11 @@
--- src/third_party/blink/renderer/platform/loader/fetch/resource_response.h.orig 2025-04-16 14:36:33.089070014 +0200
+++ src/third_party/blink/renderer/platform/loader/fetch/resource_response.h 2025-04-16 21:43:33.972794371 +0200
@@ -174,7 +174,7 @@ class PLATFORM_EXPORT ResourceResponse f
std::optional<base::Time> LastModified(UseCounter&) const;
// Will always return values >= 0.
base::TimeDelta CacheControlStaleWhileRevalidate() const;
- std::optional<UnencodedDigest> UnencodedDigest() const;
+ std::optional<blink::UnencodedDigest> UnencodedDigest() const;
unsigned ConnectionID() const;
void SetConnectionID(unsigned);

View File

@@ -0,0 +1,23 @@
--- src/v8/src/strings/string-hasher.cc.orig 2025-04-20 12:05:55.016195134 +0200
+++ src/v8/src/strings/string-hasher.cc 2025-04-20 12:10:16.788185381 +0200
@@ -27,7 +27,7 @@ struct ConvertTo8BitHashReader {
__m128i x = _mm_loadu_si128(reinterpret_cast<const __m128i*>(p));
return _mm_cvtsi128_si64(_mm_packus_epi16(x, x));
#elif defined(__ARM_NEON__)
- int16x8_t x;
+ uint16x8_t x;
memcpy(&x, p, sizeof(x));
return vget_lane_u64(vreinterpret_u64_u8(vmovn_u16(x)), 0);
#else
@@ -48,9 +48,9 @@ struct ConvertTo8BitHashReader {
__m128i x = _mm_loadu_si64(reinterpret_cast<const __m128i*>(p));
return _mm_cvtsi128_si64(_mm_packus_epi16(x, x));
#elif defined(__ARM_NEON__)
- int8x8_t x;
+ uint16x4_t x;
memcpy(&x, p, sizeof(x));
- int16x8_t x_wide = vcombine_u64(x, x);
+ uint16x8_t x_wide = vcombine_u16(x, x);
return vget_lane_u32(vreinterpret_u32_u8(vmovn_u16(x_wide)), 0);
#else
return (uint64_t{p[0]}) | (uint64_t{p[1]} << 8) | (uint64_t{p[2]} << 16) |

View File

@@ -0,0 +1,20 @@
--- src/third_party/blink/renderer/platform/fonts/string_truncator.cc.orig 2025-04-16 14:36:33.038422986 +0200
+++ src/third_party/blink/renderer/platform/fonts/string_truncator.cc 2025-04-16 22:05:13.224674254 +0200
@@ -168,7 +168,7 @@ static String TruncateString(const Strin
DCHECK_LT(keep_count, keep_count_for_smallest_known_to_not_fit);
DCHECK_GT(keep_count, keep_count_for_largest_known_to_fit);
- truncated_string = truncate_to_buffer(string, keep_count, string_buffer);
+ truncated_string = truncate_to_buffer(string, keep_count, base::span(string_buffer));
width = StringWidth(font, truncated_string);
if (width <= max_width) {
@@ -185,7 +185,7 @@ static String TruncateString(const Strin
if (keep_count != keep_count_for_largest_known_to_fit) {
keep_count = keep_count_for_largest_known_to_fit;
- truncated_string = truncate_to_buffer(string, keep_count, string_buffer);
+ truncated_string = truncate_to_buffer(string, keep_count, base::span(string_buffer));
}
return String(truncated_string);

View File

@@ -41,10 +41,10 @@ In file included from ../../third_party/blink/renderer/platform/wtf/text/atomic_
31 | class CodePointIterator;
| ^~~~~~~~~~~~~~~~~
--- src/third_party/blink/renderer/platform/wtf/text/string_view.h.orig 2025-01-22 21:21:43.120141300 +0100
+++ src/third_party/blink/renderer/platform/wtf/text/string_view.h 2025-01-22 23:39:31.542552700 +0100
--- src/third_party/blink/renderer/platform/wtf/text/string_view.h.orig 2025-04-20 19:22:39.910671377 +0200
+++ src/third_party/blink/renderer/platform/wtf/text/string_view.h 2025-04-20 21:05:46.878482748 +0200
@@ -19,6 +19,7 @@
#include "third_party/abseil-cpp/absl/base/attributes.h"
#include "base/numerics/safe_conversions.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
#include "third_party/blink/renderer/platform/wtf/get_ptr.h"
+#include "third_party/blink/renderer/platform/wtf/text/code_point_iterator.h"
@@ -58,4 +58,4 @@ In file included from ../../third_party/blink/renderer/platform/wtf/text/atomic_
-class CodePointIterator;
class String;
enum UTF8ConversionMode {
enum class Utf8ConversionMode : uint8_t {

View File

@@ -0,0 +1,11 @@
--- src/third_party/blink/renderer/core/css/style_scope.cc 2025-04-16 14:36:32.429070140 +0200
+++ /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/nodejs-electron-35.1.5-build/src/third_party/blink/renderer/core/css/style_scope.cc 2025-04-17 16:02:10.183836430 +0200
@@ -32,7 +32,7 @@ StyleScope* StyleScope::CopyWithParent(c
const StyleScope* StyleScope::Renest(StyleRule* new_parent) const {
StyleRule* reparented_from =
- from_ ? To<StyleRule>(from_->Renest(new_parent)) : nullptr;
+ from_ ? blink::To<StyleRule>(from_->Renest(new_parent)) : nullptr;
if (from_ == reparented_from) {
return this;
}

View File

@@ -1,30 +1,19 @@
--- src/third_party/electron_node/BUILD.gn.orig 2024-11-12 22:51:23.369659000 +0100
+++ src/third_party/electron_node/BUILD.gn 2024-11-12 23:46:45.817651900 +0100
@@ -40,6 +40,7 @@ declare_args() {
node_release_urlbase = ""
# Allows downstream packagers (eg. Linux distributions) to build Electron against system shared libraries.
+ use_system_ada = false
use_system_cares = false
use_system_nghttp2 = false
use_system_llhttp = false
@@ -260,7 +261,6 @@ component("node_lib") {
deps = [
":node_js2c_exec",
"deps/googletest:gtest",
- "deps/ada",
"deps/base64",
"deps/simdutf",
"deps/uvwasi",
@@ -291,6 +291,11 @@ component("node_lib") {
"deps/postject"
]
libs = []
+ if (use_system_ada) {
+ libs += [ "ada" ]
+ } else {
+ deps += [ "deps/ada" ]
+ }
if (use_system_llhttp) {
libs += [ "llhttp" ]
} else {
--- src/third_party/electron_node/unofficial.gni.orig 2025-04-11 21:14:18.899221050 +0200
+++ src/third_party/electron_node/unofficial.gni 2025-04-11 21:14:28.715218444 +0200
@@ -143,7 +143,6 @@ template("node_gn_build") {
"deps/googletest:googletest_config",
]
public_deps = [
- "deps/ada",
"deps/uv",
"//electron:electron_js2c",
"deps/simdjson",
@@ -183,6 +182,8 @@ template("node_gn_build") {
configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
configs += [ "//build/config/gcc:symbol_visibility_default" ]
}
+ libs = [ "ada" ]
+ include_dirs = []
if (use_system_llhttp) {
libs += [ "llhttp" ]
} else {

View File

@@ -10,72 +10,42 @@ We don't need this huge test-only dependency in the tarball. Only one header is
+#include <gtest/gtest_prod.h>
#endif // TESTING_GTEST_INCLUDE_GTEST_GTEST_PROD_H_
--- a/third_party/electron_node/deps/googletest/BUILD.gn 2022-07-22 14:56:38.984761919 +0200
+++ b/third_party/electron_node/deps/googletest/BUILD.gn 2022-07-29 19:21:57.655767809 +0200
@@ -1,61 +1,11 @@
-config("gtest_config") {
- include_dirs = [ "include" ]
- defines = [ "UNIT_TEST" ]
-}
--- src/third_party/electron_node/deps/googletest/unofficial.gni.orig 2025-04-11 12:06:33.194184022 +0200
+++ src/third_party/electron_node/deps/googletest/unofficial.gni 2025-04-11 20:55:32.455520889 +0200
@@ -1,3 +1,5 @@
+import("//build/config/linux/pkg_config.gni")
+
# This file is used by GN for building, which is NOT the build system used for
# building official binaries.
# Please edit the gyp files if you are making changes to build system.
@@ -5,27 +7,14 @@
# The actual configurations are put inside a template in unofficial.gni to
# prevent accidental edits from contributors.
template("googletest_gn_build") {
- config("googletest_config") {
- include_dirs = [ "include" ]
+ pkg_config("googletest_config") {
+ packages = [ "gtest" ]
}
-static_library("gtest") {
- include_dirs = [
- "include",
- "." # src
- ]
+pkg_config("gtest_config") {
+ packages = [ "gtest" ]
+}
- gypi_values = exec_script("../../tools/gypi_to_gn.py",
- [ rebase_path("googletest.gyp") ],
- "scope",
- [ "googletest.gyp" ])
+source_set("gtest") {
public_configs = [ ":gtest_config" ]
-
- cflags_cc = [
- "-Wno-c++98-compat-extra-semi",
- "-Wno-unused-const-variable",
- "-Wno-unreachable-code-return",
- ]
-
- defines = [
- "GTEST_HAS_POSIX_RE=0",
- "GTEST_LANG_CXX11=1",
- ]
-
- sources = [
- "include/gtest/gtest_pred_impl.h",
- "include/gtest/gtest_prod.h",
- "include/gtest/gtest-death-test.h",
- "include/gtest/gtest-matchers.h",
- "include/gtest/gtest-message.h",
- "include/gtest/gtest-param-test.h",
- "include/gtest/gtest-printers.h",
- "include/gtest/gtest-spi.h",
- "include/gtest/gtest-test-part.h",
- "include/gtest/gtest-typed-test.h",
- "include/gtest/gtest.h",
- "include/gtest/internal/gtest-death-test-internal.h",
- "include/gtest/internal/gtest-filepath.h",
- "include/gtest/internal/gtest-internal.h",
- "include/gtest/internal/gtest-param-util.h",
- "include/gtest/internal/gtest-port-arch.h",
- "include/gtest/internal/gtest-port.h",
- "include/gtest/internal/gtest-string.h",
- "include/gtest/internal/gtest-type-util.h",
- "include/gtest/internal/custom/gtest-port.h",
- "include/gtest/internal/custom/gtest-printers.h",
- "include/gtest/internal/custom/gtest.h",
- "src/gtest-all.cc",
- "src/gtest-death-test.cc",
- "src/gtest-filepath.cc",
- "src/gtest-internal-inl.h",
- "src/gtest-matchers.cc",
- "src/gtest-port.cc",
- "src/gtest-printers.cc",
- "src/gtest-test-part.cc",
- "src/gtest-typed-test.cc",
- "src/gtest.cc",
- ]
}
source_set(target_name) {
forward_variables_from(invoker, "*")
- testonly = true
- include_dirs = [
- "include",
- ".",
- ]
- defines = [
- "GTEST_HAS_POSIX_RE=0",
- "GTEST_LANG_CXX11=1",
- ]
- sources = gypi_values.googletest_sources
+ public_configs = [ ":googletest_config" ]
}
static_library("gtest_main") {
source_set("gtest_main") {

View File

@@ -29,11 +29,11 @@ Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/crtc_controller.h
#include "ui/ozone/platform/drm/common/scoped_drm_types.h"
Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
===================================================================
--- chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
+++ chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
@@ -20,7 +20,7 @@
--- src/ui/ozone/platform/drm/gpu/hardware_display_controller.cc.orig 2025-04-11 12:05:30.840157601 +0200
+++ src/ui/ozone/platform/drm/gpu/hardware_display_controller.cc 2025-04-11 20:45:59.075673214 +0200
@@ -18,7 +18,7 @@
#include "base/logging.h"
#include "base/metrics/histogram_macros.h"
#include "base/ranges/algorithm.h"
#include "base/trace_event/typed_macros.h"
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
+#include <drm_fourcc.h>

View File

@@ -116,9 +116,9 @@ Unbundle assorted lexing/parsing/transpiling tools written in Python.
../../build/scripts/blinkbuild/__init__.py
../../build/scripts/blinkbuild/name_style_converter.py
validate_web_idl.py
--- a/mojo/public/tools/bindings/mojom.gni
+++ b/mojo/public/tools/bindings/mojom.gni
@@ -699,7 +699,7 @@
--- src/mojo/public/tools/bindings/mojom.gni.orig 2025-04-11 12:05:21.530272509 +0200
+++ src/mojo/public/tools/bindings/mojom.gni 2025-04-11 20:56:50.579500868 +0200
@@ -802,7 +802,7 @@ template("mojom") {
remote_worker = "large"
custom_processor = "mojom_parser"
script = mojom_parser_script
@@ -126,7 +126,7 @@ Unbundle assorted lexing/parsing/transpiling tools written in Python.
+ inputs = mojom_parser_sources + [ build_metadata_filename ]
sources = sources_list
public_deps = parser_deps
outputs = []
outputs = action_outputs
--- src/third_party/blink/renderer/build/scripts/scripts.gni.orig 2024-12-08 18:35:01.138006834 +0100
+++ src/third_party/blink/renderer/build/scripts/scripts.gni 2024-12-18 13:24:36.436191575 +0100
@@ -18,10 +18,6 @@ if (is_ios) {
@@ -164,3 +164,14 @@ Unbundle assorted lexing/parsing/transpiling tools written in Python.
"//third_party/jinja2/__init__.py",
"//third_party/jinja2/_identifier.py",
"//third_party/jinja2/async_utils.py",
--- src/third_party/blink/renderer/core/sanitizer/builtins_all_known.py.orig 2025-04-16 14:36:32.677312629 +0200
+++ src/third_party/blink/renderer/core/sanitizer/builtins_all_known.py 2025-04-16 21:52:51.840741724 +0200
@@ -13,7 +13,7 @@ namespace that Blink's C++ implementatio
import json
import optparse
import sys
-from pyjson5.src import json5
+import json5
def error(context, *infos):

View File

@@ -1,35 +1,56 @@
--- src/third_party/electron_node/deps/simdutf/BUILD.gn.old 2023-10-13 11:35:11.896370000 +0200
+++ src/third_party/electron_node/deps/simdutf/BUILD.gn 2023-10-17 19:29:35.882793400 +0200
@@ -1,15 +1,26 @@
+declare_args() {
+ use_system_simdutf = false
From 3fb3bab213348955edc18a051f9c3f86241309e8 Mon Sep 17 00:00:00 2001
From: LN Liberda <lauren@selfisekai.rocks>
Date: Thu, 13 Mar 2025 20:01:32 -0700
Subject: [PATCH] unbundle: add simdutf
Bug: none
Change-Id: Idae290112561e5658c614f5eae8895abfe996124
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6333513
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1432518}
---
build/linux/unbundle/replace_gn_files.py | 1 +
build/linux/unbundle/simdutf.gn | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+)
create mode 100644 build/linux/unbundle/simdutf.gn
diff --git a/build/linux/unbundle/replace_gn_files.py b/build/linux/unbundle/replace_gn_files.py
index 9ee6fda6547d90..f5db9d23c886b7 100755
--- a/build/linux/unbundle/replace_gn_files.py
+++ b/build/linux/unbundle/replace_gn_files.py
@@ -67,6 +67,7 @@
'openh264': 'third_party/openh264/BUILD.gn',
'opus': 'third_party/opus/BUILD.gn',
're2': 'third_party/re2/BUILD.gn',
+ 'simdutf': 'third_party/simdutf/BUILD.gn',
'snappy': 'third_party/snappy/BUILD.gn',
# Use system libSPIRV-Tools in Swiftshader.
# These two shims MUST be used together.
diff --git a/build/linux/unbundle/simdutf.gn b/build/linux/unbundle/simdutf.gn
new file mode 100644
index 00000000000000..67d86cb3b3e5f9
--- /dev/null
+++ b/build/linux/unbundle/simdutf.gn
@@ -0,0 +1,20 @@
+# Copyright 2025 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+
+shim_headers("header") {
+ root_path = "."
+ headers = [ "simdutf.h" ]
+}
+
config("simdutf_config") {
+ if(use_system_simdutf) {
+ libs = ["simdutf"]
+ } else {
include_dirs = [ "." ]
+ }
}
static_library("simdutf") {
+ if(!use_system_simdutf) {
include_dirs = [ "." ]
sources = [
"simdutf.cpp",
]
+ }
public_configs = [ ":simdutf_config" ]
+ if(!use_system_simdutf) {
cflags_cc = [
"-Wno-ambiguous-reversed-operator",
"-Wno-c++98-compat-extra-semi",
@@ -17,4 +28,5 @@ static_library("simdutf") {
"-Wno-unused-const-variable",
"-Wno-unused-function",
]
+ }
}
+pkg_config("system_simdutf") {
+ packages = [ "simdutf" ]
+}
+
+source_set("simdutf") {
+ public_configs = [ ":system_simdutf" ]
+ public_deps = [ ":header" ]
+}

50
system-sqlite.patch Normal file
View File

@@ -0,0 +1,50 @@
Unbundle Node's sqlite copy. Note that this is NOT the sqlite used by Chromium, which is a fork.
(Yes, there are two instances of sqlite in Electron)
--- src/third_party/electron_node/deps/sqlite/unofficial.gni 2025-04-16 14:39:35.699035282 +0200
+++ /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/nodejs-electron-35.1.5-build/src/third_party/electron_node/deps/sqlite/unofficial.gni 2025-04-18 15:46:13.417442111 +0200
@@ -1,3 +1,4 @@
+import("//build/config/linux/pkg_config.gni")
# This file is used by GN for building, which is NOT the build system used for
# building official binaries.
# Please edit the gyp files if you are making changes to build system.
@@ -5,8 +6,8 @@
# The actual configurations are put inside a template in unofficial.gni to
# prevent accidental edits from contributors.
template("sqlite_gn_build") {
- config("sqlite_config") {
- include_dirs = [ "." ]
+ pkg_config("sqlite_config") {
+ packages = ["sqlite3"]
defines = [
"SQLITE_ENABLE_MATH_FUNCTIONS",
"SQLITE_ENABLE_SESSION",
@@ -14,28 +15,9 @@ template("sqlite_gn_build") {
]
}
- gypi_values = exec_script("../../tools/gypi_to_gn.py",
- [ rebase_path("sqlite.gyp") ],
- "scope",
- [ "sqlite.gyp" ])
source_set(target_name) {
forward_variables_from(invoker, "*")
public_configs = [ ":sqlite_config" ]
- sources = gypi_values.sqlite_sources
- cflags_c = [
- "-Wno-implicit-fallthrough",
- "-Wno-unreachable-code-return",
- "-Wno-unreachable-code-break",
- "-Wno-unreachable-code",
- ]
- if (is_win) {
- cflags_c += [
- "-Wno-sign-compare",
- "-Wno-unused-but-set-variable",
- "-Wno-unused-function",
- "-Wno-unused-variable",
- ]
- }
}
}

View File

@@ -0,0 +1,11 @@
--- src/base/containers/to_vector.h.orig 2025-04-21 18:29:04.778306927 +0200
+++ src/base/containers/to_vector.h 2025-04-22 06:32:55.415046071 +0200
@@ -29,7 +29,7 @@ template <typename Range, typename Proj
std::indirectly_unary_invocable<Proj, std::ranges::iterator_t<Range>>
auto ToVector(Range&& range, Proj proj = {}) {
using ProjectedType =
- std::projected<std::ranges::iterator_t<Range>, Proj>::value_type;
+ std::indirectly_readable_traits<std::projected<std::ranges::iterator_t<Range>, Proj> >::value_type;
std::vector<ProjectedType> container;
container.reserve(std::ranges::size(range));
std::ranges::transform(std::forward<Range>(range),

View File

@@ -0,0 +1,32 @@
--- src/components/unexportable_keys/unexportable_key_service_impl.cc.orig 2025-04-20 19:22:29.934671387 +0200
+++ src/components/unexportable_keys/unexportable_key_service_impl.cc 2025-04-21 14:22:30.891412928 +0200
@@ -19,8 +19,6 @@
namespace unexportable_keys {
-namespace {
-
// Class holding either an `UnexportableKeyId` or a list of callbacks waiting
// for the key creation.
class MaybePendingUnexportableKeyId {
@@ -105,8 +103,6 @@ MaybePendingUnexportableKeyId::GetCallba
return absl::get<std::vector<CallbackType>>(key_id_or_pending_callbacks_);
}
-} // namespace
-
UnexportableKeyServiceImpl::UnexportableKeyServiceImpl(
UnexportableKeyTaskManager& task_manager)
: task_manager_(task_manager) {}
--- src/components/unexportable_keys/unexportable_key_service_impl.h.orig 2025-04-20 19:22:29.934671387 +0200
+++ src/components/unexportable_keys/unexportable_key_service_impl.h 2025-04-21 14:22:00.963413744 +0200
@@ -23,9 +23,7 @@
namespace unexportable_keys {
-namespace {
class MaybePendingUnexportableKeyId;
-}
class UnexportableKeyTaskManager;

View File

@@ -0,0 +1,138 @@
--- src/third_party/electron_node/node.gni.orig 2025-04-20 10:49:28.656330018 +0200
+++ src/third_party/electron_node/node.gni 2025-04-20 19:08:01.482693254 +0200
@@ -73,10 +73,12 @@ declare_args() {
node_use_amaro = true
# Allows downstream packagers (eg. Linux distributions) to build against system shared libraries.
+ use_system_ada = false
use_system_cares = false
use_system_nghttp2 = false
use_system_llhttp = false
use_system_histogram = false
+ use_system_simdjson = false
}
assert(!node_enable_inspector || node_use_openssl,
--- src/third_party/electron_node/unofficial.gni.orig 2025-04-20 10:49:28.656330018 +0200
+++ src/third_party/electron_node/unofficial.gni 2025-04-20 19:16:09.442680896 +0200
@@ -9,6 +9,35 @@ import("$node_v8_path/gni/v8.gni")
# The actual configurations are put inside a template in unofficial.gni to
# prevent accidental edits from contributors.
template("node_gn_build") {
+ if (is_linux) {
+ import("//build/config/linux/pkg_config.gni")
+ if (use_system_cares) {
+ pkg_config("system_cares") {
+ packages = [ "libcares" ]
+ }
+ }
+ if (use_system_histogram) {
+ pkg_config("system_histogram") {
+ packages = [ "hdr_histogram" ]
+ }
+ }
+ if (use_system_llhttp) {
+ pkg_config("system_llhttp") {
+ packages = [ "libllhttp" ]
+ }
+ }
+ if (use_system_nghttp2) {
+ pkg_config("system_nghttp2") {
+ packages = [ "libnghttp2" ]
+ }
+ }
+ if (use_system_simdjson) {
+ pkg_config("system_simdjson") {
+ packages = [ "simdjson" ]
+ }
+ }
+ }
+
config("node_features") {
defines = []
if (is_component_build) {
@@ -138,23 +167,19 @@ template("node_gn_build") {
source_set("libnode") {
configs += [ ":node_internal_config" ]
+ libs = []
public_configs = [
":node_external_config",
"deps/googletest:googletest_config",
]
public_deps = [
- "deps/ada",
"deps/uv",
"//electron:electron_js2c",
- "deps/simdjson",
"$node_v8_path",
]
deps = [
":run_node_js2c",
- "deps/cares",
- "deps/histogram",
"deps/nbytes",
- "deps/nghttp2",
"deps/postject",
"deps/sqlite",
"deps/uvwasi",
@@ -183,17 +208,36 @@ template("node_gn_build") {
configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
configs += [ "//build/config/gcc:symbol_visibility_default" ]
}
+ if (use_system_ada) {
+ libs += ["ada"]
+ } else {
+ public_deps += [ "deps/ada" ]
+ }
+ if (use_system_cares) {
+ configs += [ ":system_cares" ]
+ } else {
+ deps += [ "deps/cares" ]
+ }
if (use_system_llhttp) {
- libs += [ "llhttp" ]
+ configs += [ ":system_llhttp" ]
} else {
deps += [ "deps/llhttp" ]
}
if (use_system_histogram) {
- libs += [ "hdr_histogram" ]
- include_dirs += [ "/usr/include/hdr" ]
+ configs += [":system_histogram"]
} else {
deps += [ "deps/histogram" ]
}
+ if (use_system_nghttp2) {
+ configs += [":system_nghttp2"]
+ } else {
+ deps += [ "deps/nghttp2" ]
+ }
+ if (use_system_simdjson) {
+ public_configs += [":system_simdjson"]
+ } else {
+ public_deps += [ "deps/simdjson" ]
+ }
if (v8_enable_i18n_support) {
deps += [ "//third_party/icu" ]
}
@@ -222,19 +266,6 @@ template("node_gn_build") {
sources += node_inspector.node_inspector_sources +
node_inspector.node_inspector_generated_sources
}
- if (is_linux) {
- import("//build/config/linux/pkg_config.gni")
- if (use_system_cares) {
- pkg_config("cares") {
- packages = [ "libcares" ]
- }
- }
- if (use_system_nghttp2) {
- pkg_config("nghttp2") {
- packages = [ "libnghttp2" ]
- }
- }
- }
}
executable(target_name) {

View File

@@ -0,0 +1,818 @@
From 4d24761fae4b1de87a1ba7a507e98be157a64bf4 Mon Sep 17 00:00:00 2001
From: Alexey Pavlyutkin <alexey.pavlyutkin@syntacore.com>
Date: Thu, 13 Feb 2025 11:40:23 +0000
Subject: [PATCH] [riscv][leaptiering] Enable leaptiering support
Fix RISC-V build broken by unconditional enabling of leaptiering (see
6207491).
Change-Id: I72db70b09b98410ae83d40b3251495b8bcbda207
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6249680
Reviewed-by: Yahan Lu (LuYahan) <yahan@iscas.ac.cn>
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#98693}
---
src/builtins/riscv/builtins-riscv.cc | 27 +-
src/codegen/riscv/macro-assembler-riscv.cc | 321 +++++++++++-------
src/codegen/riscv/macro-assembler-riscv.h | 48 ++-
src/codegen/riscv/register-riscv.h | 3 +-
.../backend/riscv/code-generator-riscv.cc | 41 ++-
src/maglev/riscv/maglev-assembler-riscv.cc | 3 +
6 files changed, 286 insertions(+), 157 deletions(-)
diff --git a/src/builtins/riscv/builtins-riscv.cc b/src/builtins/riscv/builtins-riscv.cc
index 4d637bd281ee..54960a8cb0ef 100644
--- a/v8/src/builtins/riscv/builtins-riscv.cc
+++ b/v8/src/builtins/riscv/builtins-riscv.cc
@@ -996,6 +996,7 @@ void Builtins::Generate_BaselineOutOfLinePrologueDeopt(MacroAssembler* masm) {
}
void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
+ ASM_CODE_COMMENT(masm);
UseScratchRegisterScope temps(masm);
temps.Include({kScratchReg, kScratchReg2, s1});
auto descriptor =
@@ -1016,11 +1017,14 @@ void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
__ AssertFeedbackVector(feedback_vector, type);
}
+#ifndef V8_ENABLE_LEAPTIERING
// Check for an tiering state.
Label flags_need_processing;
Register flags = temps.Acquire();
__ LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing(
flags, feedback_vector, CodeKind::BASELINE, &flags_need_processing);
+#endif
+
{
UseScratchRegisterScope temps(masm);
ResetFeedbackVectorOsrUrgency(masm, feedback_vector, temps.Acquire());
@@ -1096,6 +1100,7 @@ void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
// TODO(v8:11429): Document this frame setup better.
__ Ret();
+#ifndef V8_ENABLE_LEAPTIERING
__ bind(&flags_need_processing);
{
ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
@@ -1104,6 +1109,7 @@ void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
__ OptimizeCodeOrTailCallOptimizedCodeSlot(flags, feedback_vector);
__ Trap();
}
+#endif
__ bind(&call_stack_guard);
{
@@ -1157,15 +1163,16 @@ void Builtins::Generate_InterpreterEntryTrampoline(
__ LoadFeedbackVector(feedback_vector, closure, a4, &push_stack_frame);
#ifndef V8_JITLESS
+#ifndef V8_ENABLE_LEAPTIERING
// If feedback vector is valid, check for optimized code and update invocation
// count.
-
// Check the tiering state.
Label flags_need_processing;
Register flags = a4;
__ LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing(
flags, feedback_vector, CodeKind::INTERPRETED_FUNCTION,
&flags_need_processing);
+#endif // V8_ENABLE_LEAPTIERING
ResetFeedbackVectorOsrUrgency(masm, feedback_vector, a4);
// Increment invocation count for the function.
@@ -1323,10 +1330,13 @@ void Builtins::Generate_InterpreterEntryTrampoline(
__ Branch(&after_stack_check_interrupt);
#ifndef V8_JITLESS
+#ifndef V8_ENABLE_LEAPTIERING
__ bind(&flags_need_processing);
__ OptimizeCodeOrTailCallOptimizedCodeSlot(flags, feedback_vector);
+#endif //! V8_ENABLE_LEAPTIERING
__ bind(&is_baseline);
{
+#ifndef V8_ENABLE_LEAPTIERING
// Load the feedback vector from the closure.
__ LoadTaggedField(
feedback_vector,
@@ -1347,7 +1357,6 @@ void Builtins::Generate_InterpreterEntryTrampoline(
__ LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing(
flags, feedback_vector, CodeKind::BASELINE, &flags_need_processing);
-#ifndef V8_ENABLE_LEAPTIERING
// TODO(olivf, 42204201): This fastcase is difficult to support with the
// sandbox as it requires getting write access to the dispatch table. See
// `JSFunction::UpdateCode`. We might want to remove it for all
@@ -1357,9 +1366,9 @@ void Builtins::Generate_InterpreterEntryTrampoline(
static_assert(kJavaScriptCallCodeStartRegister == a2, "ABI mismatch");
__ ReplaceClosureCodeWithOptimizedCode(a2, closure);
__ JumpCodeObject(a2, kJSEntrypointTag);
-#endif // V8_ENABLE_LEAPTIERING
-
__ bind(&install_baseline_code);
+#endif // !V8_ENABLE_LEAPTIERING
+
__ GenerateTailCallToReturnedCode(Runtime::kInstallBaselineCode);
}
#endif // !V8_JITLESS
@@ -2630,9 +2639,13 @@ void Builtins::Generate_CallFunction(MacroAssembler* masm,
// -- cp : the function context.
// -----------------------------------
+#ifdef V8_ENABLE_LEAPTIERING
+ __ InvokeFunctionCode(a1, no_reg, a0, InvokeType::kJump);
+#else
__ Lhu(a2,
FieldMemOperand(a2, SharedFunctionInfo::kFormalParameterCountOffset));
__ InvokeFunctionCode(a1, no_reg, a2, a0, InvokeType::kJump);
+#endif
}
namespace {
@@ -5084,9 +5097,13 @@ void Builtins::Generate_RestartFrameTrampoline(MacroAssembler* masm) {
// Pop return address and frame.
__ LeaveFrame(StackFrame::INTERPRETED);
+#ifdef V8_ENABLE_LEAPTIERING
+ __ InvokeFunction(a1, a0, InvokeType::kJump,
+ ArgumentAdaptionMode::kDontAdapt);
+#else
__ li(a2, Operand(kDontAdaptArgumentsSentinel));
-
__ InvokeFunction(a1, a2, a0, InvokeType::kJump);
+#endif
}
#undef __
diff --git a/src/codegen/riscv/macro-assembler-riscv.cc b/src/codegen/riscv/macro-assembler-riscv.cc
index aca1e993183f..ae86dddd6777 100644
--- a/v8/src/codegen/riscv/macro-assembler-riscv.cc
+++ b/v8/src/codegen/riscv/macro-assembler-riscv.cc
@@ -209,24 +209,7 @@ void MacroAssembler::GenerateTailCallToReturnedCode(
Jump(a2);
}
-Condition MacroAssembler::LoadFeedbackVectorFlagsAndCheckIfNeedsProcessing(
- Register flags, Register feedback_vector, Register result,
- CodeKind current_code_kind) {
- ASM_CODE_COMMENT(this);
- DCHECK(!AreAliased(flags, feedback_vector));
- DCHECK(CodeKindCanTierUp(current_code_kind));
-
- Lhu(flags, FieldMemOperand(feedback_vector, FeedbackVector::kFlagsOffset));
- uint32_t kFlagsMask = FeedbackVector::kFlagsTieringStateIsAnyRequested |
- FeedbackVector::kFlagsMaybeHasTurbofanCode |
- FeedbackVector::kFlagsLogNextExecution;
- if (current_code_kind != CodeKind::MAGLEV) {
- kFlagsMask |= FeedbackVector::kFlagsMaybeHasMaglevCode;
- }
- And(result, flags, Operand(kFlagsMask));
- return ne;
-}
-
+#ifndef V8_ENABLE_LEAPTIERING
// Read off the flags in the feedback vector and check if there
// is optimized code or a tiering state that needs to be processed.
void MacroAssembler::LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing(
@@ -248,22 +231,6 @@ void MacroAssembler::OptimizeCodeOrTailCallOptimizedCodeSlot(
Register flags, Register feedback_vector) {
ASM_CODE_COMMENT(this);
DCHECK(!AreAliased(flags, feedback_vector));
-#ifdef V8_ENABLE_LEAPTIERING
- // In the leaptiering case, we don't load optimized code from the feedback
- // vector so only need to call CompileOptimized or FunctionLogNextExecution
- // here. See also LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing above.
- Label needs_logging;
- {
- UseScratchRegisterScope temps(this);
- Register scratch = temps.Acquire();
- And(scratch, flags,
- Operand(FeedbackVector::kFlagsTieringStateIsAnyRequested));
- Branch(&needs_logging, eq, scratch, Operand(zero_reg));
- }
- GenerateTailCallToReturnedCode(Runtime::kCompileOptimized);
- bind(&needs_logging);
- GenerateTailCallToReturnedCode(Runtime::kFunctionLogNextExecution);
-#else
UseScratchRegisterScope temps(this);
temps.Include(t0, t1);
Label maybe_has_optimized_code, maybe_needs_logging;
@@ -296,8 +263,8 @@ void MacroAssembler::OptimizeCodeOrTailCallOptimizedCodeSlot(
FeedbackVector::kMaybeOptimizedCodeOffset));
TailCallOptimizedCodeSlot(this, optimized_code_entry, temps.Acquire(),
temps.Acquire());
-#endif // V8_ENABLE_LEAPTIERING
}
+#endif // V8_ENABLE_LEAPTIERING
void MacroAssembler::LoadIsolateField(const Register& rd, IsolateFieldId id) {
li(rd, ExternalReference::Create(id));
@@ -5630,7 +5597,7 @@ void MacroAssembler::StackOverflowCheck(Register num_args, Register scratch1,
void MacroAssembler::InvokePrologue(Register expected_parameter_count,
Register actual_parameter_count,
- Label* done, InvokeType type) {
+ InvokeType type) {
Label regular_invoke;
// a0: actual arguments count
@@ -5649,8 +5616,7 @@ void MacroAssembler::InvokePrologue(Register expected_parameter_count,
Label stack_overflow;
{
UseScratchRegisterScope temps(this);
- StackOverflowCheck(expected_parameter_count, temps.Acquire(),
- temps.Acquire(), &stack_overflow);
+ StackOverflowCheck(expected_parameter_count, t0, t1, &stack_overflow);
}
// Underapplication. Move the arguments already in the stack, including the
// receiver and the return address.
@@ -5694,90 +5660,150 @@ void MacroAssembler::InvokePrologue(Register expected_parameter_count,
bind(&regular_invoke);
}
-void MacroAssembler::CheckDebugHook(Register fun, Register new_target,
- Register expected_parameter_count,
- Register actual_parameter_count) {
- Label skip_hook;
- {
- UseScratchRegisterScope temps(this);
- Register scratch = temps.Acquire();
- li(scratch,
- ExternalReference::debug_hook_on_function_call_address(isolate()));
- Lb(scratch, MemOperand(scratch));
- Branch(&skip_hook, eq, scratch, Operand(zero_reg));
+void MacroAssembler::CallDebugOnFunctionCall(
+ Register fun, Register new_target,
+ Register expected_parameter_count_or_dispatch_handle,
+ Register actual_parameter_count) {
+ ASM_CODE_COMMENT(this);
+ DCHECK(!AreAliased(t0, fun, new_target,
+ expected_parameter_count_or_dispatch_handle,
+ actual_parameter_count));
+
+ // Load receiver to pass it later to DebugOnFunctionCall hook.
+ LoadReceiver(t0);
+ FrameScope frame(
+ this, has_frame() ? StackFrame::NO_FRAME_TYPE : StackFrame::INTERNAL);
+
+ SmiTag(expected_parameter_count_or_dispatch_handle);
+ SmiTag(actual_parameter_count);
+ Push(expected_parameter_count_or_dispatch_handle, actual_parameter_count);
+
+ if (new_target.is_valid()) {
+ Push(new_target);
+ }
+ Push(fun, fun, t0);
+ CallRuntime(Runtime::kDebugOnFunctionCall);
+ Pop(fun);
+ if (new_target.is_valid()) {
+ Pop(new_target);
}
- {
- // Load receiver to pass it later to DebugOnFunctionCall hook.
- UseScratchRegisterScope temps(this);
- Register receiver = temps.Acquire();
- LoadReceiver(receiver);
- FrameScope frame(
- this, has_frame() ? StackFrame::NO_FRAME_TYPE : StackFrame::INTERNAL);
- SmiTag(expected_parameter_count);
- Push(expected_parameter_count);
+ Pop(expected_parameter_count_or_dispatch_handle, actual_parameter_count);
+ SmiUntag(actual_parameter_count);
+ SmiUntag(expected_parameter_count_or_dispatch_handle);
+}
- SmiTag(actual_parameter_count);
- Push(actual_parameter_count);
+#ifdef V8_ENABLE_LEAPTIERING
+void MacroAssembler::InvokeFunction(
+ Register function, Register actual_parameter_count, InvokeType type,
+ ArgumentAdaptionMode argument_adaption_mode) {
+ ASM_CODE_COMMENT(this);
+ // You can't call a function without a valid frame.
+ DCHECK(type == InvokeType::kJump || has_frame());
- if (new_target.is_valid()) {
- Push(new_target);
- }
- Push(fun);
- Push(fun);
- Push(receiver);
- CallRuntime(Runtime::kDebugOnFunctionCall);
- Pop(fun);
- if (new_target.is_valid()) {
- Pop(new_target);
- }
+ // Contract with called JS functions requires that function is passed in a1.
+ // (See FullCodeGenerator::Generate().)
+ DCHECK_EQ(function, a1);
- Pop(actual_parameter_count);
- SmiUntag(actual_parameter_count);
+ // Set up the context.
+ LoadTaggedField(cp, FieldMemOperand(function, JSFunction::kContextOffset));
- Pop(expected_parameter_count);
- SmiUntag(expected_parameter_count);
- }
- bind(&skip_hook);
+ InvokeFunctionCode(function, no_reg, actual_parameter_count, type,
+ argument_adaption_mode);
}
-void MacroAssembler::InvokeFunctionCode(Register function, Register new_target,
- Register expected_parameter_count,
- Register actual_parameter_count,
- InvokeType type) {
+void MacroAssembler::InvokeFunctionWithNewTarget(
+ Register function, Register new_target, Register actual_parameter_count,
+ InvokeType type) {
+ ASM_CODE_COMMENT(this);
+ // You can't call a function without a valid frame.
+ DCHECK(type == InvokeType::kJump || has_frame());
+
+ // Contract with called JS functions requires that function is passed in a1.
+ // (See FullCodeGenerator::Generate().)
+ DCHECK_EQ(function, a1);
+
+ LoadTaggedField(cp, FieldMemOperand(function, JSFunction::kContextOffset));
+
+ InvokeFunctionCode(function, new_target, actual_parameter_count, type);
+}
+
+void MacroAssembler::InvokeFunctionCode(
+ Register function, Register new_target, Register actual_parameter_count,
+ InvokeType type, ArgumentAdaptionMode argument_adaption_mode) {
+ ASM_CODE_COMMENT(this);
// You can't call a function without a valid frame.
DCHECK_IMPLIES(type == InvokeType::kCall, has_frame());
DCHECK_EQ(function, a1);
DCHECK_IMPLIES(new_target.is_valid(), new_target == a3);
+ Register dispatch_handle = kJavaScriptCallDispatchHandleRegister;
+ Lw(dispatch_handle,
+ FieldMemOperand(function, JSFunction::kDispatchHandleOffset));
+
// On function call, call into the debugger if necessary.
- CheckDebugHook(function, new_target, expected_parameter_count,
- actual_parameter_count);
+ Label debug_hook, continue_after_hook;
+ {
+ li(t0, ExternalReference::debug_hook_on_function_call_address(isolate()));
+ Lb(t0, MemOperand(t0, 0));
+ BranchShort(&debug_hook, ne, t0, Operand(zero_reg));
+ }
+ bind(&continue_after_hook);
// Clear the new.target register if not given.
if (!new_target.is_valid()) {
LoadRoot(a3, RootIndex::kUndefinedValue);
}
- Label done;
- InvokePrologue(expected_parameter_count, actual_parameter_count, &done, type);
+ Register scratch = s1;
+ if (argument_adaption_mode == ArgumentAdaptionMode::kAdapt) {
+ Register expected_parameter_count = a2;
+ LoadParameterCountFromJSDispatchTable(expected_parameter_count,
+ dispatch_handle, scratch);
+ InvokePrologue(expected_parameter_count, actual_parameter_count, type);
+ }
+
// We call indirectly through the code field in the function to
// allow recompilation to take effect without changing any of the
// call sites.
- constexpr int unused_argument_count = 0;
+ LoadEntrypointFromJSDispatchTable(kJavaScriptCallCodeStartRegister,
+ dispatch_handle, scratch);
switch (type) {
case InvokeType::kCall:
- CallJSFunction(function, unused_argument_count);
+ Call(kJavaScriptCallCodeStartRegister);
break;
case InvokeType::kJump:
- JumpJSFunction(function);
+ Jump(kJavaScriptCallCodeStartRegister);
break;
}
+ Label done;
+ Branch(&done);
+
+ // Deferred debug hook.
+ bind(&debug_hook);
+ CallDebugOnFunctionCall(function, new_target, dispatch_handle,
+ actual_parameter_count);
+ Branch(&continue_after_hook);
- // Continue here if InvokePrologue does handle the invocation due to
- // mismatched parameter counts.
bind(&done);
}
+#else // !V8_ENABLE_LEAPTIERING
+void MacroAssembler::InvokeFunction(Register function,
+ Register expected_parameter_count,
+ Register actual_parameter_count,
+ InvokeType type) {
+ // You can't call a function without a valid frame.
+ DCHECK_IMPLIES(type == InvokeType::kCall, has_frame());
+
+ // Contract with called JS functions requires that function is passed in a1.
+ DCHECK_EQ(function, a1);
+
+ // Get the function and setup the context.
+ LoadTaggedField(cp, FieldMemOperand(a1, JSFunction::kContextOffset));
+
+ InvokeFunctionCode(a1, no_reg, expected_parameter_count,
+ actual_parameter_count, type);
+}
void MacroAssembler::InvokeFunctionWithNewTarget(
Register function, Register new_target, Register actual_parameter_count,
@@ -5804,23 +5830,44 @@ void MacroAssembler::InvokeFunctionWithNewTarget(
actual_parameter_count, type);
}
-void MacroAssembler::InvokeFunction(Register function,
- Register expected_parameter_count,
- Register actual_parameter_count,
- InvokeType type) {
+void MacroAssembler::InvokeFunctionCode(Register function, Register new_target,
+ Register expected_parameter_count,
+ Register actual_parameter_count,
+ InvokeType type) {
// You can't call a function without a valid frame.
DCHECK_IMPLIES(type == InvokeType::kCall, has_frame());
-
- // Contract with called JS functions requires that function is passed in a1.
DCHECK_EQ(function, a1);
+ DCHECK_IMPLIES(new_target.is_valid(), new_target == a3);
- // Get the function and setup the context.
- LoadTaggedField(cp, FieldMemOperand(a1, JSFunction::kContextOffset));
+ // On function call, call into the debugger if necessary.
+ CheckDebugHook(function, new_target, expected_parameter_count,
+ actual_parameter_count);
- InvokeFunctionCode(a1, no_reg, expected_parameter_count,
- actual_parameter_count, type);
-}
+ // Clear the new.target register if not given.
+ if (!new_target.is_valid()) {
+ LoadRoot(a3, RootIndex::kUndefinedValue);
+ }
+
+ Label done;
+ InvokePrologue(expected_parameter_count, actual_parameter_count, &done, type);
+ // We call indirectly through the code field in the function to
+ // allow recompilation to take effect without changing any of the
+ // call sites.
+ constexpr int unused_argument_count = 0;
+ switch (type) {
+ case InvokeType::kCall:
+ CallJSFunction(function, unused_argument_count);
+ break;
+ case InvokeType::kJump:
+ JumpJSFunction(function);
+ break;
+ }
+ // Continue here if InvokePrologue does handle the invocation due to
+ // mismatched parameter counts.
+ bind(&done);
+}
+#endif // V8_ENABLE_LEAPTIERING
// ---------------------------------------------------------------------------
// Support functions.
@@ -7240,14 +7287,30 @@ void MacroAssembler::ComputeCodeStartAddress(Register dst) {
// 2. test kMarkedForDeoptimizationBit in those flags; and
// 3. if it is not zero then it jumps to the builtin.
void MacroAssembler::BailoutIfDeoptimized() {
- int offset = InstructionStream::kCodeOffset - InstructionStream::kHeaderSize;
- LoadProtectedPointerField(
- kScratchReg, MemOperand(kJavaScriptCallCodeStartRegister, offset));
- Lw(kScratchReg, FieldMemOperand(kScratchReg, Code::kFlagsOffset));
- And(kScratchReg, kScratchReg,
- Operand(1 << Code::kMarkedForDeoptimizationBit));
- TailCallBuiltin(Builtin::kCompileLazyDeoptimizedCode, ne, kScratchReg,
+ ASM_CODE_COMMENT(this);
+ UseScratchRegisterScope temps(this);
+ Register scratch = temps.Acquire();
+ if (v8_flags.debug_code || !V8_ENABLE_LEAPTIERING_BOOL) {
+ int offset =
+ InstructionStream::kCodeOffset - InstructionStream::kHeaderSize;
+ LoadProtectedPointerField(
+ scratch, MemOperand(kJavaScriptCallCodeStartRegister, offset));
+ Lw(scratch, FieldMemOperand(scratch, Code::kFlagsOffset));
+ }
+
+#ifdef V8_ENABLE_LEAPTIERING
+ if (v8_flags.debug_code) {
+ Label not_deoptimized;
+ And(scratch, scratch, Operand(1 << Code::kMarkedForDeoptimizationBit));
+ Branch(&not_deoptimized, eq, scratch, Operand(zero_reg));
+ Abort(AbortReason::kInvalidDeoptimizedCode);
+ bind(&not_deoptimized);
+ }
+#else
+ And(scratch, scratch, Operand(1 << Code::kMarkedForDeoptimizationBit));
+ TailCallBuiltin(Builtin::kCompileLazyDeoptimizedCode, ne, scratch,
Operand(zero_reg));
+#endif
}
void MacroAssembler::CallForDeoptimization(Builtin target, int, Label* exit,
@@ -7303,22 +7366,20 @@ void MacroAssembler::JumpCodeObject(Register code_object, CodeEntrypointTag tag,
}
void MacroAssembler::CallJSFunction(Register function_object,
- uint16_t argument_count) {
- DCHECK_WITH_MSG(!V8_ENABLE_LEAPTIERING_BOOL,
- "argument_count is only used with Leaptiering");
+ [[maybe_unused]] uint16_t argument_count) {
ASM_CODE_COMMENT(this);
Register code = kJavaScriptCallCodeStartRegister;
#ifdef V8_ENABLE_LEAPTIERING
- UseScratchRegisterScope temps(this);
- Register dispatch_handle = t0;
+ Register dispatch_handle = kJavaScriptCallDispatchHandleRegister;
Register parameter_count = t1;
+ UseScratchRegisterScope temps(this);
Register scratch = temps.Acquire();
Lw(dispatch_handle,
FieldMemOperand(function_object, JSFunction::kDispatchHandleOffset));
LoadEntrypointAndParameterCountFromJSDispatchTable(code, parameter_count,
dispatch_handle, scratch);
Label match;
- Branch(&match, le, parameter_count, Immediate(argument_count));
+ Branch(&match, le, parameter_count, Operand(argument_count));
// If the parameter count doesn't match, we force a safe crash by setting the
// code entrypoint to zero, causing a nullptr dereference during the call.
mv(code, zero_reg);
@@ -7366,13 +7427,14 @@ void MacroAssembler::JumpJSFunction(Register function_object,
ASM_CODE_COMMENT(this);
Register code = kJavaScriptCallCodeStartRegister;
#ifdef V8_ENABLE_LEAPTIERING
- LoadCodeEntrypointFromJSDispatchTable(
- code,
- FieldMemOperand(function_object, JSFunction::kDispatchHandleOffset));
+ Register dispatch_handle = kJavaScriptCallDispatchHandleRegister;
+ UseScratchRegisterScope temps(this);
+ Register scratch = temps.Acquire();
+ Lw(dispatch_handle,
+ FieldMemOperand(function_object, JSFunction::kDispatchHandleOffset));
+ LoadEntrypointFromJSDispatchTable(code, dispatch_handle, scratch);
DCHECK_EQ(jump_mode, JumpMode::kJump);
- DCHECK_NE(code, t6);
- mv(t6, code);
- Jump(t6);
+ Jump(code);
#elif V8_ENABLE_SANDBOX
// When the sandbox is enabled, we can directly fetch the entrypoint pointer
// from the code pointer table instead of going through the Code object. In
@@ -7465,11 +7527,13 @@ void MacroAssembler::LoadEntrypointFromJSDispatchTable(Register destination,
Register scratch) {
DCHECK(!AreAliased(destination, scratch));
ASM_CODE_COMMENT(this);
+ Register index = destination;
li(scratch, ExternalReference::js_dispatch_table_address());
srli(index, dispatch_handle, kJSDispatchHandleShift);
slli(index, index, kJSDispatchTableEntrySizeLog2);
AddWord(scratch, scratch, index);
- Ld(destination, MemOperand(scratch, JSDispatchEntry::kEntrypointOffset));
+ LoadWord(destination,
+ MemOperand(scratch, JSDispatchEntry::kEntrypointOffset));
}
void MacroAssembler::LoadEntrypointFromJSDispatchTable(
@@ -7486,7 +7550,7 @@ void MacroAssembler::LoadEntrypointFromJSDispatchTable(
static_assert(!JSDispatchTable::kSupportsCompaction);
int offset = JSDispatchTable::OffsetOfEntry(dispatch_handle) +
JSDispatchEntry::kEntrypointOffset;
- Ld(destination, MemOperand(scratch, offset));
+ LoadWord(destination, MemOperand(scratch, offset));
}
void MacroAssembler::LoadParameterCountFromJSDispatchTable(
@@ -7494,12 +7558,14 @@ void MacroAssembler::LoadParameterCountFromJSDispatchTable(
DCHECK(!AreAliased(destination, scratch));
ASM_CODE_COMMENT(this);
Register index = destination;
- li(scratch, ExternalReference::js_dispatch_table_address());
srli(index, dispatch_handle, kJSDispatchHandleShift);
slli(index, index, kJSDispatchTableEntrySizeLog2);
+ li(scratch, ExternalReference::js_dispatch_table_address());
AddWord(scratch, scratch, index);
+#ifdef V8_TARGET_ARCH_64_BIT
static_assert(JSDispatchEntry::kParameterCountMask == 0xffff);
- Lh(destination, MemOperand(scratch, JSDispatchEntry::kCodeObjectOffset));
+#endif
+ Lhu(destination, MemOperand(scratch, JSDispatchEntry::kCodeObjectOffset));
}
void MacroAssembler::LoadEntrypointAndParameterCountFromJSDispatchTable(
@@ -7512,10 +7578,11 @@ void MacroAssembler::LoadEntrypointAndParameterCountFromJSDispatchTable(
srli(index, dispatch_handle, kJSDispatchHandleShift);
slli(index, index, kJSDispatchTableEntrySizeLog2);
AddWord(scratch, scratch, index);
-
- Ld(entrypoint, MemOperand(scratch, JSDispatchEntry::kEntrypointOffset));
+ LoadWord(entrypoint, MemOperand(scratch, JSDispatchEntry::kEntrypointOffset));
+#ifdef V8_TARGET_ARCH_64_BIT
static_assert(JSDispatchEntry::kParameterCountMask == 0xffff);
- Lh(parameter_count, MemOperand(scratch, JSDispatchEntry::kCodeObjectOffset));
+#endif
+ Lhu(parameter_count, MemOperand(scratch, JSDispatchEntry::kCodeObjectOffset));
}
#endif
diff --git a/src/codegen/riscv/macro-assembler-riscv.h b/src/codegen/riscv/macro-assembler-riscv.h
index 12988bdf00c6..ca91407d21f0 100644
--- a/v8/src/codegen/riscv/macro-assembler-riscv.h
+++ b/v8/src/codegen/riscv/macro-assembler-riscv.h
@@ -1600,23 +1600,47 @@ class V8_EXPORT_PRIVATE MacroAssembler : public MacroAssemblerBase {
// -------------------------------------------------------------------------
// JavaScript invokes.
- // Invoke the JavaScript function code by either calling or jumping.
- void InvokeFunctionCode(Register function, Register new_target,
- Register expected_parameter_count,
- Register actual_parameter_count, InvokeType type);
+ // On function call, call into the debugger.
+ void CallDebugOnFunctionCall(
+ Register fun, Register new_target,
+ Register expected_parameter_count_or_dispatch_handle,
+ Register actual_parameter_count);
- // On function call, call into the debugger if necessary.
- void CheckDebugHook(Register fun, Register new_target,
- Register expected_parameter_count,
- Register actual_parameter_count);
+ // The way we invoke JSFunctions differs depending on whether leaptiering is
+ // enabled. As such, these functions exist in two variants. In the future,
+ // leaptiering will be used on all platforms. At that point, the
+ // non-leaptiering variants will disappear.
+#ifdef V8_ENABLE_LEAPTIERING
// Invoke the JavaScript function in the given register. Changes the
// current context to the context in the function before invoking.
+ void InvokeFunction(Register function, Register actual_parameter_count,
+ InvokeType type,
+ ArgumentAdaptionMode argument_adaption_mode =
+ ArgumentAdaptionMode::kAdapt);
+ // Invoke the JavaScript function in the given register.
+ // Changes the current context to the context in the function before invoking.
void InvokeFunctionWithNewTarget(Register function, Register new_target,
Register actual_parameter_count,
InvokeType type);
+ // Invoke the JavaScript function code by either calling or jumping.
+ void InvokeFunctionCode(Register function, Register new_target,
+ Register actual_parameter_count, InvokeType type,
+ ArgumentAdaptionMode argument_adaption_mode =
+ ArgumentAdaptionMode::kAdapt);
+#else
void InvokeFunction(Register function, Register expected_parameter_count,
Register actual_parameter_count, InvokeType type);
+ // Invoke the JavaScript function in the given register. Changes the
+ // current context to the context in the function before invoking.
+ void InvokeFunctionWithNewTarget(Register function, Register new_target,
+ Register actual_parameter_count,
+ InvokeType type);
+ // Invoke the JavaScript function code by either calling or jumping.
+ void InvokeFunctionCode(Register function, Register new_target,
+ Register expected_parameter_count,
+ Register actual_parameter_count, InvokeType type);
+#endif
// ---- InstructionStream generation helpers ----
@@ -1657,14 +1681,13 @@ class V8_EXPORT_PRIVATE MacroAssembler : public MacroAssemblerBase {
Register closure);
void GenerateTailCallToReturnedCode(Runtime::FunctionId function_id);
- Condition LoadFeedbackVectorFlagsAndCheckIfNeedsProcessing(
- Register flags, Register feedback_vector, Register result,
- CodeKind current_code_kind);
+#ifndef V8_ENABLE_LEAPTIERING
void LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing(
Register flags, Register feedback_vector, CodeKind current_code_kind,
Label* flags_need_processing);
void OptimizeCodeOrTailCallOptimizedCodeSlot(Register flags,
Register feedback_vector);
+#endif
// -------------------------------------------------------------------------
// Support functions.
@@ -1883,8 +1906,7 @@ class V8_EXPORT_PRIVATE MacroAssembler : public MacroAssemblerBase {
// Helper functions for generating invokes.
void InvokePrologue(Register expected_parameter_count,
- Register actual_parameter_count, Label* done,
- InvokeType type);
+ Register actual_parameter_count, InvokeType type);
// Compute memory operands for safepoint stack slots.
static int SafepointRegisterStackIndex(int reg_code);
diff --git a/src/codegen/riscv/register-riscv.h b/src/codegen/riscv/register-riscv.h
index ddf2f879d495..67321defed53 100644
--- a/v8/src/codegen/riscv/register-riscv.h
+++ b/v8/src/codegen/riscv/register-riscv.h
@@ -301,8 +301,7 @@ constexpr Register kJavaScriptCallCodeStartRegister = a2;
constexpr Register kJavaScriptCallTargetRegister = kJSFunctionRegister;
constexpr Register kJavaScriptCallNewTargetRegister = a3;
constexpr Register kJavaScriptCallExtraArg1Register = a2;
-// Leaptiering is not currently available on riscv64.
-constexpr Register kJavaScriptCallDispatchHandleRegister = no_reg;
+constexpr Register kJavaScriptCallDispatchHandleRegister = a4;
constexpr Register kRuntimeCallFunctionRegister = a1;
constexpr Register kRuntimeCallArgCountRegister = a0;
diff --git a/src/compiler/backend/riscv/code-generator-riscv.cc b/src/compiler/backend/riscv/code-generator-riscv.cc
index 744123ebb283..678d661e58fc 100644
--- a/v8/src/compiler/backend/riscv/code-generator-riscv.cc
+++ b/v8/src/compiler/backend/riscv/code-generator-riscv.cc
@@ -706,6 +706,36 @@ void CodeGenerator::AssembleCodeStartRegisterCheck() {
kJavaScriptCallCodeStartRegister, Operand(kScratchReg));
}
+#ifdef V8_ENABLE_LEAPTIERING
+// Check that {kJavaScriptCallDispatchHandleRegister} is correct.
+void CodeGenerator::AssembleDispatchHandleRegisterCheck() {
+ DCHECK(linkage()->GetIncomingDescriptor()->IsJSFunctionCall());
+
+ // We currently don't check this for JS builtins as those are sometimes
+ // called directly (e.g. from other builtins) and not through the dispatch
+ // table. This is fine as builtin functions don't use the dispatch handle,
+ // but we could enable this check in the future if we make sure to pass the
+ // kInvalidDispatchHandle whenever we do a direct call to a JS builtin.
+ if (Builtins::IsBuiltinId(info()->builtin())) {
+ return;
+ }
+
+ // For now, we only ensure that the register references a valid dispatch
+ // entry with the correct parameter count. In the future, we may also be able
+ // to check that the entry points back to this code.
+ UseScratchRegisterScope temps(masm());
+ Register actual_parameter_count = temps.Acquire();
+ {
+ UseScratchRegisterScope temps(masm());
+ Register scratch = temps.Acquire();
+ __ LoadParameterCountFromJSDispatchTable(
+ actual_parameter_count, kJavaScriptCallDispatchHandleRegister, scratch);
+ }
+ __ Assert(eq, AbortReason::kWrongFunctionDispatchHandle,
+ actual_parameter_count, Operand(parameter_count_));
+}
+#endif // V8_ENABLE_LEAPTIERING
+
// Check if the code object is marked for deoptimization. If it is, then it
// jumps to the CompileLazyDeoptimizedCode builtin. In order to do this we need
// to:
@@ -713,16 +743,7 @@ void CodeGenerator::AssembleCodeStartRegisterCheck() {
// the flags in the referenced {Code} object;
// 2. test kMarkedForDeoptimizationBit in those flags; and
// 3. if it is not zero then it jumps to the builtin.
-void CodeGenerator::BailoutIfDeoptimized() {
- int offset = InstructionStream::kCodeOffset - InstructionStream::kHeaderSize;
- __ LoadProtectedPointerField(
- kScratchReg, MemOperand(kJavaScriptCallCodeStartRegister, offset));
- __ Lw(kScratchReg, FieldMemOperand(kScratchReg, Code::kFlagsOffset));
- __ And(kScratchReg, kScratchReg,
- Operand(1 << Code::kMarkedForDeoptimizationBit));
- __ TailCallBuiltin(Builtin::kCompileLazyDeoptimizedCode, ne, kScratchReg,
- Operand(zero_reg));
-}
+void CodeGenerator::BailoutIfDeoptimized() { __ BailoutIfDeoptimized(); }
// Assembles an instruction after register allocation, producing machine code.
CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
diff --git a/src/maglev/riscv/maglev-assembler-riscv.cc b/src/maglev/riscv/maglev-assembler-riscv.cc
index 9611e33d6b01..8fb87746e697 100644
--- a/v8/src/maglev/riscv/maglev-assembler-riscv.cc
+++ b/v8/src/maglev/riscv/maglev-assembler-riscv.cc
@@ -127,6 +127,7 @@ void MaglevAssembler::OSRPrologue(Graph* graph) {
}
void MaglevAssembler::Prologue(Graph* graph) {
+ ASM_CODE_COMMENT(this);
MaglevAssembler::TemporaryRegisterScope temps(this);
// We add two extra registers to the scope. Ideally we could add all the
// allocatable general registers, except Context, JSFunction, NewTarget and
@@ -147,6 +148,7 @@ void MaglevAssembler::Prologue(Graph* graph) {
}
// Tiering support.
+#ifndef V8_ENABLE_LEAPTIERING
if (v8_flags.turbofan) {
using D = MaglevOptimizeCodeOrTailCallOptimizedCodeSlotDescriptor;
Register flags = D::GetRegisterParameter(D::kFlags);
@@ -169,6 +171,7 @@ void MaglevAssembler::Prologue(Graph* graph) {
TailCallBuiltin(Builtin::kMaglevOptimizeCodeOrTailCallOptimizedCodeSlot,
needs_processing, flag_reg, Operand(zero_reg));
}
+#endif
EnterFrame(StackFrame::MAGLEV);
// Save arguments in frame.

View File

@@ -0,0 +1,30 @@
From 36a764f13dc04d0c06b89d9e5a205224eb2784c8 Mon Sep 17 00:00:00 2001
From: Danil Chapovalov <danilchap@webrtc.org>
Date: Thu, 24 Oct 2024 11:12:57 +0200
Subject: [PATCH] Remove nullability compatible tag in scoped_refptr as
obsolete
As of https://github.com/abseil/abseil-cpp/commit/485f2be7c1d2f1a2ad2d89f6aef308dd7bfede8d, this no longer has any effect; instead, the ABSL_NULLABILITY_COMPATIBLE attribute which is already present on the class determines whether a class is compatible with nullability annotations.
Bug: None
Change-Id: I5aeca86c86c2b6eadb2644695ee3621e92f1f568
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/366601
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43532}
---
api/scoped_refptr.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/api/scoped_refptr.h b/api/scoped_refptr.h
index c6fb5605ca..e3274741cc 100644
--- a/third_party/webrtc/api/scoped_refptr.h
+++ b/third_party/webrtc/api/scoped_refptr.h
@@ -73,7 +73,6 @@ namespace webrtc {
template <class T>
class ABSL_NULLABILITY_COMPATIBLE scoped_refptr {
public:
- using absl_nullability_compatible = void;
using element_type = T;
scoped_refptr() : ptr_(nullptr) {}

View File

@@ -0,0 +1,13 @@
--- src/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc.orig 2025-04-16 14:36:32.758721824 +0200
+++ src/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc 2025-04-17 12:06:42.394992144 +0200
@@ -1507,8 +1507,8 @@ static base::span<const char, N - 1> Cop
base::span<const char, N> expanded_entity_chars) {
auto entity_buffer =
base::as_writable_chars(base::span(g_shared_xhtml_entity_result));
- entity_buffer.first<N>().copy_from(expanded_entity_chars);
- return entity_buffer.first<N - 1>();
+ entity_buffer.template first<N>().copy_from(expanded_entity_chars);
+ return entity_buffer.template first<N - 1>();
}
static base::span<const char> ConvertUTF16EntityToUTF8(