electron/script
electron-roller[bot] 5987d60e8e
chore: bump node to v24.15.0 (40-x-y) (#51087)
* chore: bump node in DEPS to v24.15.0

* fix(patch): adapt V8 sandboxed pointers for buffer kMaxLength

Upstream replaced the hardcoded buffer length limit with a runtime
kMaxLength variable, making the patch's regex workaround for sandbox
vs non-sandbox limits unnecessary. Dropped the test-buffer-concat.js
hunk.

Ref: https://github.com/nodejs/node/pull/61721

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(patch): adapt deprecated GetIsolate for upstream refactors

Upstream removed Uint32ToName from node_contextify.cc and
node_webstorage.cc, and renamed LookupAndCompile to
LookupAndCompileFunction in node_builtins.cc. Updated the
GetIsolate deprecation patch to match.

Ref: https://github.com/nodejs/node/pull/60846
Ref: https://github.com/nodejs/node/pull/60518

* chore: remove upstreamed patch

The fix_generate_config_gypi_needs_to_generate_valid_json patch
applied with "No changes -- Patch already applied", confirming
the fix has been incorporated upstream.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* node#60518: src: build v8 tick processor as built-in source text modules

Upstream restructured BuiltinLoader to auto-detect parameters by
source type, removing the custom parameters overload. Added a new
LookupAndCompileFunction overload for embedder scripts and updated
node_util.cc to use it. Also suppressed exit-time-destructors
warning from builtin_info.h in node_includes.h.

Ref: https://github.com/nodejs/node/pull/60518

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(patch): add LookupAndCompileFunction overload for embedder scripts

Ref: https://github.com/nodejs/node/pull/60518

* fix(patch): correct thenable snapshot for Chromium V8

The snapshot used `*` wildcards which don't match the actual output.
Regenerated with NODE_REGENERATE_SNAPSHOTS=1 to capture the correct
concrete frame + <node-internal-frames> output.

Ref: https://chromium-review.googlesource.com/c/v8/v8/+/6826001

* fix(patch): GN build files for new merve dep

Ref: https://github.com/nodejs/node/pull/61984

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(patch): adapt fileExists patch to resolve.js module reorg

Ref: https://github.com/nodejs/node/pull/61769

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(patch): adapt new crypto tests for BoringSSL

Guard aes-128-ccm test in test-crypto-authenticated.js behind cipher
availability check. Skip Ed448/X448/DSA tests in
test-crypto-key-objects-raw.js. Skip AES-KW tests in
test-webcrypto-promise-prototype-pollution.mjs.

Ref: https://github.com/nodejs/node/pull/62240
Ref: https://github.com/nodejs/node/pull/62455

* fix(patch): guard DH key test for BoringSSL

BoringSSL does not support loading DH private keys from PEM, causing
createPrivateKey to throw UNSUPPORTED_ALGORITHM.

Ref: https://github.com/nodejs/node/pull/62240

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(patch): adapt cppgc_heap patch to upstream CppHeap handling

Upstream Node moved CppHeap creation to run unconditionally before
Isolate::Initialize via settings.cpp_heap. The patch's embedder-set
params->cpp_heap was being overwritten by the new upstream default.
Fold the patch into the upstream block so settings.cpp_heap still
wins, an embedder-set params->cpp_heap is preserved, and a default
is only created when neither is provided.

Ref: https://github.com/nodejs/node/pull/58070

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(patch): normalize brotli decoder error codes for Chromium's brotli

Electron uses Chromium's brotli (via the unbundling patch), which
returns just the NAME from BrotliDecoderErrorString() instead of the
full "_ERROR_..." prefix Node's bundled brotli emits. Upstream's
web-compression spec-compliance fix (nodejs/node#62107) classifies
brotli failures as TypeError via the "ERR__ERROR_" prefix, which
doesn't match Chromium's output — so DecompressionStream surfaced a
plain Error and the WPT decompression-bad-chunks suite failed for
brotli. Normalize the emitted error code on the C++ side so the JS
layer works against either brotli build.

Ref: https://github.com/nodejs/node/pull/62107

* fix(patch): restore dropped hunks in crypto BoringSSL test patch

The cherry-pick from roller/node/41-x-y dropped the diff headers for
test-tls-client-auth.js and test-tls-peer-certificate.js (leaving
their hunks orphaned inside test-crypto.js), and dropped the
test-crypto-pqc-key-objects-ml-dsa.js block entirely. This left the
exported patch malformed (git am failed with "patch fragment without
header"). Restore the well-formed patch body so git am can apply it.

Ref: Unable to locate reference

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: update patches (trivial only)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(patch): include <cstdlib> for abort() in builtin_info.cc

node/src/builtin_info.cc (from upstream PR 60518) calls abort()
without including <cstdlib>. Upstream Node's own build tolerates
this via implicit transitive inclusion, but Electron's stricter
Chromium-style build fails with "use of undeclared identifier
'abort'". Add the explicit include.

Ref: https://github.com/nodejs/node/pull/60518

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* test: disable test-buffer-pool-untransferable on Electron 40

The test calls ArrayBuffer.prototype.transfer() on the Buffer pool's
backing ArrayBuffer and expects a TypeError. On the V8 shipped with
Electron 40's Chromium, this code path hits a "v8::FromJust Maybe
value is Nothing" fatal error inside ArrayBufferTransfer instead of
throwing — a V8 bug that was fixed in a newer V8 revision (the test
passes on main/42). This Electron line can't pick up that fix, so
skip the test.

Ref: Unable to locate reference

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-06 17:53:30 -04:00
..
actions test: rerun failed tests individually (#48205) 2025-09-24 13:35:14 -07:00
codesign build: fix code-signing for MacOS x64 tests (#50072) 2026-03-05 10:27:29 +01:00
lib build: don't use //third_party/depot_tools in gn build scripts (#50989) 2026-04-13 14:55:06 -04:00
node fix: pass root_gen_dir from GN to generate_node_headers.py (#50871) 2026-04-10 12:37:14 +02:00
release build: authenticate sudowoodo /token exchange via Actions OIDC (40-x-y) (#51054) 2026-04-14 20:44:15 -07:00
zip_manifests fix: enable shader-f16 on windows (#48342) 2025-10-14 15:46:12 +02:00
.eslintrc.json build: drop eslint-plugin-unicorn (#47676) 2025-07-08 15:20:56 +02:00
apply_all_patches.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
build-stats.mjs ci: output build cache hit rate as GHA annotation (#50368) 2026-03-19 16:46:40 +01:00
check-patch-diff.ts chore: bump chromium to 121.0.6104.0 (main) (#40418) 2023-11-03 15:37:55 -04:00
check-symlinks.js refactor: use node scheme imports in scripts (#38846) 2023-06-22 16:21:42 +02:00
copy-pipeline-segment-publish.js build: generate artifact attestions for released assets (#49767) 2026-02-11 15:34:26 -05:00
cp.mjs build: drop shx dependency (#47293) 2025-05-30 10:59:11 +02:00
create-api-json.mjs build: also lint mjs files (#44581) 2024-11-06 18:46:09 -05:00
dbus_mock.py fix: linux test shutdown error "AttributeError: type object 'DBusTestCase' has no attribute 'stop_dbus'" (#51151) 2026-04-19 01:08:04 -07:00
doc-only-change.js build: add import/order eslint rule (#44085) 2024-10-02 19:10:44 -07:00
export_all_patches.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
gen-filenames.ts feat: service worker preload scripts for improved extensions support (#44411) 2025-01-31 09:32:45 -05:00
gen-hunspell-filenames.js refactor: use node scheme imports in scripts (#38846) 2023-06-22 16:21:42 +02:00
gen-libc++-filenames.js chore: bump chromium to 140.0.7327.0 (main) (#47902) 2025-07-31 18:11:00 -04:00
generate-config-gypi.py build: fix python warnings "SyntaxWarning: invalid escape sequence '\w'" (#44650) 2024-11-14 12:27:20 +01:00
generate-deps-hash.js build: use github actions for windows (#44136) 2024-12-12 11:51:24 -05:00
generate-mas-config.py build: make is_mas_build a generated header instead of config (#43737) 2024-09-17 01:38:56 -07:00
generate-version-json.js build: add import/order eslint rule (#44085) 2024-10-02 19:10:44 -07:00
generate-zip-manifest.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
get-git-ref-paths.py build: resolve electron_version from git when building in a worktree (#51164) 2026-04-20 15:34:38 -07:00
get-git-version.py fix: only remove the 'v' prefix from the git tag name (#45132) 2025-01-13 22:36:03 -05:00
git-export-patches build: export matching patches (#41174) 2024-02-08 13:47:59 -05:00
git-import-patches build: explicitly run scripts with python3 (#33720) 2022-04-12 13:21:55 +02:00
gn-asar-hash.js build: add import/order eslint rule (#44085) 2024-10-02 19:10:44 -07:00
gn-asar.js build: add import/order eslint rule (#44085) 2024-10-02 19:10:44 -07:00
gn-check.js build: don't use //third_party/depot_tools in gn build scripts (#50989) 2026-04-13 14:55:06 -04:00
gn-plist-but-with-hashes.js refactor: use node scheme imports in scripts (#38846) 2023-06-22 16:21:42 +02:00
lint.js build: don't use //third_party/depot_tools in lint.js (#51262) 2026-04-22 16:58:44 -07:00
nan-spec-runner.js build: replace npx with lockfile-pinned binaries (#50717) 2026-04-06 16:07:36 -04:00
node-disabled-tests.json chore: bump node to v24.15.0 (40-x-y) (#51087) 2026-05-06 17:53:30 -04:00
node-spec-runner.js test: fix esm issue in node-spec-runner (#50294) 2026-03-16 21:13:30 +01:00
patch-up.js build: rewrite push-patch to use the github API instead of local git commits to ensure commits are signed (#47401) 2025-06-23 22:26:43 -07:00
patches-mtime-cache.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
patches-stats.mjs ci: change patches stats DataDog metric type to gauge (#47319) 2025-06-02 14:49:44 -04:00
run-clang-format.py build: fix clang-format duplicate message (#45235) 2025-01-20 11:05:40 +01:00
run-clang-tidy.ts build: don't use //third_party/depot_tools in gn build scripts (#50989) 2026-04-13 14:55:06 -04:00
run-if-exists.js fix: EINVAL when spawning cmd files on Windows (#41893) 2024-04-19 09:27:58 -04:00
spec-runner.js chore: bump chromium to 144.0.7527.0 (40-x-y) (#49057) 2025-11-24 16:59:42 -05:00
split-tests.js test: run visibility-state-spec.ts first (#44206) 2024-10-14 09:40:22 -04:00
start.js fix: remove killed check to allow multiple signals (#40667) 2025-10-23 15:20:04 -04:00
sysroots.json build: roll sysroots (#47710) 2025-07-14 11:27:19 -04:00
tar.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
verify-chromedriver.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
verify-ffmpeg.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
verify-mksnapshot.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
yarn.js build: upgrade yarn to 4.12.0 (#49181) 2025-12-10 19:21:46 -08:00
zip-symbols.py build: apply additional compression to dsym on upload (#48934) 2025-11-13 13:32:13 +01:00