Commit Graph

6034 Commits

Author SHA1 Message Date
trop[bot]
bc02cdf5b3 fix: move Electron help menu links to default app only (#50861)
fix: move Electron help menu links to default app only (#50629)

* fix: remove Electron links from default help menu

* fix: remove help menu entirely from default menu

* fix: move Electron help menu links to default app

* docs: update default menu items list in menu.md

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Zeenat Lawal <zeenatlawal82@gmail.com>
2026-04-09 22:36:32 +00:00
trop[bot]
b31c3efb29 feat: add setSuspended and isSuspended to globalShortcut (#50777)
Adds the ability to temporarily suspend and resume global shortcut
handling via `globalShortcut.setSuspended()` and query the current
state via `globalShortcut.isSuspended()`. When suspended, registered
shortcuts stop listening and new registrations are rejected. When
resumed, previously registered shortcuts are automatically restored.

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-04-08 11:05:39 -07:00
trop[bot]
b5fdb985f5 docs: link menu type references (#50751)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: lilianakatrina684-a11y <lilianakatrina684@gmail.com>
2026-04-06 17:27:38 -04:00
Samuel Attard
b5f2375eb6 build: derive patches upstream-head ref from script path (42-x-y) (#50740)
build: derive patches upstream-head ref from script path (#50727)

* build: derive patches upstream-head ref from script path

gclient-new-workdir.py symlinks each repo's .git/refs back to the source
checkout, so the fixed refs/patches/upstream-head was shared across all
worktrees. Parallel `e sync` runs in different worktrees clobbered each
other's upstream-head, breaking `e patches` and check-patch-diff.

Suffix the ref with an md5 of the script directory so each worktree writes
a distinct ref into the shared refs dir. Fall back to the legacy ref name
in guess_base_commit so existing checkouts keep working until next sync.

* fixup: also write legacy upstream-head ref and note it in docs
2026-04-06 16:02:42 -04:00
trop[bot]
4323fa4b06 feat: make Chrome extensions work on custom protocols (#50530)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Niklas Wenzel <dev@nikwen.de>
2026-04-02 20:09:59 -07:00
trop[bot]
199588ff02 docs: recommend subdirectory for userData to avoid Chromium conflicts (#50625)
Fixes #45414

Storing files directly in the userData root can cause naming conflicts
with Chromium's own subdirectories (Cache, GPUCache, Local Storage, etc.).
Added a recommendation to use a subdirectory such as
path.join(app.getPath('userData'), 'my-app-data') instead.

Notes: no-notes

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: lilianakatrina684-a11y <lilianakatrina684@gmail.com>
2026-04-01 20:16:13 -05:00
trop[bot]
510576fcd7 docs: add destroy method to native addon tutorials to prevent hang on quit (#50627)
Native addons that hold persistent references to callbacks, emitters,
and threadsafe functions prevent Electron from quitting cleanly since
Electron 40.5.0 due to changes in Node.js shutdown behavior. This adds
a `destroy()` method to all four native code tutorials (Swift macOS,
Obj-C macOS, C++ Linux, C++ Win32) that releases these resources and
must be called before app quit.

The destroy method resets callback and emitter references and aborts the
threadsafe function, allowing the addon's destructor to run properly.
An [!IMPORTANT] note is added to each tutorial's JavaScript wrapper
section explaining when and why to call destroy().

Fixes #50457

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Asish Kumar <officialasishkumar@gmail.com>
2026-04-01 20:15:53 -05:00
trop[bot]
5559ffa184 docs: clarify allowed characters in protocol names (#50537)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Niklas Wenzel <dev@nikwen.de>
2026-03-27 09:58:18 -04:00
trop[bot]
b310e26059 docs: update Notification support info (#50526)
This is a follow-up to
74fd10450f
(https://github.com/electron/electron/pull/48132).
The support for these has been added for Windows,
but not all documentation has been updated accordingly

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: WofWca <wofwca@protonmail.com>
2026-03-26 17:20:50 -04:00
trop[bot]
e48835e4e0 feat: add accessibilityDisplayShouldDifferentiateWithoutColor on macOS (#50409)
feat: add nativeTheme.shouldDifferentiateWithoutColor on macOS

Adds nativeTheme.shouldDifferentiateWithoutColor on macOS that maps to
NSWorkspace.accessibilityDisplayShouldDifferentiateWithoutColor. If true,
the user has indicated that they prefer UI that differentiates items with
something other than color alone. This is useful for users with color
vision deficiency.

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Robert Böhnke <robb@robb.is>
2026-03-25 15:50:57 -04:00
trop[bot]
7dfd55b8ea feat: support notification priority on Windows (#50383)
* feat: support notification priority on Windows

Add Windows notifications support urgency/priority levels.
This maps the existing `urgency` option (previously Linux-only) to
Windows toast notification priorities:

- 'critical' maps to ToastNotificationPriority_High, which sorts the
  notification above default-priority items in Action Center.
- 'normal' and 'low' both map to ToastNotificationPriority_Default.

Note that on Windows, 'critical' priority does not prevent the toast
from being auto-dismissed. Users should additionally set `timeoutType`
to 'never' for that behavior.

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

* chore: make linter happy

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

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-03-25 15:49:53 -04:00
trop[bot]
83615377dc fix: deprecate ELECTRON_SKIP_BINARY_DOWNLOAD env (#50459)
* fix: remove ELECTRON_SKIP_BINARY_DOWNLOAD

it is redundant as of electron v42
its purpose was to skip the binary download for post install script
but as of electron v42, post install script is gone
and replaced with a lazy download

it was also slated for removal in [this comment](https://github.com/electron/rfcs/pull/22#issuecomment-3387307743)

Co-authored-by: Anirudh Sevugan <sonicforces207@gmail.com>

* docs: remove ELECTRON_SKIP_BINARY_DOWNLOAD section

the env is redundant as of electron v42
so docs don't have to mention it anymore

Co-authored-by: Anirudh Sevugan <sonicforces207@gmail.com>

* docs: add ELECTRON_SKIP_BINARY_DOWNLOAD to breaking changes

Co-authored-by: Anirudh Sevugan <sonicforces207@gmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Anirudh Sevugan <sonicforces207@gmail.com>
2026-03-24 12:32:26 -04:00
trop[bot]
d23fbd5c71 docs: remove postinstall lifecycle warning (#50405)
* docs: change postinstall lifecycle to changed from electron v42

Co-authored-by: Anirudh Sevugan <sonicforces207@gmail.com>

* docs: remove postinstall lifecycle warning

Co-authored-by: Anirudh Sevugan <sonicforces207@gmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Anirudh Sevugan <sonicforces207@gmail.com>
2026-03-23 10:23:37 +01:00
trop[bot]
4ed6809aaa docs: fix markdown formatting in fuses.md (#50334)
* docs: fix markdown formatting in fuses.md

* Use bulleted list (was being run together on one line)
* Wrap ASCII diagram in code block

Co-authored-by: Ryan Zimmerman <ryan@exodus.io>

* docs: apply suggestions from code review

Co-authored-by: John Kleinschmidt <kleinschmidtorama@gmail.com>
Co-authored-by: Erick Zhao <erick@hotmail.ca>

Co-authored-by: Ryan Zimmerman <ryan@exodus.io>

* docs: fix misapplied suggestion

Co-authored-by: Ryan Zimmerman <ryan@exodus.io>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Ryan Zimmerman <ryan@exodus.io>
2026-03-18 11:01:01 -04:00
trop[bot]
3b3e1e8ef6 feat: add id and groupId options to macOS notifications (#50304)
* feat: add custom `id` property to Notification API (macOS only)

Co-authored-by: Keeley Hammond <khammond@slack-corp.com>

* feat: add `groupId` property to Notification API (macOS). Notifications with the same groupId will be visually grouped together in Notification Center

Co-authored-by: Keeley Hammond <khammond@slack-corp.com>

* fix: move validation to construction time, add empty string check, remove setters

Co-authored-by: Keeley Hammond <khammond@slack-corp.com>

* docs: clarify id/group id properties, make instance properties read-only

Co-authored-by: Keeley Hammond <khammond@slack-corp.com>

* test: update tests to reflect read-only properties

Co-authored-by: Keeley Hammond <khammond@slack-corp.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
2026-03-16 22:43:27 +00:00
trop[bot]
90f7796adb docs: update the example of webContents.setWindowOpenHandler to cla… (#50292)
docs: reorganize the comments for clarifying `webContents.setWindowOpenHandler` example

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: z0gSh1u <zx.cs@qq.com>
2026-03-16 12:53:31 -04:00
Erick Zhao
b35ed6346e docs: point pull requests guide to build tools (#50198)
* docs: point pull requests guide to build tools

* update for `--fork`
2026-03-13 16:01:41 -04:00
Erick Zhao
313e501454 feat: add ELECTRON_INSTALL_ env vars (#49981)
* feat: add `ELECTRON_INSTALL_` env vars

* add tip for available arches

* clarify!

* use `arm` instead of `armv7l`
2026-03-12 15:09:48 +01:00
Erick Zhao
1f6dbb0917 docs: add API history (G-I) (#50194) 2026-03-12 14:43:39 +01:00
Erick Zhao
5ec589a1de chore: remove remark-cli from markdown linting (#50165)
* chore: remove stale `.remarkrc` file

* build(deps): remove unused deps

* cleanup again
2026-03-11 15:39:38 -04:00
George Xu
c4c6195341 docs: document Wayland frameless window shadow behaviour (#50193)
docs: update linux frameless window docs to account for hasShadow:false
2026-03-10 18:37:38 -07:00
Erick Zhao
d4cbd6cd7d docs: fix ipc highlight lines (#50169)
Co-authored-by: Dilukshan <65407969+dilukshann7@users.noreply.github.com>
2026-03-09 17:16:06 -07:00
Kyle Cutler
2ba4872d2c feat: WebContents.getOrCreateDevToolsTargetId() (#49733)
* Feat: support getDevToolsId() on WebContents

* Rename to `getOrCreateDevToolsTargetId`

* build: use spawn instead of spawnSync for build (#49774)

* Fix build

* formatting

---------

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2026-03-09 16:32:52 -04:00
Michaela Laurencin
86f2c7cced docs: cleanup desktop-capturer doc after chromium audio capture additions (#50091)
* docs: cleanup desktop-capturer doc after chromium audio capture additions

* Apply suggestions from code review

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

* disable linter for list in note

---------

Co-authored-by: Erick Zhao <erick@hotmail.ca>
2026-03-06 15:27:00 -05:00
John Kleinschmidt
62c8db561c docs: remove release schedule in favor of https://releases.electronjs.org/schedule (#50094) 2026-03-06 15:25:00 -05:00
Charles Kerr
dc4ad2e932 fix: screen.getCursorScreenPoint() crash on Wayland (#50092)
* docs: document that getCursorScreenPoint() needs a Window on Wayland

* feat: add IsWayland() helper

* fix: Wayland crash in GetCursorScreenPoint()

fix: support Screen::GetCursorScreenPoint() on X11
2026-03-06 15:24:33 -05:00
Jan Hannemann
ddefb54c8f feat: implements cold COM activation (#49919)
* fix: implements cold COM activation

* fix: code review feedack
2026-03-05 17:30:04 -05:00
Developer-Ecosystem-Engineering
d6fc627ba5 feat: replace deprecated NSUserNotifications with User Notifications (#47817)
* refactor: replace deprecated NSUserNotifications with User Notifications

Removes deprecated NSUserNotification API, now using User Notifications

It replaces API calls for generating, scheduling, and receiving native
macOS notifications with equivalent API calls from the new framework,
or functionally equivalent implementations.

To preserve the existing Notification module API, special handling was
required in certain cases:

  - Dynamically declared notification actions
    Typically, notification actions should be declared at app launch time
    when using the User Notifications framework. However, this isn’t
    compatible with Electron’s architecture. Instead, we dynamically
    declare new notifications actions when necessary and carefully manage
    the existing actions registered at runtime.

  - Localizations for ‘Reply’ and ‘Show’ labels
    New translation files are added and processed through GRIT to add
    localizations for “Reply” and “Show” button labels which were
    initially supplied by the NSUserNotification framework.

* Use NotificationImageRetainer pattern from //chrome

* build: fix lint

* build: update config to handle --translate-gender for pak files

* test: also sign on arm64

* fix: add error handling for scheduling notification

* docs: add details to breaking changes

* docs: clarify breaking change details

* docs: add details for notifications tutorial and API documentation

---------

Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
2026-03-05 11:57:19 -08:00
Erick Zhao
55106192af docs: add more api history (C-D) (#49510) 2026-03-05 11:30:20 +01:00
Michaela Laurencin
442debdcd4 docs: correct lazy electron download breaking change to 42 (#50031) 2026-03-04 16:15:01 +01:00
electron-roller[bot]
238699221e chore: bump chromium to 147.0.7713.0 (main) (#49975)
* chore: bump chromium in DEPS to 147.0.7708.0

* chore: update patches

* chore: bump chromium in DEPS to 147.0.7709.0

* chore: bump chromium in DEPS to 147.0.7710.0

* chore: bump chromium in DEPS to 147.0.7713.0

* 7603876: Remove OriginatingProcess and RendererProcess overloads

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7603876

Co-Authored-By: Claude (claude-opus-4-20250514)

* 7596126: Clean up StoragePartitionImpl bucket data deletion.

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7596126

* fix(patch): ENABLE_GLIC guard removed upstream

Upstream removed the #if BUILDFLAG(ENABLE_GLIC) guard around
ShouldShowGlicSummarizeButton, making the code unconditional.
Restructured the patch to use #if 0 / #else / #endif instead.

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7616763

Co-Authored-By: Claude (Anthropic)

* fix(patch): Win32 API :: scope qualifiers

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7613666

Co-Authored-By: Claude (Anthropic)

* chore: update patches (trivial only)

* docs: add skip-and-recreate warning to chromium upgrade skill

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <kleinschmidtorama@gmail.com>
2026-03-03 13:54:44 +09:00
Zach Waugh
89483e7e89 feat: add macOS-only api to determine if app is currently active (#49622)
* feat: add macOS-only api to determine if app is currently active

You can `focus()` the app and get events for `did-become-active`, but there's currently not a way to directly check if your app is the active (foreground) application.

* test: add unit test for app.isActive api

* fix: ensure we hide app after showing in test

If the app is still active, it may affect other tests like dock.bounce
that behave differently depending on whether the app is active

* docs: simplify isActive api description
2026-03-02 11:47:37 -05:00
Shelley Vohr
4c3565fb88 feat: show toast dismissal reason on Windows (#49913)
* feat: show toast dismissal reason on Windows

* Update docs/api/notification.md

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

---------

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2026-03-02 11:38:51 -05:00
Shelley Vohr
3d1cc3970b fix: update label/sublabel/icon in MenuItems on open (#49678)
fix: update label/sublabel/icon in macOS item on open
2026-02-27 12:47:05 -05:00
zonescape
b9a09acff3 docs: mark "Show hidden files" file dialog setting as deprecated on Linux (#46926)
* fix: don't overwrite "Show hidden files" setting on Linux/GTK

* docs: deprecate showHiddenFiles property in dialogs on Linux

* docs: mark Electron 42 as the removal date for this feature

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-02-25 11:05:01 -05:00
David Sanders
25db585a23 docs: fix some string enum typings (#49923) 2026-02-24 16:11:22 +01:00
Andre Hora
481e224992 docs: remove documentation link to discontinued Touch Bar Simulator (#49899)
Remove link to discontinued Touch Bar Simulator

https://github.com/sindresorhus/touch-bar-simulator is archived.

> This app is discontinued as it no longer works because of changes in macOS.
2026-02-23 15:04:31 -05:00
Erick Zhao
19d0c072d5 feat: lazy electron download (#49328)
* feat: lazy electron download

* better error messaging?

* add breaking changes script doc

* add binary download step to install instructions

* respect no binary env var
2026-02-20 15:35:38 -05:00
Niklas Wenzel
5ddd8a0200 feat: add support for --experimental-transform-types (#49711)
* feat: add support for `--experimental-transform-types`

* chore: add tests

* docs: add `--experimental-transform-types` to docs
2026-02-19 20:27:49 +01:00
reito
491fa0442b fix: rgbaf16 shared texture remove keyed mutex. (#49798)
* fix: rgbaf16 shared texture remove keyed mutex.

* fix: rgbaf16 patch.

* 更新 shared-texture-handle.md

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

---------

Co-authored-by: John Kleinschmidt <kleinschmidtorama@gmail.com>
2026-02-19 11:28:53 -05:00
David Sanders
469b2af0c0 chore: use relative links from docs/ to files outside of docs/ (#49605) 2026-02-19 01:15:27 -08:00
reito
1e437c9a18 feat: use 1.0f as default for offscreen scale factor. (#49683) 2026-02-19 09:58:29 +01:00
Shelley Vohr
9ca9311b73 docs: note required windows in 'new-window-for-tab' event (#49851)
docs: note required windows in new-window-for-tab
2026-02-18 19:30:43 -08:00
Samuel Attard
8b05717661 docs: clarify ASAR integrity is supported in MAS builds (#49852)
* docs: clarify ASAR integrity is supported in MAS builds

Add a note to the ASAR integrity documentation explicitly stating
that this feature is fully supported and recommended in Mac App
Store builds. While MAS-installed apps have system-level protections,
ASAR integrity provides an additional security layer and is important
for MAS builds distributed outside the Mac App Store.

Slack thread: https://electronhq.slack.com/archives/CB6CG54DB/p1771449093872419?thread_ts=1771446183.473289&cid=CB6CG54DB

https://claude.ai/code/session_01A97nfiqHUVxLNaQyHVXS7j

* docs: clarify ASAR integrity support for MAS builds

Updates the ASAR integrity documentation to explicitly mention that
it is supported and recommended in Mac App Store builds. Clarifies
that while MAS-installed apps have system-level protections (Resources
folder owned by root), ASAR integrity is especially important when
distributing MAS builds through other channels like direct download,
since those installations won't have the read-only protections.

https://claude.ai/code/session_012mBNZQW34h91NRcdFaLxNh

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-18 14:14:00 -08:00
Robo
05061544ab feat: enable WASM trap handlers in all Node.js processes (#48983)
fix: enable WASM trap handlers in all Node.js processes

```
Original reason for revert:

Some apps started throwing exception on startup
https://github.com/electron/electron/issues/48956
```

We now move the trap handler registeration before
any user script execution. Add a fuse to support
disabling the feature is application needs to run
in memory constrained environments.
2026-02-18 12:08:03 +09:00
Ronald Eddy Jr
459a88f788 docs: fix typos across tutorial documentation (#49736) 2026-02-17 14:47:45 -05:00
Shelley Vohr
eb29568e45 feat: introduce os_crypt_async in safeStorage (#49054)
* feat: support Freedesktop Secret Service OSCrypt client

Refs https://issues.chromium.org/issues/40086962
Refs https://issues.chromium.org/issues/447372315

* chore: rework to async interface

* refactor: allow customizing freedesktop config

* docs: add more async impl info

* refactor: reject when temporarily unavailable

* chore: feedback from review

* chore: push_back => emplace_back
2026-02-15 19:54:50 +01:00
Shelley Vohr
dcdbb0397e feat: allow defaulting to printer default page size (#49523)
Co-authored-by: Edvan de Matos <edvan.santos@querodelivery.com>
2026-02-13 07:40:14 -05:00
Shelley Vohr
74fd10450f feat: improve Windows Toast actions support (#48132)
* feat: improve Windows Toast actions support

* fix: ensure MSIX compatibility

* test: add bad clsid format test
2026-02-12 17:25:20 -05:00
Niklas Wenzel
ce47542ccd feat: add support for long-animation-frame script attribution (#49706)
* feat: add support for `long-animation-frame` script attribution

* docs: document `AlwaysLogLOAFURL`

* chore: add test

* docs: adjust docs as per PR comment

* fix: test failures

* chore: simplify test

* fix: tests on Windows and Linux
2026-02-11 09:34:22 -08:00