Electron 43
Electron 43 est disponible! Il inclut des mises à jour vers Chromium 15.0.7871.46, V8 14.0 et Node.js `17.0.0.
L'équipe d'Electron est heureuse d'annoncer la sortie d'Electron 43 ! Vous pouvez l'installer avec npm via npm install electron@latest ou le télécharger sur notre site web de téléchargement de version. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.
If you have any feedback, please share it with us on Bluesky or Mastodon, or join our community Discord! Les bogues et les demandes de fonctionnalités peuvent être signalés dans l'[outil de suivi des problèmes] d’Electron (https://github.com/electron/electron/issues).
Changements notables
Amélioration des performances de démarrage des applications
Electron 43 apporte plusieurs améliorations de performances au démarrage des applications. Le processus principal démarre maintenant à partir d'un snapshot de démarrage du Node.js intégré, les paquets de framework et les scripts de préchargement sont mis en cache en tant que code V8 compilé, et les données de démarrage du moteur de rendu en bac à sable sont poussées avant la navigation au lieu d'être récupérées via le blocage de l'IPC. En bonus, les traces de pile de préchargement montrent maintenant le chemin de fichier et le numéro de ligne corrects. #51792
Les fenêtres sans cadre sous Linux ont maintenant des coins arrondis par défaut
Sous Linux, les fenêtres sans images ont maintenant des coins arrondis par défaut, s'alignant ainsi sur le comportement sous macOS et Windows. Les coins arrondis peuvent être désactivés sur toutes les plates-formes en définissant roundedCorners: false sur la fenêtre. #52111
Les téléchargements de fichiers sont maintenant ouverts dans le dossier Téléchargements par défaut
New macOS Notification management APIs
Electron 43 adds Notification.remove(), Notification.removeAll(), and Notification.removeGroup() static methods on macOS, giving developers finer control over delivered notifications. Combined with the existing Notification.getHistory() API, you can now fully manage the lifecycle of notifications in Notification Center. #51690
Changements de la Stack
-
Chromium
150.0.7871.46 -
Node
v24.17.0 -
V8
15.0
Electron 43 met à jour Chromium de 148.0.7778.96 à 150.0.7871.46, Node.js de v24.15.0 à v24.17.0, et V8 de 14.8 à 15.0.
Nouvelles fonctionnalités et améliorations
- Added Clone method to
WebContents. #49959 - Added JS stack trace to crash reports on renderer OOM. #50043
- Added Linux support for
app.getApplicationInfoForProtocol(). #51297 - Added
Notification.remove(),Notification.removeAll(), andNotification.removeGroup()static methods for macOS. #51690 - Added
Notification.getHistory()for macOS, allowing developers to restore all delivered notifications still present in Notification Center. #50325 - Added
accessibilityLabelproperty toMenuItemconstructor options and properties for defining screen-reader-friendly labels. #50240 - Ajout du privilège
allowExtensionspourprotocol.registerSchemesAsPrivileged()afin d'activer les extensions Chrome sur les protocoles personnalisés. #49951 - Added
app.configureWebAuthn()to enable the Touch ID platform authenticator for WebAuthn on macOS, and aselect-webauthn-accountsession event for choosing between multiple discoverable credentials. #51255 - Added
globalShortcut.setSuspended()andglobalShortcut.isSuspended()methods to temporarily suspend and resume global shortcut handling. #50425 - Added
idandgroupIdoptions to theNotificationconstructor on macOS.idallows custom identifiers for notifications, andgroupIdvisually groups notifications together in Notification Center. #50097 - Ajout du support de
id,groupId, etgroupTitlepour les notifications Windows. #50328 - Added
nativeTheme.shouldDifferentiateWithoutColoron macOS. #49912 - Added
nv12OSR pixel format support for professional use. #49799 - Added
view.setBackgroundBlur(). #51076 - Added
webContents.copyVideoFrameAt(x, y)andwebContents.saveVideoFrameAs(x, y)methods. #48149 - Added session support to net module requests from the utility process. #51279
- Added support for heap profiling via
contentTracing.enableHeapProfiling(). #50826 - Added support for importing shared textures using the nv16 pixel format. #50728
- Added support for the
urgencyoption in Notifications on Windows. #50225 - Added support for using a proxy during yarn install. #50322
- Allowed the
--experimental-inspector-network-resourceNode.js flag to be passed through Electron. #49689 - Enabled ThinLTO on macOS builds. #51819
- Enabled profile-guided optimization for V8 builtins in release builds, improving JavaScript builtin performance (Array, String, RegExp, etc.). #50416
- Improved app startup performance — the main process now boots from an embedded Node.js startup snapshot, framework bundles and preload scripts are cached as compiled V8 bytecode, and sandboxed renderer startup data is pushed ahead of navigation instead of fetched via blocking IPC. #51792
- Improved performance of Linux and Windows release builds by enabling ThinLTO link-time optimization for the main Electron binary. #51820
- Improved performance of
app.getApplicationNameForProtocol()on Linux. #51251 - Improved performance of
app.isDefaultProtocolClient()andapp.setAsDefaultProtocolClient()on Linux. #51316 - Improved performance of
webRequestheader conversions and several other gin converter hot paths. #51608 - Improved performance of native event emission, IPC dispatch, and option-dictionary parsing. #51615
Changements majeurs avec rupture de compatibilité
Behavior Changed: File downloads now open in the Downloads folder
File downloads will now open by default in the user's Downloads folder (or the Home directory if the Downloads folder doesn't exist). #49868
Behavior Changed: nativeImage pixel values are normalized to SRGB
If a nativeImage was passed an image with a color profile, its pixel values will now be normalized to SRGB. This ensures that two visually identical images after color space application will receive similar pixel values when converted to a nativeImage. #51565
Behavior Changed: Frameless windows have rounded corners on Linux by default
Sous Linux, les fenêtres sans images ont maintenant des coins arrondis par défaut, s'alignant ainsi sur le comportement sous macOS et Windows. Les coins arrondis peuvent être désactivés sur toutes les plates-formes en définissant roundedCorners: false sur la fenêtre. #52111
Behavior Changed: WCO respects the native title bar layout on Linux
Frameless windows with Window Controls Overlay (WCO) now adopt the native title bar layout and user settings on Linux. For example, controls will appear on the left side of the frame on RTL systems, and only the close button will be visible by default on GNOME. Depending on the user's desktop environment and configuration, buttons can appear on the left or right side of the frame (or both). To account for all possibilities, use the CSS variables env(titlebar-area-x, 0px) and env(titlebar-area-width, 100%) to constrain your app's title bar content to a safe area. #52018
Behavior Changed: chrome.scripting CSS injection matches more fallback frames
Extensions using chrome.scripting.insertCSS() or chrome.scripting.removeCSS()
now follow Chrome's behavior when Electron cannot match a frame's URL directly,
such as with about:blank or data: frames. If the extension has access to the
page that created the frame, CSS may now be inserted into or removed from those
fallback frames as well.
Apps or extensions that relied on Electron skipping those frames should narrow their
injection target, frame IDs, or match patterns. #51376
Removed: showHiddenFiles from dialog API on Linux
showHiddenFiles support has been removed from the dialog API on Linux. #51880
Fin du support pour 40.x.y
Electron 40.x.y a atteint sa fin de support conformément à la politique de support du projet. Nous encourageons les développeurs à mettre à jour vers une version plus récente d'Electron et de faire de même avec leurs applications. See https://releases.electronjs.org/schedule to see the timeline for supported versions of Electron.
Support for 32-bit platforms ending
Electron 43.x.y will be the last version series of Electron to ship with prebuilt binaries for 32-bit platforms: Windows x86 (win32-ia32) and Linux ARM (linux-armv7l). Once the v43 series reaches end of life in January 2027, these 32-bit platforms will no longer be supported.
Et maintenant ?
À court terme, vous pouvez compter sur l’équipe pour continuer a se concentrer sur le développement des principaux composants qui composent Electron, notamment Chromium, Node et V8.
You can find Electron's public timeline here.
More information about future changes can be found on the Planned Breaking Changes page.
