Commit Graph

30268 Commits

Author SHA1 Message Date
John Kleinschmidt
3d7d676bee test: fixup autoupdater tests failures (#51050) 2026-04-14 19:54:44 -05:00
trop[bot]
c5b0ee8a9b docs: mention pre-release installation (#51044)
* docs: pre-release installation

Co-authored-by: Erick Zhao <erick@hotmail.ca>

* Update installation.md

Co-authored-by: Niklas Wenzel <dev@nikwen.de>

Co-authored-by: Erick Zhao <erick@hotmail.ca>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Erick Zhao <erick@hotmail.ca>
2026-04-14 11:53:13 -07:00
trop[bot]
3ea2c9c760 fix: crash when closing devtools after focus (#51036)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-04-14 09:23:33 -07:00
trop[bot]
067fe3d1f1 ci: don't login to RBE for clang-tidy and gn-check (#51038)
* ci: don't login to RBE for clang-tidy

Co-authored-by: John Kleinschmidt <kleinschmidtorama@gmail.com>

* ci: don't login to RBE for gn check

Co-authored-by: John Kleinschmidt <kleinschmidtorama@gmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <kleinschmidtorama@gmail.com>
2026-04-14 16:05:52 +02:00
trop[bot]
75a7ebc7c0 refactor: migrate api::Extensions to cppgc (#50956)
* refactor: migrate api::Extensions to cppgc

Co-authored-by: Charles Kerr <charles@charleskerr.com>

* chore: update patch indices

Co-authored-by: Charles Kerr <charles@charleskerr.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-04-14 01:04:24 -05:00
trop[bot]
64055f27e7 feat: add id, groupId, and groupTitle support for Windows notifications (#50895)
* feat: allow to set id and groupId

Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>

* feat: use Id's without hash but check length

Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>

* feat: adds visual grouping via groupTitle

Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>

* test: tests added for id, groupId and groupTitle

Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>

* fix: unused vars on Mac and Linux

Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>

* fix: remove redundant parameter

Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>

* fix: add doc links for id and group

Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>

* fix: throw if groupId is missing

Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>

* fix: test

Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Jan Hannemann <jan.hannemann@outlook.com>
2026-04-13 16:01:01 -07:00
trop[bot]
09156151c4 fix: dangling raw_ptr api::Protocol::protocol_registry_ (#50951)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-04-13 16:18:25 -05:00
trop[bot]
b07503d468 ci: capture fatal errors in clang problem matcher (#50998)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2026-04-13 14:22:59 -05:00
trop[bot]
ef664710a0 chore: do not patch fake_desktop_media_list.cc (#50999)
chore: do not patch files we do not use

do not patch fake_desktop_media_list.cc, .h

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
v42.0.0-beta.3
2026-04-13 13:52:19 -04:00
trop[bot]
61954b457b fix: include missing metadata in trace files (#51007)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Niklas Wenzel <dev@nikwen.de>
2026-04-13 13:20:20 -04:00
trop[bot]
b9c4e815ef fix: avoid window drag during corner resize in MAS build (#51001)
* fix: avoid window drag during corner resize in MAS build

Co-authored-by: Kunal Dubey <xakep8@protonmail.com>

* chore: update chromium patch offsets

Co-authored-by: Kunal Dubey <xakep8@protonmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Kunal Dubey <xakep8@protonmail.com>
2026-04-13 09:49:22 -04:00
trop[bot]
48cc1126bd ci: split macos-x64 tests into 3 shards (#50994)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Sam Attard <sattard@anthropic.com>
2026-04-13 09:47:53 -04:00
trop[bot]
d146c4f019 fix: nodeIntegrationInWorker not working in AudioWorklet (#51005)
* fix: nodeIntegrationInWorker not working in AudioWorklet

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

* fix: deadlock on Windows when destroying non-AudioWorklet worker contexts

The previous change kept the WebWorkerObserver alive across
ContextWillDestroy so the worker thread could be reused for the next
context (AudioWorklet thread pooling, Chromium CL:5270028). This is
correct for AudioWorklet but wrong for PaintWorklet and other worker
types, which Blink does not pool — each teardown destroys the thread.

For those worker types, ~NodeBindings was deferred to the thread-exit
TLS callback. By that point set_uv_env(nullptr) had already run, so on
Windows the embed thread was parked in GetQueuedCompletionStatus with a
stale async_sent latch that swallowed the eventual WakeupEmbedThread()
from ~NodeBindings. uv_thread_join then blocked forever, deadlocking
renderer navigation. The worker-multiple-destroy crash case timed out
on win-x64/x86/arm64 as a result. macOS/Linux (epoll/kqueue) don't have
the latch and were unaffected.

Plumb is_audio_worklet from WillDestroyWorkerContextOnWorkerThread into
ContextWillDestroy. For non-AudioWorklet contexts, restore the
pre-existing behavior of calling lazy_tls->Set(nullptr) at the end of
the last-context cleanup so ~NodeBindings runs while the worker thread
is still healthy. AudioWorklet continues to keep the observer alive so
the next pooled context can share NodeBindings.

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

* chore: address review feedback

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

* fix: stop embed thread before destroying environments in worker teardown

FreeEnvironment (called via environments_.clear()) runs uv_run to drain
handle close callbacks. On Windows, both that uv_run and the embed
thread's PollEvents call GetQueuedCompletionStatus on the same IOCP
handle. IOCP completions are consumed by exactly one waiter, so the
embed thread can steal completions that FreeEnvironment needs, causing
uv_run to block indefinitely. On Linux/Mac epoll_wait/kevent can wake
multiple waiters for the same event so the race doesn't manifest.

Add NodeBindings::StopPolling() which cleanly joins the embed thread
without destroying handles or the loop, and allows PrepareEmbedThread +
StartPolling to restart it later. Call StopPolling() in
WebWorkerObserver::ContextWillDestroy before environments_.clear() so
FreeEnvironment's uv_run is the only thread touching the IOCP.

Split PrepareEmbedThread's handle initialization (uv_async_init,
uv_sem_init) from thread creation via a new embed_thread_prepared_ flag
so the handles survive across stop/restart cycles for pooled worklets
while the embed thread itself can be recreated.

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

* chore: address outstanding feedback

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-04-13 07:59:06 -05:00
Charles Kerr
5f3c30b8e5 refactor: SafeV8Function to be backed by cppgc (#50397) (#50976)
* refactor: SafeV8Function to be backed by cppgc

* spec: focus renderer before attempting paste

* spec: remove listeners to prevent leak on failed tests

Co-authored-by: Robo <hop2deep@gmail.com>
2026-04-13 14:19:24 +09:00
trop[bot]
1a67d03b0b fix: simpleFullScreen exits when web content calls requestFullscreen (#50987)
fix: simpleFullScreen exits when web content calls requestFullscreen

SetHtmlApiFullscreen only checked IsFullscreen() to detect that the
window was already fullscreen, missing the simple-fullscreen case on
macOS. When web content triggered requestFullscreen the code fell
through to SetFullScreen(true) which toggled simple fullscreen off.

Include IsSimpleFullScreen() in the guard so the HTML-API fullscreen
state is updated without touching the window's fullscreen mode.

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-04-12 20:48:08 -07:00
trop[bot]
043377523a fix: preference initialization with app.setPath('sessionData') (#50908)
fix: preference initialization with app.setPath('sessionData')

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Niklas Wenzel <dev@nikwen.de>
2026-04-12 10:15:05 -05:00
trop[bot]
d1c3b41f24 chore: add Claude Code skill for Node.js upgrades (#50970)
Adds a new skill mirroring the Chromium upgrade skill, adapted for
Node.js rolls. Covers patch conflict resolution, build fix workflow,
commit guidelines, and documents high-churn patches and major version
upgrade patterns (V8 bridge patch deletions, BoringSSL complexity).

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-04-11 22:05:15 -07:00
trop[bot]
3bde2f38a8 chore: remove some unnecessary diffs in refactor_expose_file_system_access_blocklist.patch (#50965)
chore: remove some unnecessary diffs in refactor_expose_file_system_access_blocklist.patch

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-04-11 23:07:10 -05:00
trop[bot]
c39e3d5687 fix: respect iframe sandbox flags for external protocol navigation (#50962)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Sam Attard <sattard@anthropic.com>
2026-04-11 20:48:37 -05:00
trop[bot]
316351f673 build: update build-tools to latest (#50800)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <sam@electronjs.org>
2026-04-11 16:52:49 -04:00
trop[bot]
ad5b435f43 fix: clamp autofill popup bounds to the requesting frame viewport (#50945)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Sam Attard <sattard@anthropic.com>
2026-04-11 13:43:06 -07:00
trop[bot]
9c1e9e0237 fix: apply IsSafeRedirectTarget to net module redirects (#50930)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Sam Attard <sattard@anthropic.com>
2026-04-11 10:46:11 -05:00
trop[bot]
844bbf8484 fix: use audit token instead of PID for parent code-signature check (#50936)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Sam Attard <sattard@anthropic.com>
2026-04-11 09:13:01 -05:00
trop[bot]
a9f2f95d64 fix: validate OSR frame geometry against shared-memory mapping size (#50941)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Sam Attard <sattard@anthropic.com>
2026-04-11 09:12:53 -05:00
trop[bot]
30cf3882de fix: restrict window.open features to allowlisted BrowserWindow options (#50949)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Sam Attard <sattard@anthropic.com>
2026-04-11 08:54:21 -05:00
trop[bot]
ec57a84297 refactor: migrate api::ServiceWorkerContext to cppgc (#50950)
refactor: migrate api::ServiceWorkerContext to cppgc

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-04-11 08:08:27 -05:00
trop[bot]
a078ed77c5 fix: scope extension tab-ID resolution to the calling BrowserContext (#50923)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Sam Attard <sattard@anthropic.com>
2026-04-11 07:36:13 -05:00
trop[bot]
10fb5b39c5 fix: use ShowItemInFolder for devtools showItemInFolder embedder message (#50938)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Sam Attard <sattard@anthropic.com>
2026-04-11 07:33:04 -05:00
trop[bot]
4bd7aa8d98 fix: remove decorateURL from default_app (#50897)
remove decorateURL from default_app

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Michaela Laurencin <35157522+mlaurencin@users.noreply.github.com>
2026-04-11 09:47:45 +02:00
David Sanders
70a321634c build: don't use //third_party/depot_tools in gn build scripts (#50922)
build: don't use //third_party/depot_tools in gn build scripts (#50858)
2026-04-11 09:46:52 +02:00
Robo
aa7a81deb9 chore: backport cppgc cleanups (#50914)
Key fixes:
- Replace `base::WeakPtrFactory` with `gin::WeakCellFactory` in
  MenuMac, MenuViews, and NetLog, since weak pointers to cppgc-managed
  objects must go through weak cells
- Replace `v8::Global<v8::Value>` with `cppgc::Persistent<Menu>` for
  the menu reference in BaseWindow
- Stop using `gin_helper::Handle<T>` with cppgc types; use raw `T*`
  and add a `static_assert` to prevent future misuse
- Add proper `Trace()` overrides for Menu, MenuMac, MenuViews, and
  NetLog to ensure cppgc members are visited during garbage collection
- Replace `SelfKeepAlive` prevent-GC mechanism in Menu with a
  `cppgc::Persistent` prevent-GC captured in `BindSelfToClosure`
- Introduce `GC_PLUGIN_IGNORE` macro to suppress
  known-safe violations: mojo::Remote fields, ObjC bridging pointers,
  and intentional persistent self-references
- Mark `ArgumentHolder` as `CPPGC_STACK_ALLOCATED()` in both Electron's
  and gin's function_template.h to silence raw-pointer-to-GC-type
  warnings
2026-04-10 19:27:41 -07:00
trop[bot]
9ecc0670fe chore: clean up clang-tidy warnings (#50918)
* chore: use emplace and use it correctly

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: redundant cast to the same type [google-readability-casting]

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: do not create objects with +new [google-objc-avoid-nsobject-new]

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: default arguments on virtual or override methods are prohibited [google-default-arguments]

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: warning: C-style casts are discouraged; use static_cast [google-readability-casting]

CFLocaleGetValue already returns CFTypeRef so that redundant static_cast was removed

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: refactor block to avoid use after move warning from clang-tidy

Looks like clang-tidy couldn't tell these were two mutually exclusive
branches so there was no actual issue, but refactoring is cleaner
anyway since it makes it more DRY.

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: C-style casts are discouraged; use static_cast [google-readability-casting]

No cast needed here, everything is already the correct type

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: C-style casts are discouraged; use static_cast/const_cast/reinterpret_cast [google-readability-casting]

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: use '= default' to define a trivial destructor [modernize-use-equals-default]

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: use range-based for loop instead [modernize-loop-convert]

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: redundant void argument list [modernize-redundant-void-arg]

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: address code review feedback

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* chore: use auto

Co-authored-by: Charles Kerr <charles@charleskerr.com>

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2026-04-10 18:21:39 -07:00
trop[bot]
4affacb4e1 fix: external resize hit targets for frameless windows on Windows (#50864)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Mitchell Cohen <mitch.cohen@me.com>
2026-04-10 13:18:29 -05:00
trop[bot]
63d2c9c9d1 fix: account for extraSize in aspect ratio min/max clamping on macOS (#50836)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: clavin <clavin@electronjs.org>
2026-04-10 14:12:04 -04:00
trop[bot]
3c8256cdcc fix: shutdown crash when unregistering power notification on windows (#50893)
* fix: crash on shutdown when unregistering power notification

Refs https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-unregistersuspendresumenotification
the handle should be the return value of registeration api
not the window handle.

Co-authored-by: deepak1556 <hop2deep@gmail.com>

* chore: remove redundant selfkeepalive

Followup to 7c0cb61b3c

Co-authored-by: deepak1556 <hop2deep@gmail.com>

* chore: fix lint

Co-authored-by: deepak1556 <hop2deep@gmail.com>

* chore: address review feedback

Co-authored-by: deepak1556 <hop2deep@gmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2026-04-10 14:10:58 -04:00
electron-roller[bot]
6e035d36e1 chore: bump chromium to 148.0.7778.5 (42-x-y) (#50841)
chore: bump chromium in DEPS to 148.0.7778.5

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
2026-04-10 14:10:01 -04:00
trop[bot]
45bc6435ce chore: remove window enlargement revert patch (#50844)
* chore: remove window enlargement revert patch

Chromium removed the `window_enlargement_` system from
DesktopWindowTreeHostWin (1771dbae), which was a workaround for an AMD
driver bug from 2013 (crbug.com/286609) where translucent HWNDs smaller
than 64x64 caused graphical glitches. Chromium confirmed this is no
longer needed and shipped the removal.

This removes the revert patch and all Electron-side code that depended
on the `kEnableTransparentHwndEnlargement` feature flag, including the
`GetExpandedWindowSize` helper and max size constraint expansion in
`NativeWindow::GetContentMaximumSize`.

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

* test: remove obsolete <64x64 transparent window test

The test was added in 2018 (#12904) to verify the AMD driver
workaround that artificially enlarged translucent HWNDs smaller than
64x64 (crbug.com/286609). The workaround set the real HWND to 64x64
and subtracted a stored window_enlargement_ from every client/window
bounds query, so getContentSize() reported the originally-requested
size even though the actual HWND was larger.

With both the Chromium window_enlargement_ system and Electron's
GetExpandedWindowSize gone, setContentSize on a transparent
thickFrame window calls SetWindowPos directly. WS_THICKFRAME windows
are subject to DefWindowProc's MINMAXINFO.ptMinTrackSize clamp on
programmatic resizes (Chromium's OnGetMinMaxInfo ends with
SetMsgHandled(FALSE), so DefWindowProc overwrites the zeroed
min-track with system defaults), which on Windows Server 2025
floors at 32x39 — hence the failing [32, 39] vs [30, 30].

The removed feature_list.cc comment explicitly flagged this test as
the blocker for retiring kEnableTransparentHwndEnlargement, so
delete it alongside the workaround it was validating.

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-04-10 13:41:18 -04:00
trop[bot]
b0b7a70f69 test: add desktopCapturer icon validation (#50819)
* chore: testing of desktopCapturer can run on arm

* fix: DesktopMediaListCaptureThread crash

Fixed a crash when Windows calls ::CoCreateInstance() in the
DesktopMediaListCaptureThread before COM is initialized.

* test: added test for desktopCapturer fetchWindowIcons

* chore: updating Chromium patch hash

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Kanishk Ranjan <68316017+KanishkRanjan@users.noreply.github.com>
v42.0.0-beta.2
2026-04-10 10:43:37 -05:00
trop[bot]
64554bcc13 refactor: migrate electron::api::Protocol to cppgc (#50870)
refactor: migrate api::Protocol to cppgc

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-04-10 16:55:59 +02:00
trop[bot]
5c1bb7126d test: add cppgc backed menu leak regression test (#50884)
* spec: add menu leak regression test

Co-authored-by: deepak1556 <hop2deep@gmail.com>

* spec: reduce menu count to remove CI flakiness

Co-authored-by: deepak1556 <hop2deep@gmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2026-04-10 15:33:32 +02:00
Charles Kerr
3087643c9c fix: guard permission handlers in File System API tests (#50865)
1. Chromium can fire unrelated permission checks (e.g. 'background-sync')
on the default session. Copy a safeguard `permission === 'fileSystem'` from
"calls twice when trying to query a read/write file handle permissions".

2. add afterEach cleanup: reset setPermissionCheckHandler(null) and
remove ipcMain listeners for 'did-create-file-handle' and
'did-create-directory-handle'.
2026-04-10 08:04:25 -05:00
trop[bot]
8e5e775e84 fix: return numeric blksize and blocks from asar fs.stat (#50877)
fix: return numeric `blksize` and `blocks` from asar `fs.stat`

Previously, `fs.stat` on files inside `.asar` archives returned
`undefined` for `blksize` and `blocks`, violating the Node.js API
contract where these fields must be `number | bigint`.

Use `4096` for `blksize` (matching the convention used by `memfs` and
the proposed `node:vfs` module in nodejs/node#61478) and compute
`blocks` as `ceil(size / 512)` (standard 512-byte block units).

Fixes #42686

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: clavin <clavin@electronjs.org>
2026-04-10 12:15:57 +02:00
trop[bot]
2a1790e0ef fix: pass root_gen_dir from GN to generate_node_headers.py (#50872)
fix: pass root_gen_dir from GN to generate_node_headers.py

PR #50828 replaced a local get_out_dir() (defaulting to 'Testing') with
the shared one from script/lib/util.py (defaulting to 'Default').
Neither default is correct because the actual output directory depends
on the active build config. Pass $root_gen_dir from the GN action so
the script always uses the correct path.

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-04-10 12:15:08 +02:00
trop[bot]
be93d72e82 ci: re-check signed commits on every PR synchronize (#50850)
The needs-signed-commits label was previously added by the lightweight
synchronize workflow but only removed by a job in build.yml gated on
`gha-done`, which requires every macOS/Linux/Windows build to finish
green. That made label removal both slow (waits on the full pipeline)
and fragile (any unrelated build failure leaves the label pinned even
after commits are properly signed).

Drop the `if` guard on the synchronize job so it re-evaluates signing
on every push, and add a removal step that runs on success when the
label is present. Force-pushing signed commits now clears the label as
soon as the check completes, with no dependency on the build pipeline.

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-04-10 12:11:52 +02:00
trop[bot]
4cc29c25e5 fix: fix inset and stop using gfx::ToFlooredRectDeprecated() (#50849)
fix: fix inset and stop using ToFlooredRectDeprecated()

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-04-10 12:11:21 +02:00
trop[bot]
acdabe464e refactor: remove unnecessary raw_ptr SavePageHandler::web_contents_ (#50848)
refactor: remove unnecessary field raw_ptr<content::WebContents> SavePageHandler::web_contents_

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-04-10 12:11:10 +02:00
trop[bot]
d74660fb3a fix: restore std::deque for dynamic crash key storage (#50839)
#47171 migrated `std::deque` to `base::circular_deque` in
`shell/common/crash_keys.cc`. However, `CrashKeyString` wraps a
`crashpad::Annotation` that holds self-referential pointers and
registers itself in a process-global linked list. `circular_deque`
relocates elements on growth (via `VectorBuffer::MoveConstructRange`),
leaving those pointers dangling — causing missing crash keys or a hung
crashpad handler (especially on macOS). The `base/containers/README.md`
warns: "Since `base::deque` does not have stable iterators and it will
move the objects it contains, it may not be appropriate for all uses."

Reverts to `std::deque`, whose block-based layout never relocates
existing elements. Adds a regression test that registers 50 dynamic
crash keys and verifies they all survive a renderer crash.

Notes: Fixed crash keys being lost and the crash reporter hanging on
macOS when many dynamic crash keys were registered.

Made-with: Cursor

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Alexey Kozy <alexey@anysphere.co>
2026-04-10 12:11:01 +02:00
trop[bot]
b8daf0b57d fix: PDF support when site isolation trials disabled (#50846)
* fix: use proper OOPIF PDF check in `StreamsPrivateAPI`

Co-authored-by: Noah Gregory <noahmgregory@gmail.com>

* fix: add `ShouldEnableSubframeZoom` override to `ElectronBrowserClient` for upstream parity

Co-authored-by: Noah Gregory <noahmgregory@gmail.com>

* fix: add `MaybeOverrideLocalURLCrossOriginEmbedderPolicy` override to `ElectronBrowserClient` for upstream parity

Co-authored-by: Noah Gregory <noahmgregory@gmail.com>

* fix: add `DoesSiteRequireDedicatedProcess` override to `ElectronBrowserClient` for upstream parity

Co-authored-by: Noah Gregory <noahmgregory@gmail.com>

* style: move `DoesSiteRequireDedicatedProcess` to correct override section

Co-authored-by: Noah Gregory <noahmgregory@gmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Noah Gregory <noahmgregory@gmail.com>
2026-04-10 12:10:25 +02:00
trop[bot]
95af3a7e78 fix: avoid crash in window.print() when prefilling native print dialog (#50853)
fix: avoid crash in window.print() when prefilling native print dialog

When UpdatePrinterSettings() fails (e.g. the printer rejects the
requested resolution), OnError() nullifies print_info_ via
ReleaseContext(). The return value was not checked, so
AskUserForSettings() passed nil to [NSPrintPanel runModalWithPrintInfo:],
crashing in PJCSessionHasApplicationSetPrinter with a null PMPrintSession.

Check the return value and fall back to UseDefaultSettings() on failure
so the dialog opens with defaults instead of crashing.

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-04-10 12:09:42 +02:00
trop[bot]
1b5f3ea40e fix: remove dangling raw_ptr api::WebContents::zoom_controller_ (#50854)
fix: remove dangling raw_ptr api::WebContents::zoom_controller_

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-04-10 12:09:29 +02:00