electron/script
electron-roller[bot] 3736195d15
chore: bump node to v24.16.0 (41-x-y) (#51746)
* chore: bump node in DEPS to v24.16.0

* chore: remove upstreamed patch

Node.js restored fs patchability in the ESM loader upstream, making
the fix_lazyload_fs_in_esm_loaders_to_apply_asar_patches.patch
obsolete (the patch's exact change is now in lib/internal/modules/
esm/{load,resolve,translators}.js).

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

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 72638dbe1f6a60f76570c1cfb99d088768ec19e0)
(cherry picked from commit 0409547133609051b1c9c26ce661230967a9b08a)

* fix(patch): re-add experimental_fetch member after upstream cleanup

Upstream removed the experimental_fetch field from EnvironmentOptions,
but Electron's patch still registers --experimental-fetch as a CLI
option bound to that field. Re-add the member so the option compiles.

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

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 6fd93703ca7fbe3b6860b84d812e8318614e7b35)
(cherry picked from commit 46b28d26083e3d68b3d2dd03878b77ca0a97ee76)

* fix(patch): cast const away when freeing uv_cpu_info_t.model

libuv 1.52.1 typed uv_cpu_info_t.model as const char*, but uv__free
takes void*. Electron builds with -Werror,-Wincompatible-pointer-types-
discards-qualifiers, so add a cast. The memory is allocated via strdup
so the cast is safe.

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

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 90d1009b3fea0996aa68f70aaacbfe78266f8c3d)
(cherry picked from commit 07827c6841805eada8c37b83831938db98d6aa57)

* fix(patch): silence sign-compare warning in sessionVarintGetSafe
Cast int nBuf to size_t when comparing with sizeof(aCopy) so the
bundled sqlite3 amalgamation compiles under -Werror,-Wsign-compare.

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

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 379d109aae3ec89956c07c32a7c324235a15921c)

* test: move root package.json aside in node spec runner

third_party/electron_node lives under Chromium's src/, whose package.json
("type": "module") is always an ancestor of the Node.js test tree. Upstream
assumes no package.json sits above the tests, so that ancestor changes how
test files and fixtures resolve their module type: it disables module-syntax
detection (breaking test-compile-cache-typescript-esm) and emits
MODULE_TYPELESS_PACKAGE_JSON warnings that break tests asserting clean stderr
(test-esm-detect-ambiguous, test-esm-import-meta-main-eval,
test-output-coverage-with-mock).

Move src/package.json aside for the duration of the run so the environment
matches upstream exactly, then restore it. The original is kept in a sibling
backup file so an interrupted/killed run self-heals on the next invocation
rather than leaving src/package.json missing.

Ref: Unable to locate reference

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 29abd0cebaea89c04be8806ac8c01941061dbfe6)
(cherry picked from commit 3190c995cdf6826a18175151fb96fc76ca0f3387)

* fix(patch): mark test-macos-app-sandbox as flaky

The test copies the Electron binary into a standalone .app bundle and
code-signs it; under parallel suite runs this races with dyld resolving
the Electron Framework rpath and intermittently aborts (SIGABRT). It
passes reliably when run alone. Mark it flaky so flakes don't fail CI.

Ref: Unable to locate reference

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 3853529f14a0cece021b5b123ce1b4b7ae2cea78)
(cherry picked from commit 2dfc1ae1d1e9b4a53ff365d96df29d598fc54e1f)

* test: disable test-tls-set-default-ca-certificates-extra-override

setDefaultCACertificates() round-trips the default CA set through
BoringSSL's X509_STORE, which dedups a duplicate-subject root (DigiCert
Global Root CA) that OpenSSL keeps. The set therefore loses one cert on
re-add (149 -> 148), so the test's assertEqualCerts round-trip check
fails under Electron's BoringSSL. The sibling -recovery test is disabled
for the same reason.

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

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 3dbc596e17b84c81503653a3034a82a1ad5ac88f)
(cherry picked from commit 44f40947b23acde6d1b09d6361f2f53943c3ad6b)

* fix(patch): mark test-runner watch tests as flaky

test-run-watch-repeatedly, test-run-watch-run-duration and
test-run-watch-without-file race under parallel suite load: the watcher
fires an extra re-run before the assertion, so the expected single-run
output ("tests 1") arrives with accumulated subtests. All three pass in
isolation.

