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 - // Treat dolby vision contents as dolby vision codec only if the
- // device support clear DV decoding, otherwise use the original - // device support clear DV decoding, otherwise use the original
- // HEVC or AVC codec and profile. - // HEVC or AVC codec and profile.
- if (media::IsSupportedVideoType(type)) { - if (media::IsDecoderSupportedVideoType(type)) {
- codec = type.codec; - codec = type.codec;
- profile = type.profile; - profile = type.profile;
- } - }
@@ -307,7 +307,7 @@ index 3c97e4a6cf4c7..a55e4ab51d5b3 100644
+ // Treat dolby vision contents as dolby vision codec only if the + // Treat dolby vision contents as dolby vision codec only if the
+ // device support clear DV decoding, otherwise use the original + // device support clear DV decoding, otherwise use the original
+ // HEVC or AVC codec and profile. + // HEVC or AVC codec and profile.
+ if (media::IsSupportedVideoType(type)) { + if (media::IsDecoderSupportedVideoType(type)) {
+ codec = type.codec; + codec = type.codec;
+ profile = type.profile; + 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 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.orig 2025-04-21 18:29:28.190307211 +0200
+++ src/third_party/blink/renderer/platform/runtime_enabled_features.json5 2025-01-14 19:49:21.336897930 +0100 +++ src/third_party/blink/renderer/platform/runtime_enabled_features.json5 2025-04-21 23:33:49.257769003 +0200
@@ -2103,7 +2103,6 @@ @@ -2165,11 +2165,9 @@
},
{
name: "FontationsFontBackend",
- status: "stable",
}, },
{ {
name: "FontationsForSelectedFormats", 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 "base/time/time_override.h"
#include "build/build_config.h" #include "build/build_config.h"
--- src/base/BUILD.gn.orig 2024-12-08 18:43:52.881356091 +0100 --- src/base/BUILD.gn.orig 2025-04-11 12:12:20.504331178 +0200
+++ src/base/BUILD.gn 2024-12-18 13:19:11.049201868 +0100 +++ src/base/BUILD.gn 2025-04-11 20:49:30.979616277 +0200
@@ -1,3 +1,8 @@ @@ -1,3 +1,8 @@
+import("//build/config/linux/pkg_config.gni") +import("//build/config/linux/pkg_config.gni")
+ +
@@ -20,7 +20,7 @@
# Copyright 2013 The Chromium Authors # Copyright 2013 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
@@ -809,8 +814,6 @@ component("base") { @@ -797,8 +802,6 @@ component("base") {
"task/updateable_sequenced_task_runner.h", "task/updateable_sequenced_task_runner.h",
"test/scoped_logging_settings.h", "test/scoped_logging_settings.h",
"test/spin_wait.h", "test/spin_wait.h",
@@ -29,10 +29,10 @@
"thread_annotations.h", "thread_annotations.h",
"threading/hang_watcher.cc", "threading/hang_watcher.cc",
"threading/hang_watcher.h", "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:wexit_time_destructors",
"//build/config/compiler:wglobal_constructors", "//build/config/compiler:wglobal_constructors",
"//electron/build/config:mas_build",
+ ":system_nspr", + ":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.orig 2024-12-08 18:44:32.671357320 +0100
+++ src/chrome/test/BUILD.gn 2025-01-01 21:35:00.776064485 +0100 +++ src/chrome/test/BUILD.gn 2025-01-01 21:35:00.776064485 +0100
@@ -8317,7 +8317,6 @@ test("unit_tests") { @@ -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/browser/web_applications:web_applications_test_support",
"//chrome/common/accessibility:mojo_bindings", "//chrome/common/read_anything:mojo_bindings",
- "//chrome/services/speech:unit_tests", - "//chrome/services/speech:unit_tests",
"//components/app_constants", "//components/app_constants",
"//components/color", "//components/color",

View File

@@ -21,9 +21,9 @@ Subject: [PATCH] Disable various compiler configs
build/config/compiler/BUILD.gn | 114 +++++---------------------------- build/config/compiler/BUILD.gn | 114 +++++----------------------------
1 file changed, 17 insertions(+), 97 deletions(-) 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.orig 2025-04-21 18:29:05.106306929 +0200
+++ src/build/config/compiler/BUILD.gn 2024-12-18 11:06:05.334038035 +0100 +++ src/build/config/compiler/BUILD.gn 2025-04-22 20:59:45.689108303 +0200
@@ -310,9 +310,7 @@ config("compiler") { @@ -308,9 +308,7 @@ config("compiler") {
configs += [ configs += [
# See the definitions below. # See the definitions below.
@@ -33,7 +33,23 @@ Subject: [PATCH] Disable various compiler configs
":compiler_codegen", ":compiler_codegen",
":compiler_deterministic", ":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) { if (!is_win) {
# Common POSIX compiler flags setup. # Common POSIX compiler flags setup.
# -------------------------------- # --------------------------------
@@ -47,7 +63,7 @@ Subject: [PATCH] Disable various compiler configs
# Stack protection. ShadowCallStack and Stack protector address the same # Stack protection. ShadowCallStack and Stack protector address the same
# problems. Therefore, we only enable one or the other. Clang advertises SCS as # 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. # Linux/Android/Fuchsia common flags setup.
# --------------------------------- # ---------------------------------
if (is_linux || is_chromeos || is_android || is_fuchsia) { if (is_linux || is_chromeos || is_android || is_fuchsia) {
@@ -58,7 +74,7 @@ Subject: [PATCH] Disable various compiler configs
if (!is_clang) { if (!is_clang) {
# Use pipes for communicating between sub-processes. Faster. # 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" ] 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 # 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 # without using everything that "compiler" brings in. Options that
# tweak code generation for a particular CPU do not belong here! # tweak code generation for a particular CPU do not belong here!
# See "compiler_codegen", below. # See "compiler_codegen", below.
@@ -80,7 +96,7 @@ Subject: [PATCH] Disable various compiler configs
cflags = [] cflags = []
ldflags = [] ldflags = []
defines = [] 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 # 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 # subconfig of both chromium_code and no_chromium_code. This way these
# flags are guaranteed to appear on the compile command line after -Wall. # flags are guaranteed to appear on the compile command line after -Wall.
@@ -90,7 +106,7 @@ Subject: [PATCH] Disable various compiler configs
cflags = [] cflags = []
cflags_c = [] cflags_c = []
cflags_cc = [] cflags_cc = []
@@ -2064,11 +2060,7 @@ config("chromium_code") { @@ -2071,11 +2065,7 @@ config("chromium_code") {
defines = [ "_HAS_NODISCARD" ] defines = [ "_HAS_NODISCARD" ]
} }
} else { } else {
@@ -103,7 +119,7 @@ Subject: [PATCH] Disable various compiler configs
# In Chromium code, we define __STDC_foo_MACROS in order to get the # In Chromium code, we define __STDC_foo_MACROS in order to get the
# C99 macros on Mac and Linux. # C99 macros on Mac and Linux.
@@ -2077,24 +2069,6 @@ config("chromium_code") { @@ -2084,24 +2074,6 @@ config("chromium_code") {
"__STDC_FORMAT_MACROS", "__STDC_FORMAT_MACROS",
] ]
@@ -128,7 +144,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_apple) { if (is_apple) {
cflags_objc = [ "-Wimplicit-retain-self" ] cflags_objc = [ "-Wimplicit-retain-self" ]
cflags_objcc = [ "-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") { config("export_dynamic") {
# TODO(crbug.com/40118868): Revisit after target_os flip is completed. # TODO(crbug.com/40118868): Revisit after target_os flip is completed.
if (is_linux || is_chromeos_lacros || export_libcxxabi_from_executables) { 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 # gcc 4.9 and earlier had no way of suppressing this warning without
# suppressing the rest of them. Here we centralize the identification of # suppressing the rest of them. Here we centralize the identification of
# the gcc 4.9 toolchains. # the gcc 4.9 toolchains.
@@ -146,7 +162,7 @@ Subject: [PATCH] Disable various compiler configs
cflags = [] cflags = []
if (is_clang) { if (is_clang) {
cflags += [ "-Wno-incompatible-pointer-types" ] 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" ] common_optimize_on_cflags += [ "-fno-math-errno" ]
} }
@@ -156,7 +172,7 @@ Subject: [PATCH] Disable various compiler configs
if (!is_win) { if (!is_win) {
if (enable_frame_pointers) { if (enable_frame_pointers) {
cflags = [ "-fno-omit-frame-pointer" ] 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 # [0]: https://pinpoint-dot-chromeperf.appspot.com/job/147634a8be0000
# [1]: https://pinpoint-dot-chromeperf.appspot.com/job/132bc772be0000 # [1]: https://pinpoint-dot-chromeperf.appspot.com/job/132bc772be0000
# [2]: https://crrev.com/c/5447532 # [2]: https://crrev.com/c/5447532
@@ -166,7 +182,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_win) { if (is_win) {
# clang-cl's /O2 corresponds to clang's -O3, and really want -O2 for # clang-cl's /O2 corresponds to clang's -O3, and really want -O2 for
# consistency with the other platforms. # consistency with the other platforms.
@@ -2541,7 +2517,8 @@ config("optimize") { @@ -2573,7 +2547,8 @@ config("optimize") {
} }
# Turn off optimizations. # Turn off optimizations.
@@ -176,7 +192,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_win) { if (is_win) {
cflags = [ cflags = [
"/Od", # Disable optimization. "/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 # 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 # -Os for select targets on platforms that use optimize_for_size. No-op
# elsewhere. # elsewhere.
@@ -186,7 +202,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_nacl && is_nacl_irt) { if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config. # The NaCl IRT is a special case and always wants its own config.
# Various components do: # 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 # TODO(crbug.com/41259697) - rework how all of these configs are related
# so that we don't need this disclaimer. # so that we don't need this disclaimer.
@@ -196,7 +212,7 @@ Subject: [PATCH] Disable various compiler configs
if (is_nacl && is_nacl_irt) { if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config. # The NaCl IRT is a special case and always wants its own config.
# Various components do: # 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 cflags = [ "-O1" ] + common_optimize_on_cflags
rustflags = [ "-Copt-level=1" ] rustflags = [ "-Copt-level=1" ]
ldflags = common_optimize_on_ldflags ldflags = common_optimize_on_ldflags
@@ -2774,7 +2754,8 @@ config("win_pdbaltpath") { @@ -2806,7 +2784,8 @@ config("win_pdbaltpath") {
} }
# Full symbols. # Full symbols.
@@ -216,7 +232,7 @@ Subject: [PATCH] Disable various compiler configs
rustflags = [] rustflags = []
configs = [] configs = []
if (is_win) { if (is_win) {
@@ -2936,7 +2917,8 @@ config("symbols") { @@ -2968,7 +2947,8 @@ config("symbols") {
# Minimal symbols. # Minimal symbols.
# This config guarantees to hold symbol for stack trace which are shown to user # This config guarantees to hold symbol for stack trace which are shown to user
# when crash happens in unittests running on buildbot. # when crash happens in unittests running on buildbot.
@@ -226,7 +242,7 @@ Subject: [PATCH] Disable various compiler configs
rustflags = [] rustflags = []
if (is_win) { if (is_win) {
# Functions, files, and line tables only. # 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 # This configuration contains function names only. That is, the compiler is
# told to not generate debug information and the linker then just puts function # told to not generate debug information and the linker then just puts function
# names in the final debug information. # names in the final debug information.

View File

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

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 diff -up chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc.me chromium-133.0.6943.53/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-133.0.6943.53/media/filters/ffmpeg_glue.cc.me 2025-02-05 13:28:17.782881439 +0100
+++ chromium-129.0.6668.42.old/media/filters/ffmpeg_glue.cc 2024-09-16 10:53:13.334970539 +0200 +++ chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc 2025-02-05 13:33:15.256928027 +0100
@@ -17,14 +17,11 @@ @@ -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 // 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. // 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 --- src/skia/BUILD.gn.orig 2025-04-11 12:05:22.085153891 +0200
+++ b/skia/BUILD.gn +++ src/skia/BUILD.gn 2025-04-11 20:35:59.999827501 +0200
@@ -8,7 +8,6 @@ @@ -8,7 +8,6 @@ import("//build/config/features.gni")
import("//build/config/freetype/freetype.gni") import("//build/config/freetype/freetype.gni")
import("//build/config/rust.gni") import("//build/config/rust.gni")
import("//build/config/sanitizers/sanitizers.gni") import("//build/config/sanitizers/sanitizers.gni")
-import("//build/rust/rust_static_library.gni") -import("//build/rust/rust_static_library.gni")
import("//gpu/vulkan/features.gni") import("//gpu/vulkan/features.gni")
import("//testing/test.gni") import("//skia/skia.gni")
import("//third_party/skia/gn/shared_sources.gni") import("//testing/libfuzzer/fuzzer_test.gni")
@@ -47,27 +46,6 @@ @@ -37,27 +36,6 @@ buildflag_header("buildflags") {
] ]
} }
@@ -23,9 +23,9 @@
- cxx_bindings = skia_fontations_bridge_sources - cxx_bindings = skia_fontations_bridge_sources
- deps = [ - deps = [
- ":path_bridge", - ":path_bridge",
- "//third_party/rust/font_types/v0_7:lib", - "//third_party/rust/font_types/v0_8:lib",
- "//third_party/rust/read_fonts/v0_22:lib", - "//third_party/rust/read_fonts/v0_25:lib",
- "//third_party/rust/skrifa/v0_22:lib", - "//third_party/rust/skrifa/v0_26:lib",
- ] - ]
- configs -= [ "//build/config/compiler:chromium_code" ] - configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ - configs += [
@@ -36,14 +36,21 @@
# External-facing config for dependent code. # External-facing config for dependent code.
config("skia_config") { config("skia_config") {
@@ -394,15 +373,9 @@ @@ -182,7 +160,6 @@ config("skia_library_config") {
# See SK_TYPEFACE_FACTORY_FREETYPE if (use_blink && enable_freetype) {
sources += skia_ports_freetype_sources defines += [
sources += skia_ports_fontmgr_custom_sources "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_typeface_fontations_sources
sources += skia_ports_fontmgr_empty_sources - sources += skia_ports_fontmgr_fontations_sources
public += skia_ports_fontmgr_empty_public -
- # Fontations Rust/C++ bridge interfaces. - # Fontations Rust/C++ bridge interfaces.
- deps += [ - deps += [
- ":bridge_rust_side", - ":bridge_rust_side",
@@ -52,17 +59,32 @@
} }
if (is_win) { if (is_win) {
--- a/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc @@ -719,13 +688,7 @@ skia_source_set("skia_core_and_effects")
+++ b/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc # skia_core_and_effects rather than the other way around.
@@ -12,7 +12,6 @@ public_deps = [ "//third_party/dawn/include/dawn:cpp_headers" ]
#include "third_party/blink/renderer/platform/fonts/opentype/font_format_check.h" }
- 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/SkStream.h"
#include "third_party/skia/include/core/SkTypeface.h" #include "third_party/skia/include/core/SkTypeface.h"
-#include "third_party/skia/include/ports/SkTypeface_fontations.h" -#include "third_party/skia/include/ports/SkTypeface_fontations.h"
#if BUILDFLAG(IS_WIN) #if BUILDFLAG(IS_WIN)
#include "third_party/blink/renderer/platform/fonts/win/dwrite_font_format_support.h" #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) { sk_sp<SkTypeface> MakeTypefaceDefaultFontMgr(sk_sp<SkData> data) {
@@ -71,7 +93,7 @@
if (RuntimeEnabledFeatures::FontationsFontBackendEnabled()) { if (RuntimeEnabledFeatures::FontationsFontBackendEnabled()) {
std::unique_ptr<SkStreamAsset> stream(new SkMemoryStream(data)); std::unique_ptr<SkStreamAsset> stream(new SkMemoryStream(data));
return SkTypeface_Make_Fontations(std::move(stream), SkFontArguments()); return SkTypeface_Make_Fontations(std::move(stream), SkFontArguments());
@@ -82,10 +81,6 @@ @@ -83,10 +82,6 @@ sk_sp<SkTypeface> MakeTypefaceFallback(s
} }
#endif #endif
@@ -82,7 +104,7 @@
sk_sp<SkTypeface> MakeVariationsTypeface( sk_sp<SkTypeface> MakeVariationsTypeface(
sk_sp<SkData> data, sk_sp<SkData> data,
@@ -187,7 +182,6 @@ @@ -188,7 +183,6 @@ bool WebFontTypefaceFactory::CreateTypef
const FontFormatCheck format_check(data); const FontFormatCheck format_check(data);
const FontInstantiator instantiator = { const FontInstantiator instantiator = {
MakeTypefaceDefaultFontMgr, MakeTypefaceDefaultFontMgr,
@@ -90,4 +112,3 @@
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE)
MakeTypefaceFallback, MakeTypefaceFallback,
#endif #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 ++++++++++++++++ media/filters/ffmpeg_demuxer.cc | 16 ++++++++++++++++
2 files changed, 20 insertions(+) 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 --- chromium-126.0.6478.8.orig/media/filters/ffmpeg_demuxer.cc
+++ electron-17.1.2/media/filters/audio_decoder_unittest.cc 2022-03-11 09:17:36.916088893 +0100 +++ chromium-126.0.6478.8/media/filters/ffmpeg_demuxer.cc
@@ -102,7 +102,11 @@ void SetDiscardPadding(AVPacket* packet, @@ -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 +#if LIBAVUTIL_VERSION_MAJOR < 57
+ int skip_samples_size = 0; + int side_data_size = 0;
+#else +#else
size_t skip_samples_size = 0; size_t side_data_size = 0;
+#endif +#endif
const uint32_t* skip_samples_ptr = uint8_t* side_data = av_packet_get_side_data(
reinterpret_cast<const uint32_t*>(av_packet_get_side_data( packet, AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
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;
+#if LIBAVUTIL_VERSION_MAJOR < 57 +#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 +#else
size_t side_data_size = 0; return base::span<const uint8_t>(side_data, side_data_size);
+#endif +#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( void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
side_data + side_data_size); @@ -474,7 +482,11 @@
base::HeapArray<uint8_t>::CopiedFrom(side_data);
} }
+#if LIBAVUTIL_VERSION_MAJOR < 57 +#if LIBAVUTIL_VERSION_MAJOR < 57

View File

@@ -1,71 +1,69 @@
Index: electron-17.1.0/chrome/browser/about_flags.cc --- 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
--- electron-17.1.0.orig/chrome/browser/about_flags.cc 2022-03-07 17:20:30.424811477 +0100 @@ -5590,12 +5590,12 @@ const FeatureEntry kFeatureEntries[] = {
+++ electron-17.1.0/chrome/browser/about_flags.cc 2022-03-09 08:25:19.662417046 +0100
@@ -3822,12 +3822,12 @@ const FeatureEntry kFeatureEntries[] = {
#endif #endif
#endif // BUILDFLAG(IS_ANDROID) #endif // BUILDFLAG(IS_ANDROID)
#endif // ENABLE_VR #endif // ENABLE_VR
-#if BUILDFLAG(IS_CHROMEOS_ASH) -#if BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID)) +#if BUILDFLAG(IS_CHROMEOS_) || (defined(OS_LINUX) && !defined(OS_ANDROID))
{"disable-accelerated-mjpeg-decode", {"disable-accelerated-mjpeg-decode",
flag_descriptions::kAcceleratedMjpegDecodeName, flag_descriptions::kAcceleratedMjpegDecodeName,
- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, - flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
-#endif // BUILDFLAG(IS_CHROMEOS_ASH) -#endif // BUILDFLAG(IS_CHROMEOS)
+#endif // BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID)) +#endif // BUILDFLAG(IS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
{"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, 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.orig 2025-04-11 12:05:16.849151673 +0200
+++ src/chrome/browser/flag_descriptions.cc 2025-01-01 20:24:47.007188847 +0100 +++ src/chrome/browser/flag_descriptions.cc 2025-04-12 12:46:16.943776292 +0200
@@ -5838,12 +5838,24 @@ const char kUseAngleGL[] = "OpenGL"; @@ -5708,12 +5708,24 @@ const char kUseAngleDefault[] = "Default
#if BUILDFLAG(IS_CHROMEOS_ASH) #if BUILDFLAG(IS_CHROMEOS)
+#endif +#endif
+ +
+// Chrome OS and Linux -------------------------------------------------------- +// 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[] = const char kAcceleratedMjpegDecodeName[] =
"Hardware-accelerated mjpeg decode for captured frame"; "Hardware-accelerated mjpeg decode for captured frame";
const char kAcceleratedMjpegDecodeDescription[] = const char kAcceleratedMjpegDecodeDescription[] =
"Enable hardware-accelerated mjpeg decode for captured frame where " "Enable hardware-accelerated MJPEG decode for captured frame where "
"available."; "available.";
+#endif +#endif
+ +
+// Chrome OS ------------------------------------------------------------------ +// Chrome OS ------------------------------------------------------------------
+ +
+#if BUILDFLAG(IS_CHROMEOS_ASH) +#if BUILDFLAG(IS_CHROMEOS)
+ +
const char kAccessibilityFilterKeysName[] = "Filter keys"; const char kAccessibilityBounceKeysName[] = "Bounce keys";
const char kAccessibilityFilterKeysDescription[] = const char kAccessibilityBounceKeysDescription[] =
"Enables settings to filter key presses in various ways, such as slow keys " "Enables accessibility settings for bounce keys, which ignores quickly "
--- src/chrome/browser/flag_descriptions.h.orig 2024-12-08 18:34:53.268006605 +0100 --- src/chrome/browser/flag_descriptions.h.orig 2025-04-11 12:05:16.850151673 +0200
+++ src/chrome/browser/flag_descriptions.h 2025-01-01 20:26:07.993071516 +0100 +++ src/chrome/browser/flag_descriptions.h 2025-04-12 12:47:00.923776530 +0200
@@ -3375,9 +3375,21 @@ extern const char kUseAngleGL[]; @@ -3340,9 +3340,21 @@ extern const char kUseAngleDefault[];
#if BUILDFLAG(IS_CHROMEOS_ASH) #if BUILDFLAG(IS_CHROMEOS)
+#endif +#endif
+ +
+// Chrome OS and Linux -------------------------------------------------------- +// 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 kAcceleratedMjpegDecodeName[];
extern const char kAcceleratedMjpegDecodeDescription[]; extern const char kAcceleratedMjpegDecodeDescription[];
+#endif +#endif
+ +
+#if BUILDFLAG(IS_CHROMEOS_ASH) +#if BUILDFLAG(IS_CHROMEOS)
+ +
+// Chrome OS ------------------------------------------------------------------ +// Chrome OS ------------------------------------------------------------------
+ +
extern const char kAccessibilityFilterKeysName[]; extern const char kAccessibilityBounceKeysName[];
extern const char kAccessibilityFilterKeysDescription[]; 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.orig 2025-04-10 20:07:02.154742467 +0200
+++ src/third_party/electron_node/common.gypi 2024-12-18 11:12:53.414653184 +0100 +++ src/third_party/electron_node/common.gypi 2025-04-11 11:45:57.996110023 +0200
@@ -487,10 +487,15 @@ @@ -514,15 +514,19 @@
'ldflags': [ '-pthread' ], 'ldflags': [ '-pthread' ],
}], }],
[ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi"', { [ '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. + # `-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. + # 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': [ '-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' ], 'defines': [ '__STDC_FORMAT_MACROS' ],
- 'ldflags': [ '-rdynamic' ], - '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': [ 'target_conditions': [
# The 1990s toolchain on SmartOS can't handle thin archives. # The 1990s toolchain on SmartOS can't handle thin archives.
['_type=="static_library" and OS=="solaris"', { ['_type=="static_library" and OS=="solaris"', {
@@ -670,29 +675,7 @@ @@ -700,29 +704,7 @@
'-Wl,--export-dynamic', '-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.orig 2025-04-11 12:05:22.125274194 +0200
+++ src/third_party/abseil-cpp/BUILD.gn 2025-01-01 21:58:32.559624434 +0100 +++ src/third_party/abseil-cpp/BUILD.gn 2025-04-12 14:23:17.763743696 +0200
@@ -84,13 +83,9 @@ group("absl_component_deps") { @@ -84,13 +84,9 @@ group("absl_component_deps") {
"//third_party/abseil-cpp/absl/hash", "//third_party/abseil-cpp/absl/hash",
"//third_party/abseil-cpp/absl/log:absl_check", "//third_party/abseil-cpp/absl/log:absl_check",
"//third_party/abseil-cpp/absl/log:absl_log", "//third_party/abseil-cpp/absl/log:absl_log",
@@ -14,7 +14,7 @@
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/meta:type_traits", "//third_party/abseil-cpp/absl/meta:type_traits",
"//third_party/abseil-cpp/absl/numeric:bits", "//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:flat_hash_set_test",
"absl/container:hash_function_defaults_test", "absl/container:hash_function_defaults_test",
"absl/container:inlined_vector_test", "absl/container:inlined_vector_test",
@@ -23,7 +23,7 @@
"absl/container:node_slot_policy_test", "absl/container:node_slot_policy_test",
"absl/container:raw_hash_set_allocator_test", "absl/container:raw_hash_set_allocator_test",
"absl/container:raw_hash_set_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_cord_state_test",
"absl/crc:crc_memcpy_test", "absl/crc:crc_memcpy_test",
"absl/crc:non_temporal_memcpy_test", "absl/crc:non_temporal_memcpy_test",
@@ -35,7 +35,31 @@
"absl/flags:flag_test", "absl/flags:flag_test",
"absl/functional:any_invocable_test", "absl/functional:any_invocable_test",
"absl/functional:function_ref_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_format_test",
"absl/strings:str_replace_test", "absl/strings:str_replace_test",
"absl/strings:string_view_test", "absl/strings:string_view_test",

View File

@@ -232,10 +232,8 @@ keeplibs=(
third_party/hunspell #heavily forked version third_party/hunspell #heavily forked version
third_party/inspector_protocol #integral part of chrome third_party/inspector_protocol #integral part of chrome
third_party/ipcz #not in any distro third_party/ipcz #not in any distro
third_party/jstemplate #javascript
third_party/khronos #Modified to add ANGLE definitions third_party/khronos #Modified to add ANGLE definitions
third_party/leveldatabase #use of private headers 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/libgav1 #Usage of private headers (ObuFrameHeader from utils/types.h)
third_party/libsrtp #Needs to be built against boringssl, not openssl third_party/libsrtp #Needs to be built against boringssl, not openssl
third_party/libsync #not yet in any distro third_party/libsync #not yet in any distro
@@ -276,9 +274,11 @@ keeplibs=(
third_party/rapidhash #Fork third_party/rapidhash #Fork
third_party/re2 # fedora too old third_party/re2 # fedora too old
third_party/rnnoise #use of private headers 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/skia #integral part of chrome
third_party/speech-dispatcher #Headers for a delay-loaded optional dependency 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/sqlite #heavily forked version
third_party/swiftshader #not available as a shared library 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) 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/wayland-protocols/unstable #unknown origin. not in wayland-protocol-devel or elsewhere
third_party/wuffs #not in any distro third_party/wuffs #not in any distro
third_party/x11proto #derived code, not vendored dep third_party/x11proto #derived code, not vendored dep
third_party/zlib/contrib/minizip #https://bugzilla.redhat.com/show_bug.cgi?id=2240599 https://github.com/zlib-ng/minizip-ng/issues/447
third_party/zlib/google #derived code, not vendored dep third_party/zlib/google #derived code, not vendored dep
url/third_party/mozilla #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/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/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 build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove
if [ $? -ne 0 ]; then 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/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/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/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 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 rm -rvf third_party/electron_node/deps/v8/tools
ln -srv v8/tools -t third_party/electron_node/deps/v8/ 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.cc",
"language_translator.h", "language_translator.h",
"translation.cc", "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 --- src/media/ffmpeg/ffmpeg_common.cc.orig 2025-04-11 12:05:21.289638236 +0200
--- chromium-125.0.6422.41/media/base/media_switches.cc.disable-FFmpegAllowLists 2024-05-12 21:28:43.694027396 +0200 +++ src/media/ffmpeg/ffmpeg_common.cc 2025-04-12 12:23:36.647784415 +0200
+++ chromium-125.0.6422.41/media/base/media_switches.cc 2024-05-12 21:32:48.155063623 +0200 @@ -76,7 +76,7 @@ const char* GetAllowedVideoDecoders() {
@@ -1753,7 +1753,7 @@ BASE_FEATURE(kUseWindowBoundsForPip, void ApplyCodecContextSecuritySettings(AVCodecContext* codec_context) {
// Enables FFmpeg allow lists for supported codecs / containers. // Future versions of ffmpeg may copy the allow list from the format
BASE_FEATURE(kFFmpegAllowLists, // context.
"FFmpegAllowLists", - if (!codec_context->codec_whitelist) {
- base::FEATURE_ENABLED_BY_DEFAULT); + if (false) {
+ base::FEATURE_DISABLED_BY_DEFAULT); // Note: FFmpeg will try to free this string, so we must duplicate it.
codec_context->codec_whitelist =
#if BUILDFLAG(IS_WIN) av_strdup(codec_context->codec_type == AVMEDIA_TYPE_AUDIO
// Enables audio offload when supported by endpoints.

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" ] data_deps = [ "//testing:test_scripts_shared" ]
} }
--- a/tools/gritsettings/resource_ids.spec --- src/tools/gritsettings/resource_ids.spec.orig 2025-04-11 12:29:49.277239656 +0200
+++ b/tools/gritsettings/resource_ids.spec +++ src/tools/gritsettings/resource_ids.spec 2025-04-11 12:30:15.524243417 +0200
@@ -755,12 +755,6 @@ @@ -1248,10 +1248,6 @@
"content/test/web_ui_mojo_test_resources.grd": { "META": {"sizes": {"includes": [20]}},
"includes": [7340], "includes": [8280],
}, },
-
- # This file is generated during the build.
- "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": { - "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": {
- "META": {"sizes": {"includes": [20],}}, - "META": {"sizes": {"includes": [20],}},
- "includes": [7360], - "includes": [8300],
- }, - },
# END content/ section. "<(SHARED_INTERMEDIATE_DIR)/content/browser/webrtc/resources/resources.grd": {
"META": {"sizes": {"includes": [20],}},
# START "everything else" section. "includes": [8320],
--- a/content/browser/BUILD.gn --- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -2530,7 +2530,6 @@ source_set("browser") { @@ -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", "//third_party/perfetto/src/trace_processor:trace_processor_shell",
] ]
data = [ data = [
--- a/electron/electron_paks.gni --- src/electron/electron_paks.gni.orig 2025-04-11 12:02:41.243100651 +0200
+++ b/electron/electron_paks.gni +++ src/electron/electron_paks.gni 2025-04-11 12:28:19.897748625 +0200
@@ -57,7 +57,6 @@ @@ -57,7 +57,6 @@ template("electron_extra_paks") {
"$root_gen_dir/chrome/dev_ui_browser_resources.pak", "$root_gen_dir/chrome/common_resources.pak",
"$root_gen_dir/components/components_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/resources/media/media_internals_resources.pak",
- "$root_gen_dir/content/browser/tracing/tracing_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/browser/webrtc/resources/webrtc_internals_resources.pak",
"$root_gen_dir/content/content_resources.pak", "$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/content/gpu_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/gpu:resources",
"//content/browser/resources/media:resources", "//content/browser/resources/media:resources",
"//content/browser/resources/process: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) { if ((is_linux || is_chromeos) && use_dbus) {
deps += [ "//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.orig 2025-04-11 12:05:19.980351905 +0200
+++ src/content/browser/browser_interface_binders.cc 2024-12-18 12:22:33.827251622 +0100 +++ src/content/browser/browser_interface_binders.cc 2025-04-11 19:48:15.944587282 +0200
@@ -59,7 +59,9 @@ @@ -61,7 +61,9 @@
#include "content/browser/renderer_host/render_process_host_impl.h" #include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/browser/service_worker/service_worker_host.h" #include "content/browser/service_worker/service_worker_host.h"
#include "content/browser/shared_storage/shared_storage_worklet_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/storage_access/storage_access_handle.h"
#include "content/browser/tracing/trace_report/trace_report.mojom.h" #include "content/browser/tracing/trace_report/trace_report.mojom.h"
#include "content/browser/tracing/trace_report/trace_report_internals_ui.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_metrics_provider.mojom.h"
#include "media/mojo/mojom/media_player.mojom.h" #include "media/mojo/mojom/media_player.mojom.h"
#include "media/mojo/mojom/remoting.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_decode_perf_history.mojom.h"
#include "media/mojo/mojom/video_encoder_metrics_provider.mojom.h" #include "media/mojo/mojom/video_encoder_metrics_provider.mojom.h"
#include "media/mojo/mojom/webrtc_video_perf.mojom.h" #include "media/mojo/mojom/webrtc_video_perf.mojom.h"
@@ -203,7 +207,9 @@ @@ -206,7 +210,9 @@
#else // BUILDFLAG(IS_ANDROID) #else // BUILDFLAG(IS_ANDROID)
#include "content/browser/direct_sockets/direct_sockets_service_impl.h" #include "content/browser/direct_sockets/direct_sockets_service_impl.h"
#include "media/mojo/mojom/renderer_extensions.mojom.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/hid/hid.mojom.h"
#include "third_party/blink/public/mojom/installedapp/installed_app_provider.mojom.h" #include "third_party/blink/public/mojom/installedapp/installed_app_provider.mojom.h"
#include "third_party/blink/public/mojom/serial/serial.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>( map->Add<blink::mojom::SharedWorkerConnector>(
base::BindRepeating(&BindSharedWorkerConnector, base::Unretained(host))); base::BindRepeating(&BindSharedWorkerConnector, base::Unretained(host)));
+#if BUILDFLAG(ENABLE_WEB_SPEECH) +#if BUILDFLAG(ENABLE_WEB_SPEECH)
map->Add<media::mojom::SpeechRecognizer>( map->Add<media::mojom::SpeechRecognizer>(
base::BindRepeating(&SpeechRecognitionDispatcherHost::Create, base::BindRepeating(&SpeechRecognitionDispatcherHost::Create,
host->GetProcess()->GetID(), host->GetRoutingID()), host->GetProcess()->GetDeprecatedID(),
host->GetRoutingID()),
GetIOThreadTaskRunner({})); GetIOThreadTaskRunner({}));
+#endif +#endif
map->Add<blink::mojom::SpeechSynthesis>(base::BindRepeating( map->Add<blink::mojom::SpeechSynthesis>(base::BindRepeating(
&RenderFrameHostImpl::GetSpeechSynthesis, base::Unretained(host))); &RenderFrameHostImpl::GetSpeechSynthesis, base::Unretained(host)));
@@ -1163,6 +1171,7 @@ void PopulateBinderMapWithContext( @@ -1197,6 +1205,7 @@ void PopulateBinderMapWithContext(
#if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_ANDROID)
map->Add<blink::mojom::DirectSocketsService>( map->Add<blink::mojom::DirectSocketsService>(
base::BindRepeating(&DirectSocketsServiceImpl::CreateForFrame)); base::BindRepeating(&DirectSocketsServiceImpl::CreateForFrame));
@@ -154,7 +155,7 @@ Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
map->Add<media::mojom::SpeechRecognitionContext>(base::BindRepeating( map->Add<media::mojom::SpeechRecognitionContext>(base::BindRepeating(
&EmptyBinderForFrame<media::mojom::SpeechRecognitionContext>)); &EmptyBinderForFrame<media::mojom::SpeechRecognitionContext>));
map->Add<media::mojom::SpeechRecognitionClientBrowserInterface>( map->Add<media::mojom::SpeechRecognitionClientBrowserInterface>(
@@ -1174,6 +1183,7 @@ void PopulateBinderMapWithContext( @@ -1208,6 +1217,7 @@ void PopulateBinderMapWithContext(
map->Add<media::mojom::MediaPlayerObserverClient>(base::BindRepeating( map->Add<media::mojom::MediaPlayerObserverClient>(base::BindRepeating(
&EmptyBinderForFrame<media::mojom::MediaPlayerObserverClient>)); &EmptyBinderForFrame<media::mojom::MediaPlayerObserverClient>));
#endif #endif
@@ -236,12 +237,12 @@ index 3a2e713ccc3..6af5afde20e 100644
{wrf::EnableSharedWorker, switches::kDisableSharedWorkers, false}, {wrf::EnableSharedWorker, switches::kDisableSharedWorkers, false},
diff --git a/chromium/media/BUILD.gn b/chromium/media/BUILD.gn diff --git a/chromium/media/BUILD.gn b/chromium/media/BUILD.gn
index 01e0910666e..6ce78127e3f 100644 index 01e0910666e..6ce78127e3f 100644
--- a/media/BUILD.gn --- src/media/BUILD.gn 2025-04-11 12:05:21.244153535 +0200
+++ b/media/BUILD.gn +++ src/media/BUILD.gn 2025-04-11 19:48:51.764578046 +0200
@@ -47,6 +47,7 @@ buildflag_header("media_buildflags") { @@ -61,6 +61,7 @@ buildflag_header("media_buildflags") {
"ENABLE_PLATFORM_MPEG_H_AUDIO=$enable_platform_mpeg_h_audio",
"ENABLE_MSE_MPEG2TS_STREAM_PARSER=$enable_mse_mpeg2ts_stream_parser", "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", + "ENABLE_WEB_SPEECH=$enable_web_speech",
"USE_ARC_PROTECTED_MEDIA=$use_arc_protected_media", "USE_ARC_PROTECTED_MEDIA=$use_arc_protected_media",
"USE_CHROMEOS_MEDIA_ACCELERATION=$use_vaapi||$use_v4l2_codec", "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.orig 2025-04-11 12:13:12.932314099 +0200
+++ src/chrome/test/BUILD.gn 2025-01-01 20:54:36.278270275 +0100 +++ src/chrome/test/BUILD.gn 2025-04-12 13:00:11.499771987 +0200
@@ -1959,9 +1959,6 @@ if (!is_android) { @@ -2079,9 +2079,6 @@ if (!is_android) {
"//chrome/browser/resource_coordinator:tab_manager_features", "//chrome/browser/resource_coordinator:tab_manager_features",
"//chrome/browser/safe_browsing:advanced_protection", "//chrome/browser/safe_browsing:advanced_protection",
"//chrome/browser/safe_browsing:verdict_cache_manager_factory", "//chrome/browser/safe_browsing:verdict_cache_manager_factory",
@@ -10,7 +10,7 @@
"//chrome/browser/search", "//chrome/browser/search",
"//chrome/browser/search_engines", "//chrome/browser/search_engines",
"//chrome/browser/segmentation_platform:test_utils", "//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/network/public/proto:sct_audit_report_proto",
"//services/preferences/public/cpp", "//services/preferences/public/cpp",
"//services/preferences/public/cpp/tracked", "//services/preferences/public/cpp/tracked",
@@ -20,7 +20,15 @@
"//services/service_manager/public/cpp", "//services/service_manager/public/cpp",
"//services/strings", "//services/strings",
"//services/test/echo/public/mojom", "//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/device/public/cpp/bluetooth",
"//services/metrics/public/cpp:ukm_builders", "//services/metrics/public/cpp:ukm_builders",
"//services/network:test_support", "//services/network:test_support",
@@ -28,9 +36,36 @@
"//services/video_effects/test:test_support", "//services/video_effects/test:test_support",
"//third_party/crashpad/crashpad/util", "//third_party/crashpad/crashpad/util",
"//third_party/libaddressinput", "//third_party/libaddressinput",
--- src/chrome/browser/BUILD.gn.orig 2024-12-08 18:44:32.671357320 +0100 @@ -8445,7 +8437,6 @@ test("unit_tests") {
+++ src/chrome/browser/BUILD.gn 2025-01-01 21:05:47.125477818 +0100 "//chrome/browser/push_notification",
@@ -4343,9 +4343,6 @@ static_library("browser") { "//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", "//components/webauthn/core/browser:passkey_model",
"//services/device/public/cpp/bluetooth", "//services/device/public/cpp/bluetooth",
"//services/device/public/cpp/hid", "//services/device/public/cpp/hid",
@@ -98,3 +133,42 @@
] ]
configs += [ "//build/config/compiler:wexit_time_destructors" ] 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") assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")
generate_allowlist_from_histograms_file("webui_name_variants") { 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.orig 2025-04-11 12:05:16.772151640 +0200
+++ src/chrome/browser/extensions/BUILD.gn 2024-12-18 13:09:34.948061857 +0100 +++ src/chrome/browser/extensions/BUILD.gn 2025-04-11 20:28:31.291951121 +0200
@@ -20,7 +20,6 @@ import("//testing/libfuzzer/fuzzer_test. @@ -20,7 +20,6 @@ import("//testing/libfuzzer/fuzzer_test.
import("//third_party/protobuf/proto_library.gni") import("//third_party/protobuf/proto_library.gni")
assert(enable_extensions) assert(enable_extensions_core)
-assert(enable_supervised_users) -assert(enable_supervised_users)
assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") 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 = [ sources = [
"compression_utils_portable.cc", "compression_utils_portable.cc",
"compression_utils_portable.h", "compression_utils_portable.h",
--- src/ui/qt/BUILD.gn.old 2022-12-02 23:49:17.792117400 +0100 --- src/ui/qt/BUILD.gn.orig 2025-04-10 19:56:03.150817690 +0200
+++ src/ui/qt/BUILD.gn 2022-12-04 14:32:48.407196100 +0100 +++ src/ui/qt/BUILD.gn 2025-04-11 11:42:11.904342754 +0200
@@ -43,6 +43,8 @@ @@ -39,6 +39,8 @@ source_set("qt_interface") {
# target instead. # target instead.
public = [ "qt_interface.h" ] public = [ "qt_interface.h" ]
sources = [ "qt_interface.cc" ] sources = [ "qt_interface.cc" ]
@@ -84,7 +84,7 @@ Use -fpic for code which goes only in dlls (gives smaller code),
} }
template("qt_shim") { template("qt_shim") {
@@ -76,6 +78,8 @@ @@ -99,6 +101,8 @@ template("qt_shim") {
sources += get_target_outputs(":generate_moc" + invoker.qt_version) sources += get_target_outputs(":generate_moc" + invoker.qt_version)
deps += [ ":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"] + 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.old
+++ src/third_party/abseil-cpp/BUILD.gn +++ src/third_party/abseil-cpp/BUILD.gn
@@ -132,6 +132,8 @@ config("absl_define_config") { @@ -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. 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.orig 2025-04-11 12:02:41.207130337 +0200
+++ src/electron/BUILD.gn +++ src/electron/BUILD.gn 2025-04-11 20:58:52.999468971 +0200
@@ -1582,7 +1582,6 @@ group("copy_node_headers") { @@ -1569,7 +1569,6 @@ group("copy_node_headers") {
public_deps = header_groups + [ ":generate_node_headers",
":node_gypi_headers", ":node_gypi_headers",
":node_version_header", ":node_version_header",
- ":zlib_headers", - ":zlib_headers",
] ]
} }

View File

@@ -20,7 +20,7 @@
%define mod_name electron %define mod_name electron
# https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json # 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… # Do not provide libEGL.so, etc…
%define __provides_exclude ^lib.*\\.so.*$ %define __provides_exclude ^lib.*\\.so.*$
@@ -73,34 +73,14 @@ ExcludeArch: %arm
%bcond_without gdbjit %bcond_without gdbjit
%endif %endif
%ifnarch %ix86 %arm #We no longer support 32-bit.
%if (0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora})
%bcond_without lto %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 %bcond_with mold
%if 0%{?suse_version} || 0%{?fedora} >= 41
%bcond_without system_minizip
%else
%bcond_with system_minizip
%endif
%bcond_with system_yuv %bcond_with system_yuv
@@ -109,16 +89,19 @@ ExcludeArch: %arm
%bcond_without system_vpx %bcond_without system_vpx
%bcond_without bro_11 %bcond_without bro_11
%bcond_without ffmpeg_6 %bcond_without ffmpeg_6
%bcond_without wayland_34
%bcond_without system_vk_headers %bcond_without system_vk_headers
%bcond_without spirv_2024
%bcond_without cares_21 %bcond_without cares_21
#sqlite requires being compiled with session support, not a specific version.
%bcond_without system_sqlite
%else %else
%bcond_with system_vpx %bcond_with system_vpx
%bcond_with bro_11 %bcond_with bro_11
%bcond_with ffmpeg_6 %bcond_with ffmpeg_6
%bcond_with wayland_34
%bcond_with system_vk_headers %bcond_with system_vk_headers
%bcond_with spirv_2024
%bcond_with cares_21 %bcond_with cares_21
%bcond_with system_sqlite
%endif %endif
@@ -127,9 +110,11 @@ ExcludeArch: %arm
%if 0%{?fedora} %if 0%{?fedora}
%bcond_without system_llhttp %bcond_without system_llhttp
%bcond_without system_histogram %bcond_without system_histogram
%bcond_without system_simdjson
%else %else
%bcond_with system_llhttp %bcond_with system_llhttp
%bcond_with system_histogram %bcond_with system_histogram
%bcond_with system_simdjson
%endif %endif
@@ -140,8 +125,8 @@ ExcludeArch: %arm
%endif %endif
# requires `run_convert_utf8_to_latin1_with_errors` # requires `base64_options`
%if 0%{?fedora} >= 41 %if 0%{?fedora} >= 42
%bcond_without system_simdutf %bcond_without system_simdutf
%else %else
%bcond_with system_simdutf %bcond_with system_simdutf
@@ -153,9 +138,6 @@ ExcludeArch: %arm
%bcond_with system_vma %bcond_with system_vma
%endif %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. # 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} %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora}
%bcond_without system_abseil %bcond_without system_abseil
@@ -207,11 +189,11 @@ ExcludeArch: %arm
Name: nodejs-electron Name: nodejs-electron
Version: 33.4.10 Version: 35.2.1
%global tag_version %version %global tag_version %version
Release: 0 Release: 0
Summary: Build cross platform desktop apps with JavaScript, HTML, and CSS 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 Group: Development/Languages/NodeJS
URL: https://github.com/electron/electron URL: https://github.com/electron/electron
Source0: %{mod_name}-%{tag_version}.tar.zst 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 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 Source413: webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch
# and wayland protocol 1.32 # and wayland protocol 1.32
Source420: wayland-protocol-toplevel-icon.patch #Source420: wayland-protocol-toplevel-icon.patch
Source421: wayland-protocol-toplevel-icon-2.patch #Source421: wayland-protocol-toplevel-icon-2.patch
Source422: wayland-protocol-toplevel-drag.patch #Source422: wayland-protocol-toplevel-drag.patch
# and abseil 2401 #Source423: wayland_connection-Wchanges-meaning.patch
Source460: quiche-absl-HexStringToBytes.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 # and c-ares 1.19
Source470: node-cares-1.21.patch 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 Patch77: angle_link_glx.patch
Patch78: rdynamic.patch Patch78: rdynamic.patch
Patch80: icon.patch Patch80: icon.patch
Patch82: node-compiler.patch #Patch82: node-compiler.patch
Patch84: aarch64-Xclang.patch Patch84: aarch64-Xclang.patch
Patch85: devtools-frontend-compress_files-oom.patch Patch85: devtools-frontend-compress_files-oom.patch
Patch86: enable_stack_trace_line_numbers-symbol_level.patch Patch86: enable_stack_trace_line_numbers-symbol_level.patch
Patch97: chromium-127-cargo_crate.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, # 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 Patch588: remove-password-manager-and-policy.patch
Patch589: remove-puffin.patch Patch589: remove-puffin.patch
Patch590: remove-sync.patch Patch590: remove-sync.patch
Patch591: fix-build-without-safebrowsing.patch #Patch591: fix-build-without-safebrowsing.patch
Patch592: fix-build-without-supervised-users.patch Patch592: fix-build-without-supervised-users.patch
Patch593: fix-build-without-screen-ai.patch Patch593: fix-build-without-screen-ai.patch
Patch594: build-without-speech-service.patch Patch594: build-without-speech-service.patch
@@ -290,10 +278,15 @@ Patch595: chromium-123-qrcode.patch
Patch596: chromium-130-fontations.patch Patch596: chromium-130-fontations.patch
Patch597: chromium-125-cloud_authenticator.patch Patch597: chromium-125-cloud_authenticator.patch
Patch598: chromium-127-crabby.patch Patch598: chromium-127-crabby.patch
Patch599: chromium-132-no-rust.patch
#End gentoo patches #End gentoo patches
Patch599: remove-libphonenumber.patch #Patch600: remove-libphonenumber.patch
Patch600: delete-old-language-detection-which-uses-tflite.patch #Patch601: delete-old-language-detection-which-uses-tflite.patch
Patch601: MakeSbixTypeface-null-pointer-call.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 Patch1079: system-libm.patch
Patch1085: webp-no-sharpyuv.patch Patch1085: webp-no-sharpyuv.patch
Patch1086: zip_internal-missing-uLong-Z_DEFAULT_COMPRESSION.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 Patch1088: cr130-abseil-remove-unused-deps.patch
Patch1089: system-absl_algorithm.patch Patch1089: system-absl_algorithm.patch
Patch1090: cr130-absl-base.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 # PATCHES to fix interaction with third-party software
@@ -334,12 +331,12 @@ Patch2010: chromium-93-ffmpeg-4.4.patch
# is produced: # is produced:
# 'nomerge' attribute cannot be applied to a declaration # 'nomerge' attribute cannot be applied to a declaration
# See https://reviews.llvm.org/D92800 # 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 Patch2032: seccomp_bpf-no-lto.patch
Patch2034: swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch Patch2034: swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch
Patch2035: RenderFrameHostImpl-use-after-free.patch Patch2035: RenderFrameHostImpl-use-after-free.patch
# https://github.com/electron/electron/pull/40032 # https://github.com/electron/electron/pull/40032
Patch2040: build-without-extensions.patch #Patch2040: build-without-extensions.patch
%if %{without bro_11} %if %{without bro_11}
Patch2042: brotli-remove-shared-dictionary.patch Patch2042: brotli-remove-shared-dictionary.patch
%else %else
@@ -347,11 +344,7 @@ Source2042: brotli-remove-shared-dictionary.patch
%endif %endif
Patch2045: libxml-2.12-xmlCtxtGetLastError-const.patch Patch2045: libxml-2.12-xmlCtxtGetLastError-const.patch
Patch2046: chromium-118-sigtrap_system_ffmpeg.patch Patch2046: chromium-118-sigtrap_system_ffmpeg.patch
%if %{with system_minizip} #Patch2047: bundled-minizip.patch
Source2047: bundled-minizip.patch
%else
Patch2047: bundled-minizip.patch
%endif
Patch2048: absl2023-encapsulated_web_transport-StrCat.patch Patch2048: absl2023-encapsulated_web_transport-StrCat.patch
#Work around gcc14 overly aggressive optimizer. #Work around gcc14 overly aggressive optimizer.
Patch2058: v8-strict-aliasing.patch 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 Patch2061: private_aggregation_host-uint128.patch
Patch2062: wayland_version.patch Patch2062: wayland_version.patch
Patch2063: fix-building-with-pipewire-1.3.82.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 # 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 Patch3135: swiftshader-llvm18-LLVMJIT-CodeGenOptLevel.patch
Patch3138: distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch Patch3138: distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
Patch3144: mt21_util-flax-vector-conversions.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 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 Patch3174: swiftshader-llvm19-LLVMJIT-getHostCPUFeatures.patch
Patch3175: swiftshader-llvm19-LLVMReactor-incomplete-Module.patch Patch3175: swiftshader-llvm19-LLVMReactor-incomplete-Module.patch
Patch3176: fix-build-without-service-discovery.patch #Patch3176: fix-build-without-service-discovery.patch
Patch3177: wayland_connection-Wchanges-meaning.patch #Patch3178: ip_protection_data_types-missing-optional.patch
Patch3178: ip_protection_data_types-missing-optional.patch #Patch3179: account_id-missing-optional.patch
Patch3179: account_id-missing-optional.patch #Patch3180: skia_image_decoder_base-missing-stack.patch
Patch3180: skia_image_decoder_base-missing-stack.patch #Patch3181: exception_context-missing-variant.patch
Patch3181: exception_context-missing-variant.patch #Patch3182: css_attr_value_tainting-missing-once_flag.patch
Patch3182: css_attr_value_tainting-missing-once_flag.patch #Patch3183: vtt_scanner-missing-variant.patch
Patch3183: vtt_scanner-missing-variant.patch
Patch3184: electron_usb_delegate-incomplete-UsbDeviceInfo.patch Patch3184: electron_usb_delegate-incomplete-UsbDeviceInfo.patch
Patch3185: bsc1224178-font-gc.patch Patch3185: bsc1224178-font-gc.patch
Patch3186: string_view-incomplete-CodePointIterator.patch Patch3186: string_view-incomplete-CodePointIterator.patch
Patch3187: swiftshader-llvm20-absoluteSymbols.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. # 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. # 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 %else
BuildRequires: ninja-build >= 1.7.2 BuildRequires: ninja-build >= 1.7.2
%endif %endif
%if 0%{?fedora} >= 37 %if 0%{?fedora}
BuildRequires: nodejs-npm BuildRequires: nodejs-npm
#otherwise electron-typescript-definitions crashes like https://github.com/nodejs/node/issues/51752
BuildRequires: nodejs-full-i18n
%else %else
BuildRequires: npm BuildRequires: npm
%endif %endif
%if 0%{?suse_version} BuildRequires: npm(rollup)
BuildRequires: nodejs-packaging BuildRequires: nodejs-packaging
%endif
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: plasma-wayland-protocols BuildRequires: plasma-wayland-protocols
BuildRequires: python3-json5 BuildRequires: python3-json5
@@ -475,7 +493,7 @@ BuildRequires: (python3-setuptools if python3 >= 3.12)
%endif %endif
BuildRequires: python%{PYVER}-six BuildRequires: python%{PYVER}-six
%if %{with system_simdutf} %if %{with system_simdutf}
BuildRequires: simdutf-devel >= 3.2.17 BuildRequires: simdutf-devel >= 5
%endif %endif
BuildRequires: snappy-devel BuildRequires: snappy-devel
%if 0%{?suse_version} %if 0%{?suse_version}
@@ -519,13 +537,14 @@ BuildRequires: pkgconfig(absl_int128)
BuildRequires: pkgconfig(absl_memory) BuildRequires: pkgconfig(absl_memory)
BuildRequires: pkgconfig(absl_node_hash_map) BuildRequires: pkgconfig(absl_node_hash_map)
BuildRequires: pkgconfig(absl_node_hash_set) BuildRequires: pkgconfig(absl_node_hash_set)
BuildRequires: pkgconfig(absl_nullability)
BuildRequires: pkgconfig(absl_optional) BuildRequires: pkgconfig(absl_optional)
BuildRequires: pkgconfig(absl_random_random) BuildRequires: pkgconfig(absl_random_random)
BuildRequires: pkgconfig(absl_span) BuildRequires: pkgconfig(absl_span)
BuildRequires: pkgconfig(absl_stacktrace) BuildRequires: pkgconfig(absl_stacktrace)
BuildRequires: pkgconfig(absl_status) BuildRequires: pkgconfig(absl_status)
BuildRequires: pkgconfig(absl_statusor) BuildRequires: pkgconfig(absl_statusor)
BuildRequires: pkgconfig(absl_strings) BuildRequires: pkgconfig(absl_strings) >= 20240700
BuildRequires: pkgconfig(absl_str_format) BuildRequires: pkgconfig(absl_str_format)
BuildRequires: pkgconfig(absl_symbolize) BuildRequires: pkgconfig(absl_symbolize)
BuildRequires: pkgconfig(absl_synchronization) BuildRequires: pkgconfig(absl_synchronization)
@@ -568,10 +587,6 @@ BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavformat) >= 58 BuildRequires: pkgconfig(libavformat) >= 58
BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libavutil)
%endif %endif
%if %{with system_avif}
# Needs avifRGBImage::maxThreads
BuildRequires: pkgconfig(libavif) >= 1
%endif
%if %{with bro_11} %if %{with bro_11}
BuildRequires: pkgconfig(libbrotlicommon) >= 1.1~ BuildRequires: pkgconfig(libbrotlicommon) >= 1.1~
%endif %endif
@@ -580,7 +595,6 @@ BuildRequires: pkgconfig(libbrotlienc)
BuildRequires: pkgconfig(libcares) BuildRequires: pkgconfig(libcares)
BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libevent)
BuildRequires: pkgconfig(libhwy) >= 1 BuildRequires: pkgconfig(libhwy) >= 1
BuildRequires: pkgconfig(libnghttp2) BuildRequires: pkgconfig(libnghttp2)
BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libnotify)
@@ -605,13 +619,7 @@ BuildRequires: pkgconfig(libyuv) >= 1894
BuildRequires: pkgconfig(libyuv) BuildRequires: pkgconfig(libyuv)
%endif %endif
BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(libzstd)
%if %{with system_minizip}
%if 0%{?fedora}
BuildRequires: minizip-compat-devel
%else
BuildRequires: pkgconfig(minizip) BuildRequires: pkgconfig(minizip)
%endif
%endif
BuildRequires: pkgconfig(nspr) >= 4.9.5 BuildRequires: pkgconfig(nspr) >= 4.9.5
BuildRequires: pkgconfig(nss) >= 3.26 BuildRequires: pkgconfig(nss) >= 3.26
BuildRequires: pkgconfig(opus) >= 1.3.1 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. #re2-11 has abseil as a public dependency. If you use system re2 you must use system abseil.
BuildRequires: cmake(re2) >= 11 BuildRequires: cmake(re2) >= 11
%endif %endif
%if %{with system_simdjson}
BuildRequires: pkgconfig(simdjson)
%endif
%if 0%{?suse_version} %if 0%{?suse_version}
BuildRequires: spirv-headers BuildRequires: spirv-headers
%else %else
BuildRequires: spirv-headers-devel BuildRequires: spirv-headers-devel
%endif %endif
BuildRequires: pkgconfig(SPIRV-Tools) >= 2022.2 %if %{with spirv_2024}
BuildRequires: pkgconfig(vulkan) >= 1.3 BuildRequires: pkgconfig(SPIRV-Tools) >= 2024
%if %{with wayland_34}
BuildRequires: pkgconfig(wayland-protocols) >= 1.33
%endif %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(xkbcommon)
BuildRequires: pkgconfig(xshmfence) BuildRequires: pkgconfig(xshmfence)
BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(zlib)
@@ -753,13 +765,6 @@ patch -R -p1 < %SOURCE412
patch -R -p1 < %SOURCE413 patch -R -p1 < %SOURCE413
%endif %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} %if %{without cares_21}
patch -R -p1 < %SOURCE470 patch -R -p1 < %SOURCE470
%endif %endif
@@ -773,20 +778,24 @@ patch -R -p1 < %SOURCE400
patch -R -p1 < %SOURCE401 patch -R -p1 < %SOURCE401
%endif %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 #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/ 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 # Link system wayland-protocols-devel into where chrome expects them
@@ -828,7 +837,6 @@ gn_system_libraries=(
jsoncpp jsoncpp
libaom libaom
libdrm libdrm
libevent
libjpeg libjpeg
libpng libpng
libsecret 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} %if %{with system_re2}
find third_party/re2 -type f ! -name "*.gn" -a ! -name "*.gni" -delete 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 ) gn_system_libraries+=( libyuv )
%endif %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[@]} 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 find third_party/electron_node/deps/histogram -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
%endif %endif
%if %{with system_simdutf} %if %{with system_simdjson}
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/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 %endif
@@ -1056,7 +1065,7 @@ unset MALLOC_PERTURB_
%if %{with lto} %if %{with lto}
%ifarch aarch64 %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 %else
# x64 is fine with the the default settings (the machines have 30GB+ ram) # x64 is fine with the the default settings (the machines have 30GB+ ram)
export LDFLAGS="$LDFLAGS -flto=auto" export LDFLAGS="$LDFLAGS -flto=auto"
@@ -1071,6 +1080,9 @@ export LDFLAGS="$LDFLAGS -fuse-ld=mold"
export CCACHE_COMPRESS=1 export CCACHE_COMPRESS=1
ccache -o max_size=0 || true ccache -o max_size=0 || true
#see generate_node_headers.py
export ELECTRON_OUT_DIR=Release
# Create the configuration for GN # Create the configuration for GN
# Available options: out/Release/gn args --list out/Release/ # Available options: out/Release/gn args --list out/Release/
myconf_gn="" myconf_gn=""
@@ -1150,6 +1162,7 @@ myconf_gn+=' angle_enable_swiftshader=true'
# do not build PDF support # do not build PDF support
myconf_gn+=' enable_glic=false'
myconf_gn+=" enable_pdf=false" myconf_gn+=" enable_pdf=false"
myconf_gn+=' enable_pdf_ink2=false' myconf_gn+=' enable_pdf_ink2=false'
myconf_gn+=" enable_pdf_viewer=false" myconf_gn+=" enable_pdf_viewer=false"
@@ -1169,6 +1182,7 @@ myconf_gn+=' content_enable_legacy_ipc=true'
#do not build webextensions support #do not build webextensions support
myconf_gn+=' enable_electron_extensions=false' 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. # The option below get overriden by whatever is in CFLAGS/CXXFLAGS, so they affect only C++ code.
# symbol_level=2 is full debug # 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+=' structured_metrics_debug_enabled=false'
myconf_gn+=' build_dawn_tests=false' myconf_gn+=' build_dawn_tests=false'
myconf_gn+=' enable_compute_pressure=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. #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) #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=false'
myconf_gn+=' enable_rust_png=false'
myconf_gn+=' enable_chromium_prelude=false' myconf_gn+=' enable_chromium_prelude=false'
myconf_gn+=' chrome_root_store_cert_management_ui=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' myconf_gn+=' disable_histogram_support=true'
#Do not build Chromecast #Do not build Chromecast
myconf_gn+=" enable_remoting=false" myconf_gn+=" enable_remoting=false"
myconf_gn+=" enable_media_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_trace_processor_httpd=false'
myconf_gn+=' enable_perfetto_zlib=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' myconf_gn+=' dawn_complete_static_libs=true'
@@ -1340,8 +1366,8 @@ myconf_gn+=" use_system_llhttp=true"
%if %{with system_histogram} %if %{with system_histogram}
myconf_gn+=" use_system_histogram=true" myconf_gn+=" use_system_histogram=true"
%endif %endif
%if %{with system_simdutf} %if %{with system_simdjson}
myconf_gn+=' use_system_simdutf=true' myconf_gn+=' use_system_simdjson=true'
%endif %endif
myconf_gn+=" is_clang=false" myconf_gn+=" is_clang=false"
@@ -1378,8 +1404,6 @@ myconf_gn+=' skia_use_dawn=false'
myconf_gn+=" proprietary_codecs=true" myconf_gn+=" proprietary_codecs=true"
myconf_gn+=" ffmpeg_branding=\"Chrome\"" myconf_gn+=" ffmpeg_branding=\"Chrome\""
# GN does not support passing cflags: # GN does not support passing cflags:
# https://bugs.chromium.org/p/chromium/issues/detail?id=642016 # 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}" 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. # 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) # 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) # 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: # 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; 143 | absl::uint128 bucket;
| ^~~~~~ | ^~~~~~
--- src/content/browser/private_aggregation/private_aggregation_host.cc 2025-01-02 22:23:57.594885484 +0100 --- src/content/browser/private_aggregation/private_aggregation_pending_contributions.h.orig 2025-04-16 14:36:28.649070859 +0200
+++ /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 +++ src/content/browser/private_aggregation/private_aggregation_pending_contributions.h 2025-04-17 16:33:05.731832452 +0200
@@ -51,7 +51,6 @@ @@ -11,7 +11,6 @@
#include "mojo/public/cpp/bindings/pending_receiver.h" #include <vector>
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/network/public/cpp/is_potentially_trustworthy.h" #include "content/common/content_export.h"
-#include "third_party/abseil-cpp/absl/numeric/int128.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/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; auto operator<=>(const ContributionMergeKey& a) const = default;
+ unsigned __int128 bucket;
uint64_t filtering_id; - 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) #if BUILDFLAG(GOOGLE_CHROME_BRANDING) && BUILDFLAG(IS_CHROMEOS)
services.Add(RunShapeDetectionService); services.Add(RunShapeDetectionService);
--- src/content/utility/utility_main.cc.orig 2024-12-08 18:34:58.184673416 +0100 --- src/content/utility/utility_main.cc.orig 2025-04-11 12:05:20.386081545 +0200
+++ src/content/utility/utility_main.cc 2024-12-18 12:43:43.314689968 +0100 +++ src/content/utility/utility_main.cc 2025-04-11 19:56:46.620452510 +0200
@@ -32,7 +32,6 @@ @@ -32,7 +32,6 @@
#include "sandbox/policy/mojom/sandbox.mojom.h" #include "sandbox/policy/mojom/sandbox.mojom.h"
#include "sandbox/policy/sandbox.h" #include "sandbox/policy/sandbox.h"
#include "sandbox/policy/sandbox_type.h" #include "sandbox/policy/sandbox_type.h"
-#include "services/on_device_model/on_device_model_service.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/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) #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
// Thread type delegate of the process should be registered before first // 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: case sandbox::mojom::Sandbox::kAudio:
pre_sandbox_hook = base::BindOnce(&audio::AudioPreSandboxHook); pre_sandbox_hook = base::BindOnce(&audio::AudioPreSandboxHook);
break; break;
@@ -77,7 +77,7 @@ Remove this unused component which brings a huge dependency on //third_party/daw
case sandbox::mojom::Sandbox::kSpeechRecognition: case sandbox::mojom::Sandbox::kSpeechRecognition:
pre_sandbox_hook = pre_sandbox_hook =
base::BindOnce(&speech::SpeechRecognitionPreSandboxHook); base::BindOnce(&speech::SpeechRecognitionPreSandboxHook);
@@ -440,9 +431,6 @@ int UtilityMain(MainFunctionParams param @@ -454,9 +445,6 @@ int UtilityMain(MainFunctionParams param
run_loop.Run(); 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.old
+++ src/components/browsing_data/core/BUILD.gn +++ src/components/browsing_data/core/BUILD.gn
@@ -36,9 +36,7 @@ static_library("core") { @@ -36,9 +36,7 @@ static_library("core") {
@@ -91,19 +46,19 @@ cgit v1.2.3
"//components/prefs", "//components/prefs",
"//components/version_info", "//components/version_info",
"//content/public/browser", "//content/public/browser",
--- src/components/permissions/BUILD.gn.old --- src/components/permissions/BUILD.gn.orig 2025-04-11 12:05:19.206024144 +0200
+++ src/components/permissions/BUILD.gn +++ src/components/permissions/BUILD.gn 2025-04-11 20:04:52.832323166 +0200
@@ -109,10 +109,7 @@ source_set("permissions") { @@ -119,10 +119,7 @@ source_set("permissions") {
]
deps = [ deps = [
"//base", "//base",
"//build:chromeos_buildflags",
- "//components/back_forward_cache", - "//components/back_forward_cache",
- "//components/content_settings/browser", - "//components/content_settings/browser",
"//components/content_settings/core/browser", "//components/content_settings/core/browser",
- "//components/content_settings/core/browser:cookie_settings", - "//components/content_settings/core/browser:cookie_settings",
"//components/favicon/core:core", "//components/favicon/core:core",
"//components/guest_view/buildflags",
"//components/keyed_service/content", "//components/keyed_service/content",
"//components/permissions/prediction_service",
--- src/components/proxy_config/BUILD.gn.old --- src/components/proxy_config/BUILD.gn.old
+++ src/components/proxy_config/BUILD.gn +++ src/components/proxy_config/BUILD.gn
@@ -23,9 +23,6 @@ component("proxy_config") { @@ -23,9 +23,6 @@ component("proxy_config") {
@@ -191,20 +146,24 @@ cgit v1.2.3
"//device/vr/buildflags", "//device/vr/buildflags",
] ]
} }
--- src/components/search_engines/BUILD.gn.orig 2024-12-08 18:34:56.928006713 +0100 --- src/components/search_engines/BUILD.gn.orig 2025-04-11 12:05:19.397475381 +0200
+++ src/components/search_engines/BUILD.gn 2024-12-18 12:48:04.888029763 +0100 +++ src/components/search_engines/BUILD.gn 2025-04-11 20:05:37.960311107 +0200
@@ -16,45 +16,23 @@ static_library("search_engines") { @@ -12,49 +12,21 @@ if (is_android) {
"default_search_manager.cc", static_library("search_engines") {
"default_search_manager.h", sources = [
"eea_countries_ids.h", "choice_made_location.h",
- "default_search_manager.cc",
- "default_search_manager.h",
- "enterprise/default_search_policy_handler.cc", - "enterprise/default_search_policy_handler.cc",
- "enterprise/default_search_policy_handler.h", - "enterprise/default_search_policy_handler.h",
"enterprise/enterprise_site_search_manager.cc", "enterprise/enterprise_search_manager.cc",
"enterprise/enterprise_site_search_manager.h", "enterprise/enterprise_search_manager.h",
- "keyword_table.cc", - "keyword_table.cc",
- "keyword_table.h", - "keyword_table.h",
"keyword_web_data_service.cc", "keyword_web_data_service.cc",
"keyword_web_data_service.h", "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_metrics_service_accessor.h",
- "search_engine_choice/search_engine_choice_service.cc", - "search_engine_choice/search_engine_choice_service.cc",
- "search_engine_choice/search_engine_choice_service.h", - "search_engine_choice/search_engine_choice_service.h",
@@ -219,8 +178,8 @@ cgit v1.2.3
- "template_url.h", - "template_url.h",
"template_url_data.cc", "template_url_data.cc",
"template_url_data.h", "template_url_data.h",
"template_url_data_util.cc", - "template_url_data_util.cc",
"template_url_data_util.h", - "template_url_data_util.h",
- "template_url_fetcher.cc", - "template_url_fetcher.cc",
- "template_url_fetcher.h", - "template_url_fetcher.h",
"template_url_id.h", "template_url_id.h",
@@ -239,15 +198,15 @@ cgit v1.2.3
] ]
public_deps = [ public_deps = [
@@ -69,7 +47,6 @@ static_library("search_engines") { @@ -68,7 +46,6 @@ static_library("search_engines") {
"//components/sync", "//components/sync",
"//components/webdata/common", "//components/webdata/common",
"//third_party/metrics_proto", "//third_party/metrics_proto",
- "//third_party/omnibox_proto", - "//third_party/omnibox_proto",
"//third_party/search_engines_data:prepopulated_engines",
] ]
deps = [ @@ -77,16 +47,10 @@ static_library("search_engines") {
@@ -77,15 +54,9 @@ static_library("search_engines") {
"//components/country_codes", "//components/country_codes",
"//components/crash/core/common:crash_key", "//components/crash/core/common:crash_key",
"//components/database_utils", "//components/database_utils",
@@ -259,11 +218,12 @@ cgit v1.2.3
- "//components/policy:generated", - "//components/policy:generated",
- "//components/policy/core/browser", - "//components/policy/core/browser",
"//components/pref_registry", "//components/pref_registry",
"//components/regional_capabilities",
- "//components/search_provider_logos:switches", - "//components/search_provider_logos:switches",
"//components/signin/public/base", "//components/signin/public/base",
"//components/strings", "//components/strings",
"//components/url_formatter", "//components/url_formatter",
@@ -97,7 +68,6 @@ static_library("search_engines") { @@ -98,7 +62,6 @@ static_library("search_engines") {
"//services/network/public/mojom", "//services/network/public/mojom",
"//sql", "//sql",
"//third_party/metrics_proto", "//third_party/metrics_proto",
@@ -271,7 +231,7 @@ cgit v1.2.3
"//ui/base", "//ui/base",
"//ui/gfx", "//ui/gfx",
"//ui/gfx/geometry", "//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" ] sources += [ "search_engine_choice/generated_marketing_snippets.cc" ]
deps += [ deps += [
":generate_search_engine_icons", ":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 (is_linux || is_win || is_mac || is_chromeos) {
+ if (false) { + if (false) {
sources += [ sources += [
"enterprise/site_search_policy_handler.cc", "enterprise/search_aggregator_policy_handler.cc",
"enterprise/site_search_policy_handler.h", "enterprise/search_aggregator_policy_handler.h",
--- src/components/search/BUILD.gn.old --- src/components/search/BUILD.gn.old
+++ src/components/search/BUILD.gn +++ src/components/search/BUILD.gn
@@ -6,10 +6,6 @@ static_library("search") { @@ -6,10 +6,6 @@ static_library("search") {
@@ -302,9 +262,9 @@ cgit v1.2.3
] ]
deps = [ deps = [
--- src/extensions/common/BUILD.gn.orig --- src/extensions/common/BUILD.gn.orig 2025-04-11 12:05:20.590871749 +0200
+++ src/extensions/common/BUILD.gn +++ src/extensions/common/BUILD.gn 2025-04-11 20:05:59.704305366 +0200
@@ -301,8 +301,6 @@ static_library("common") { @@ -313,8 +313,6 @@ static_library("common") {
"extension_set.cc", "extension_set.cc",
"extension_set.h", "extension_set.h",
"extension_updater_uma.h", "extension_updater_uma.h",
@@ -313,10 +273,10 @@ cgit v1.2.3
"extension_utility_types.h", "extension_utility_types.h",
"extensions_client.cc", "extensions_client.cc",
"extensions_client.h", "extensions_client.h",
@@ -498,8 +496,6 @@ static_library("common") { @@ -524,8 +522,6 @@ static_library("common") {
"//components/crash/core/common",
"//components/crx_file", "//components/crx_file",
"//components/nacl/common:buildflags", "//components/nacl/common:buildflags",
"//components/pdf/common:util",
- "//components/safe_browsing/core/common", - "//components/safe_browsing/core/common",
- "//components/safe_browsing/core/common/hashprefix_realtime:hash_realtime_utils", - "//components/safe_browsing/core/common/hashprefix_realtime:hash_realtime_utils",
"//components/url_formatter", "//components/url_formatter",

View File

@@ -1,26 +1,26 @@
Remove this dead code which brings a dependency on rustc 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.orig 2025-04-11 12:05:18.743943100 +0200
+++ src/components/BUILD.gn 2024-03-28 23:11:14.847582213 +0100 +++ src/components/BUILD.gn 2025-04-11 19:52:11.508526413 +0200
@@ -282,7 +282,6 @@ test("components_unittests") { @@ -297,7 +297,6 @@ test("components_unittests") {
"//components/profile_metrics:unit_tests", "//components/profile_metrics:unit_tests",
"//components/proxy_config:unit_tests", "//components/proxy_config:unit_tests",
"//components/push_notification:unit_tests", "//components/push_notification:unit_tests",
- "//components/qr_code_generator:unit_tests", - "//components/qr_code_generator:unit_tests",
"//components/query_parser:unit_tests", "//components/query_parser:unit_tests",
"//components/reading_list/core:unit_tests", "//components/reading_list/core:unit_tests",
"//components/reporting/client:unit_tests", "//components/regional_capabilities:unit_tests",
--- src/chrome/browser/BUILD.gn.orig 2024-12-08 18:44:32.671357320 +0100 --- src/chrome/browser/BUILD.gn.orig 2025-04-11 12:13:12.927314100 +0200
+++ src/chrome/browser/BUILD.gn 2024-12-18 12:38:43.758015814 +0100 +++ src/chrome/browser/BUILD.gn 2025-04-11 19:52:48.976512203 +0200
@@ -1798,7 +1798,6 @@ static_library("browser") { @@ -1777,7 +1777,6 @@ static_library("browser") {
"//chrome/browser/profiling_host", "//chrome/browser/profiling_host",
# TODO(crbug.com/40228447): break this dep when favicon is in its own target # TODO(crbug.com/40228447): break this dep when favicon is in its own target
- "//chrome/browser/share", - "//chrome/browser/share",
"//chrome/browser/ui",
# TODO(358041220): There is a circular_dependency of `cookie_controls:impl` module # 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",
"//chrome/browser/search_engine_choice:impl", "//chrome/browser/search_engine_choice:impl",
"//chrome/browser/search_engines", "//chrome/browser/search_engines",
@@ -28,7 +28,7 @@ Remove this dead code which brings a dependency on rustc
"//chrome/browser/sharing:buildflags", "//chrome/browser/sharing:buildflags",
"//chrome/browser/signin", "//chrome/browser/signin",
"//chrome/browser/signin:identity_manager_provider", "//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/calendar:mojo_bindings",
"//chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption:mojo_bindings", "//chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption:mojo_bindings",
"//chrome/browser/profile_resetter:profile_reset_report_proto", "//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/support_tool:support_tool_proto",
"//chrome/browser/sync_file_system/drive_backend:sync_file_system_drive_proto", "//chrome/browser/sync_file_system/drive_backend:sync_file_system_drive_proto",
"//chrome/browser/ui:webui_name_variants", "//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/policy/messaging_layer/proto:crd_event_proto",
"//chrome/browser/search_engine_choice", "//chrome/browser/search_engine_choice",
"//chrome/browser/search_engines", "//chrome/browser/search_engines",
@@ -62,17 +62,17 @@ Remove this dead code which brings a dependency on rustc
"//components/query_parser", "//components/query_parser",
"//components/reading_list/core", "//components/reading_list/core",
"//components/reading_list/features:flags", "//components/reading_list/features:flags",
--- src/chrome/test/BUILD.gn.orig 2024-12-08 18:44:32.671357320 +0100 --- src/chrome/test/BUILD.gn.orig 2025-04-11 12:13:12.932314099 +0200
+++ src/chrome/test/BUILD.gn 2024-12-18 12:39:55.361350918 +0100 +++ src/chrome/test/BUILD.gn 2025-04-11 19:53:28.092504094 +0200
@@ -2013,7 +2013,6 @@ if (!is_android) { @@ -2163,7 +2163,6 @@ if (!is_android) {
"//chrome/browser/web_applications:prevent_close_test_support", "//chrome/browser/web_applications:prevent_close_test_support",
"//chrome/browser/web_applications:web_applications_test_support", "//chrome/browser/web_applications:web_applications_test_support",
"//chrome/browser/webaudio:browser_tests", "//chrome/browser/webaudio:browser_tests",
- "//chrome/browser/webauthn:test_support", - "//chrome/browser/webauthn:test_support",
"//chrome/common:version_header", "//chrome/common:version_header",
"//chrome/common/companion/visual_query:flags",
"//chrome/common/privacy_budget:test_support", "//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:test_support",
"//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto", "//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto",
"//components/proxy_config", "//components/proxy_config",
@@ -80,7 +80,7 @@ Remove this dead code which brings a dependency on rustc
"//components/reading_list/core", "//components/reading_list/core",
"//components/reading_list/features:flags", "//components/reading_list/features:flags",
"//components/resources", "//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:test_support",
"//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto", "//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto",
"//components/proxy_config", "//components/proxy_config",
@@ -88,7 +88,7 @@ Remove this dead code which brings a dependency on rustc
"//components/query_parser", "//components/query_parser",
"//components/reading_list/core", "//components/reading_list/core",
"//components/reading_list/core:test_support", "//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/metrics_proto",
"//third_party/microsoft_webauthn", "//third_party/microsoft_webauthn",
"//third_party/re2", "//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/webrtc_overrides:webrtc_component",
"//third_party/widevine/cdm:headers", "//third_party/widevine/cdm:headers",
"//third_party/zlib/google:compression_utils", "//third_party/zlib/google:compression_utils",
@@ -8314,8 +8310,6 @@ test("unit_tests") { @@ -8115,8 +8111,6 @@ test("unit_tests") {
"//chrome/browser/ui/zoom", "//chrome/browser/upgrade_detector:build_state_observer",
"//chrome/browser/ui/zoom:unit_tests", "//chrome/browser/user_annotations",
"//chrome/browser/web_applications:web_applications_test_support", "//chrome/browser/web_applications:web_applications_test_support",
- "//chrome/browser/webauthn:test_support", - "//chrome/browser/webauthn:test_support",
- "//chrome/browser/webauthn/proto", - "//chrome/browser/webauthn/proto",
"//chrome/common/accessibility:mojo_bindings", "//chrome/common/read_anything:mojo_bindings",
"//chrome/services/speech:unit_tests", "//chrome/services/speech:unit_tests",
"//components/app_constants", "//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=8a9d741f4c4cf8170d5c50a336d51fe5d1b16ce8
* https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit?h=122-based&id=6a11e9169f5889883bf63a3522d0c3f8f23552b0 * 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.orig 2025-04-11 12:05:19.397475381 +0200
+++ src/components/search_engines/BUILD.gn +++ src/components/search_engines/BUILD.gn 2025-04-11 20:18:41.424101555 +0200
@@ -66,7 +66,6 @@ static_library("search_engines") { @@ -65,7 +65,6 @@ static_library("search_engines") {
"//components/google/core/common", "//components/google/core/common",
"//components/keyed_service/core", "//components/keyed_service/core",
"//components/prefs", "//components/prefs",
- "//components/sync", - "//components/sync",
"//components/webdata/common", "//components/webdata/common",
"//third_party/metrics_proto", "//third_party/metrics_proto",
] "//third_party/search_engines_data:prepopulated_engines",
--- src/electron/BUILD.gn.orig --- src/electron/BUILD.gn.orig 2025-04-11 12:02:41.207130337 +0200
+++ src/electron/BUILD.gn +++ src/electron/BUILD.gn 2025-04-11 20:18:41.424101555 +0200
@@ -1204,6 +1204,8 @@ if (is_mac) { @@ -1210,6 +1210,8 @@ if (is_mac) {
"//electron/buildflags", "//third_party/electron_node:libnode",
"//ui/strings", "//ui/strings",
] ]
+ +
@@ -178,12 +178,15 @@ Inspired by:
// True if the dictionary has been loaded. Otherwise false. // True if the dictionary has been loaded. Otherwise false.
bool is_loaded_; bool is_loaded_;
--- src/device/fido/BUILD.gn.orig 2024-12-08 18:34:58.231340083 +0100 --- src/device/fido/BUILD.gn.orig 2025-04-11 12:05:20.416153184 +0200
+++ src/device/fido/BUILD.gn 2024-12-18 12:59:49.294713941 +0100 +++ src/device/fido/BUILD.gn 2025-04-11 20:19:44.976088243 +0200
@@ -163,36 +163,6 @@ component("fido") { @@ -159,25 +159,6 @@ component("fido") {
"device_operation.h", "device_operation.h",
"device_response_converter.cc", "device_response_converter.cc",
"device_response_converter.h", "device_response_converter.h",
- "enclave/attestation.cc",
- "enclave/attestation.h",
- "enclave/attestation_report.h",
- "enclave/constants.cc", - "enclave/constants.cc",
- "enclave/constants.h", - "enclave/constants.h",
- "enclave/enclave_authenticator.cc", - "enclave/enclave_authenticator.cc",
@@ -200,42 +203,28 @@ Inspired by:
- "enclave/transact.h", - "enclave/transact.h",
- "enclave/types.cc", - "enclave/types.cc",
- "enclave/types.h", - "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.cc",
"fido_authenticator.h", "fido_authenticator.h",
"fido_device.cc", "fido_device.cc",
@@ -257,7 +227,6 @@ component("fido") { @@ -242,7 +223,6 @@ component("fido") {
] ]
deps += [ deps += [
- "//components/sync/protocol:protocol", - "//components/sync/protocol:protocol",
"//device/fido/enclave/verify/proto:proto", "//device/fido/enclave/proto:proto",
"//services/device/public/cpp/hid", "//services/device/public/cpp/hid",
"//services/device/public/cpp/usb", "//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.orig 2025-04-11 12:05:20.421153186 +0200
+++ src/device/fido/fido_discovery_factory.cc 2024-12-18 13:01:00.958049095 +0100 +++ src/device/fido/fido_discovery_factory.cc 2025-04-11 20:18:43.280101088 +0200
@@ -13,7 +13,6 @@ @@ -12,7 +12,6 @@
#include "device/fido/aoa/android_accessory_discovery.h" #include "device/bluetooth/bluetooth_adapter_factory.h"
#include "device/fido/cable/fido_cable_discovery.h" #include "device/fido/cable/fido_cable_discovery.h"
#include "device/fido/cable/v2_discovery.h" #include "device/fido/cable/v2_discovery.h"
-#include "device/fido/enclave/enclave_discovery.h" -#include "device/fido/enclave/enclave_discovery.h"
#include "device/fido/features.h" #include "device/fido/features.h"
#include "device/fido/fido_discovery_base.h" #include "device/fido/fido_discovery_base.h"
#include "device/fido/hid/fido_hid_discovery.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>> std::optional<std::unique_ptr<FidoDiscoveryBase>>
FidoDiscoveryFactory::MaybeCreateEnclaveDiscovery() { FidoDiscoveryFactory::MaybeCreateEnclaveDiscovery() {
@@ -268,3 +257,15 @@ Inspired by:
"//components/variations", "//components/variations",
"//components/variations/field_trial_config", "//components/variations/field_trial_config",
"//components/variations/proto", "//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; 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.orig 2025-04-20 19:22:39.910671377 +0200
+++ 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 2025-04-20 21:05:46.878482748 +0200
@@ -19,6 +19,7 @@ @@ -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/allocator/allocator.h"
#include "third_party/blink/renderer/platform/wtf/get_ptr.h" #include "third_party/blink/renderer/platform/wtf/get_ptr.h"
+#include "third_party/blink/renderer/platform/wtf/text/code_point_iterator.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 CodePointIterator;
class String; 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/unofficial.gni.orig 2025-04-11 21:14:18.899221050 +0200
+++ src/third_party/electron_node/BUILD.gn 2024-11-12 23:46:45.817651900 +0100 +++ src/third_party/electron_node/unofficial.gni 2025-04-11 21:14:28.715218444 +0200
@@ -40,6 +40,7 @@ declare_args() { @@ -143,7 +143,6 @@ template("node_gn_build") {
node_release_urlbase = "" "deps/googletest:googletest_config",
]
# Allows downstream packagers (eg. Linux distributions) to build Electron against system shared libraries. public_deps = [
+ use_system_ada = false - "deps/ada",
use_system_cares = false "deps/uv",
use_system_nghttp2 = false "//electron:electron_js2c",
use_system_llhttp = false "deps/simdjson",
@@ -260,7 +261,6 @@ component("node_lib") { @@ -183,6 +182,8 @@ template("node_gn_build") {
deps = [ configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
":node_js2c_exec", configs += [ "//build/config/gcc:symbol_visibility_default" ]
"deps/googletest:gtest", }
- "deps/ada", + libs = [ "ada" ]
"deps/base64", + include_dirs = []
"deps/simdutf", if (use_system_llhttp) {
"deps/uvwasi", libs += [ "llhttp" ]
@@ -291,6 +291,11 @@ component("node_lib") { } else {
"deps/postject"
]
libs = []
+ if (use_system_ada) {
+ libs += [ "ada" ]
+ } else {
+ deps += [ "deps/ada" ]
+ }
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> +#include <gtest/gtest_prod.h>
#endif // TESTING_GTEST_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 --- src/third_party/electron_node/deps/googletest/unofficial.gni.orig 2025-04-11 12:06:33.194184022 +0200
+++ b/third_party/electron_node/deps/googletest/BUILD.gn 2022-07-29 19:21:57.655767809 +0200 +++ src/third_party/electron_node/deps/googletest/unofficial.gni 2025-04-11 20:55:32.455520889 +0200
@@ -1,61 +1,11 @@ @@ -1,3 +1,5 @@
-config("gtest_config") {
- include_dirs = [ "include" ]
- defines = [ "UNIT_TEST" ]
-}
+import("//build/config/linux/pkg_config.gni") +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") { - gypi_values = exec_script("../../tools/gypi_to_gn.py",
- include_dirs = [ - [ rebase_path("googletest.gyp") ],
- "include", - "scope",
- "." # src - [ "googletest.gyp" ])
- ]
+pkg_config("gtest_config") {
+ packages = [ "gtest" ]
+}
+source_set("gtest") { source_set(target_name) {
public_configs = [ ":gtest_config" ] forward_variables_from(invoker, "*")
- - testonly = true
- cflags_cc = [ - include_dirs = [
- "-Wno-c++98-compat-extra-semi", - "include",
- "-Wno-unused-const-variable", - ".",
- "-Wno-unreachable-code-return", - ]
- ] - defines = [
- - "GTEST_HAS_POSIX_RE=0",
- defines = [ - "GTEST_LANG_CXX11=1",
- "GTEST_HAS_POSIX_RE=0", - ]
- "GTEST_LANG_CXX11=1", - sources = gypi_values.googletest_sources
- ] + public_configs = [ ":googletest_config" ]
- }
- 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",
- ]
}
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" #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 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 --- src/ui/ozone/platform/drm/gpu/hardware_display_controller.cc.orig 2025-04-11 12:05:30.840157601 +0200
+++ chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc +++ src/ui/ozone/platform/drm/gpu/hardware_display_controller.cc 2025-04-11 20:45:59.075673214 +0200
@@ -20,7 +20,7 @@ @@ -18,7 +18,7 @@
#include "base/logging.h"
#include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros.h"
#include "base/ranges/algorithm.h"
#include "base/trace_event/typed_macros.h" #include "base/trace_event/typed_macros.h"
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h" -#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
+#include <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/__init__.py
../../build/scripts/blinkbuild/name_style_converter.py ../../build/scripts/blinkbuild/name_style_converter.py
validate_web_idl.py validate_web_idl.py
--- a/mojo/public/tools/bindings/mojom.gni --- src/mojo/public/tools/bindings/mojom.gni.orig 2025-04-11 12:05:21.530272509 +0200
+++ b/mojo/public/tools/bindings/mojom.gni +++ src/mojo/public/tools/bindings/mojom.gni 2025-04-11 20:56:50.579500868 +0200
@@ -699,7 +699,7 @@ @@ -802,7 +802,7 @@ template("mojom") {
remote_worker = "large" remote_worker = "large"
custom_processor = "mojom_parser" custom_processor = "mojom_parser"
script = mojom_parser_script script = mojom_parser_script
@@ -126,7 +126,7 @@ Unbundle assorted lexing/parsing/transpiling tools written in Python.
+ inputs = mojom_parser_sources + [ build_metadata_filename ] + inputs = mojom_parser_sources + [ build_metadata_filename ]
sources = sources_list sources = sources_list
public_deps = parser_deps 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.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 +++ src/third_party/blink/renderer/build/scripts/scripts.gni 2024-12-18 13:24:36.436191575 +0100
@@ -18,10 +18,6 @@ if (is_ios) { @@ -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/__init__.py",
"//third_party/jinja2/_identifier.py", "//third_party/jinja2/_identifier.py",
"//third_party/jinja2/async_utils.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 From 3fb3bab213348955edc18a051f9c3f86241309e8 Mon Sep 17 00:00:00 2001
+++ src/third_party/electron_node/deps/simdutf/BUILD.gn 2023-10-17 19:29:35.882793400 +0200 From: LN Liberda <lauren@selfisekai.rocks>
@@ -1,15 +1,26 @@ Date: Thu, 13 Mar 2025 20:01:32 -0700
+declare_args() { Subject: [PATCH] unbundle: add simdutf
+ use_system_simdutf = false
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") { +pkg_config("system_simdutf") {
+ if(use_system_simdutf) { + packages = [ "simdutf" ]
+ libs = ["simdutf"] +}
+ } else { +
include_dirs = [ "." ] +source_set("simdutf") {
+ } + public_configs = [ ":system_simdutf" ]
} + public_deps = [ ":header" ]
+}
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",
]
+ }
}

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(