Ref: https://github.com/nodejs/node/issues/44898

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 0f9c327b375e3224dae49bfecbb311f5a54990e4)
(cherry picked from commit 792e1e5c6772408c22071d3019157d6d027fd353)

* chore(patches): update libuv const-cast patch management

Combine the Windows libuv cpu_info const-cast update into the existing
chore_cast_const_away_when_freeing_uv_cpu_info_t_model.patch and keep
a single patch-management commit for the final exported patch series.

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit c590614cb51f5f88f63ade4777555f438554fe3c)
(cherry picked from commit 0506b64d3f966c9d2a982c2fad7c2ccf17a7614c)

* fix(patch): add UV_LOOP_INTERRUPT_ON_IO_CHANGE option

Ref: https://github.com/libuv/libuv/pull/3308

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 31b7fb0e6d5012f3742ffc73a0d2c475f84b1676)

* fix(patch): update GetIsolate removal for inspector NetworkAgent refactor

Upstream refactored the inspector network agent helpers into
NetworkAgent:: methods, shifting where context->GetIsolate() appeared
and reorganizing node_contextify's PropertyDefinerCallback. Re-applied
the deprecated context->GetIsolate() -> v8::Isolate::GetCurrent()
replacements to the new structure.

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

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix: drop dangling .patches entries for non-existent patch files

The cherry-pick of the cast-const fix (343078bf01) erroneously added
four entries to patches/node/.patches that reference patch files which
were never part of the 41-x-y branch (externalpointertypetag, thinlto
symbol preservation, v8 code cache, and startup snapshot generation).
The missing files caused `e sync` to abort while reading patches.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore: update patches (trivial only)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test: disable test-vm-global-contextual-store

This new upstream test asserts that a strict-mode store to an undeclared
global in a vm context throws ReferenceError. Chromium's V8 contextify
global-proxy interceptor instead creates the property, so the assertion
is fundamentally incompatible with Electron's V8 and cannot be guarded
to pass.

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

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Claude <noreply@anthropic.com>
2026-06-09 16:33:50 -04:00
..
actions test: rerun failed tests individually (#48205) 2025-09-24 13:35:14 -07:00
codesign chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
lib chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
lint-plugins chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
node fix: pass root_gen_dir from GN to generate_node_headers.py (#50873) 2026-04-10 18:29:49 +02:00
release chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
zip_manifests fix: enable shader-f16 on windows (#48342) 2025-10-14 15:46:12 +02:00
apply_all_patches.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
build-stats.mjs chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07: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 chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
cp.mjs build: drop shx dependency (#47293) 2025-05-30 10:59:11 +02:00
create-api-json.mjs chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
dbus_mock.py fix: linux test shutdown error "AttributeError: type object 'DBusTestCase' has no attribute 'stop_dbus'" (#51150) 2026-04-19 01:28:15 -07:00
doc-only-change.js chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
export_all_patches.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
gen-filenames.ts chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
gen-hunspell-filenames.js chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
gen-libc++-filenames.js chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07: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 chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -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 (#51165) 2026-04-20 15:07:45 -05: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 chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
gn-check.js build: don't use //third_party/depot_tools in gn build scripts (#50988) 2026-04-13 09:31:19 +02:00
gn-plist-but-with-hashes.js chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
lint-roller-chromium-changes.mjs chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
lint.js chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
nan-spec-runner.js chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
node-disabled-tests.json chore: bump node to v24.16.0 (41-x-y) (#51746) 2026-06-09 16:33:50 -04:00
node-spec-runner.js chore: bump node to v24.16.0 (41-x-y) (#51746) 2026-06-09 16:33:50 -04:00
patch-up.js chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
patches-mtime-cache.py chore: bump pylint to 2.17 (#41576) 2024-03-21 09:48:23 -04:00
patches-stats.mjs chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
run-clang-format.py build: fix clang-format duplicate message (#45235) 2025-01-20 11:05:40 +01:00
run-clang-tidy.ts chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
run-if-exists.js chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07:00
spec-runner.js chore: use oxfmt and oxlint in 41-x-y (#51443) 2026-05-02 15:22:30 -07: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 (#49176) 2025-12-10 14:04:14 -05:00
zip-symbols.py build: apply additional compression to dsym on upload (#48930) 2025-11-13 10:43:53 +01:00