À compter du 1er décembre, le projet Electron entrera dans une période de calme avant de reprendre à pleine capacité en janvier 2026. Pour plus de détails, voir la section Policies ci-dessous.
Depuis 2020, Décembre a été le moment pour les responsables du projet de prendre une pause ou de se concentrer sur les tâches de maintenance régulières. Cette pause nous aide à nous reposer et à revenir dynamisé pour l'année à venir.
Cela dit, une pause d'un mois comme celui-ci n'est réalisable que lorsqu'un projet open-source est dans un état sain — nous aimerions remercier tous les responsables et contributeurs externes pour tous leurs efforts continus pour maintenir le projet en mouvement. ❤️
Electron 39.0.0 est disponible ! Il inclut des mises à jour vers Chromium 142.0.7444.52, V8 14.2 et Node.js `22.20.0.
L’équipe Electron est heureuse d’annoncer la sortie d’Electron 39.0.0 ! 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).
A long-standing "experimental" feature -- ASAR integrity -- is now stable in Electron 39. When you enable this feature, it validates your packaged app.asar at runtime against a build-time hash to detect any tampering. If no hash is present or if there is a mismatch in the hashes, the app will forcefully terminate.
See the ASAR integrity documentation for full information on how on the feature works, on how to use it in your application, and how to use it in Electron Forge and Electron Packager.
Pour les nouvelles connexes, Electron Packager v19 active maintenant ASAR par défaut. #1841
Electron 38.0.0 est disponible ! Il inclut des mises à jour vers Chromium 140.0.7339.41, V8 14.0 et Node.js `22.16.0.
L’équipe Electron est heureuse d’annoncer la sortie d’Electron 38.0.0 ! 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).
Electron 37.0.0 est disponible ! Il comprend des mises à jour vers Chromium 138, V8 13.8 et Node.js 22.16.0.
L’équipe Electron est heureuse d’annoncer la sortie d’Electron 37.0.0 ! 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).
@hitarth-gg is hard at work modernizing the long-dormant Devtron extension using Chrome Manifest V3 APIs.
This project will provide tooling for developers to debug IPC communication, track event listeners, and visualize module dependencies in their Electron applications.
It has been an exciting couple of weeks for our GSOC participants, so stay tuned for more updates!
Electron 37 introduces the custom -electron-corner-smoothing CSS property, which allows apps to create smoother rounded corners to match Apple's macOS design language. This feature originally landed in Electron 36, but we felt like it deserved a brighter spotlight.
Contrairement à la propriété standard border-radius, qui sculpte les coins du quart de cercle à partir d'un rectangle, -electron-corner-smoothing transforme en douceur
la courbe vers une forme squircle avec un périmètre continu.
You can adjust the smoothness using values from 0% to 100%, or use the system-ui value to match the operating system's style (60% on macOS and 0% otherwise).
This design enhancement can be applied on borders, outlines, and shadows, giving your app a subtle layer of polish.
astuce
Read more about Electron's squircle implementation in @clavin's RFC 0012.
The document goes over the motivation and technical implementation in more detail.
The initial design drew inspiration from Figma's corner smoothing implementation. Read more about their own quest for smooth corners in
"Desperately seeking squircles".
Electron 36.0.0 est disponible ! Il comprend des mises à jour vers Chromium 136, V8 13.6 et Node.js 22.14.0.
L’équipe Electron est heureuse d’annoncer la sortie d’Electron 36.0.0 ! 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).
Dans Electron 36, vous pouvez activer les fonctionnalités du système macOS telles que les outils d'écriture (orthographe et grammaire), le remplissage automatique et les éléments de menu Services dans vos menus contextuels. Pour ce faire, passez une instance WebFrameMain dans le paramètre frame de menu.popup().
Electron 35.0.0 est disponible ! Il inclut des mises à jour vers Chromium 134.0.6998.44, V8 13.5, et Node.js `22.14.0.
L’équipe Electron est heureuse d’annoncer la sortie d’Electron 35.0.0 ! 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).
Scripts de Service Worker Preload pour une prise en charge améliorée des extensions
Originally proposed in RFC #8 by @samuelmaddock, Electron 35 adds the ability to attach a preload script to Service Workers. With Chrome's Manifest V3 Extensions routing a lot of work through extension service workers, this feature fills in a gap in Electron's support for modern Chrome extensions.
When registering a preload script programmatically at the Session level, you can now specifically apply it to Service Worker contexts with the ses.registerPreloadScript(script) API.
Main Process
// Add our preload realm script to the session. session.defaultSession.registerPreloadScript({ // Our script should only run in service worker preload realms. type:'service-worker', // The absolute path to the script. script: path.join(__dirname,'extension-sw-preload.js'), });
De plus, l'IPC est maintenant disponible entre les Service Workers et leurs scripts de préchargement via la classe ServiceWorkerMain.ipc. The preload script will still use the ipcRenderer module to communicate with its Service Worker. See the original RFC for more details.
This feature was preceded by many other changes that laid the groundwork for it:
#45329 redesigned the Session module's preload APIs to support registering and unregistering individual preload scripts.
#45229 added the experimental contextBridge.executeInMainWorld(executionScript) script to evaluate JavaScript in the main world over the context bridge.
#45341 added the ServiceWorkerMain class to interact with Service Workers in the main process.
Electron a une nouvelle fois été accepté comme organisation de mentorat pour le Google Summer of Code (GSoC) 2025 !
Google Summer of code est programme mondial visant à attirer de nouveaux contributeurs dans le développement de logiciel open source.
Electron est un framework JavaScript pour la construction d'applications de bureau multi-plateformes en utilisant les technologies
web. Le framework cœur d'Electron est un exécutable binaire compilé avec
Chromium et Node.js, et est principalement écrit en C++.
En dehors du référentiel central Electron, nous gérons également plusieurs projets visant à soutenir l'écosystème Electron, notamment :
Outils internes pour améliorer la productivité des développeurs (par exemple, Electron Build Tools
et Sheriff).
En tant que contributeur GSoC, vous aurez l'occasion de collaborer avec certains des principaux contributeurs d'Electron
sur l'un des nombreux projets sous l'égide de github.com/electron.
Si vous n'êtes pas très familier avec Electron, nous vous recommandons de commencer par lire la
documentation et d'essayer certains des exemples proposés dans Electron Fiddle.
Pour en savoir plus sur la distribution des applications Electron, essayez de créer un exemple d'application avec Electron Forge :
npm init electron-app@latest my-app
Après vous être familiarisé un peu avec le code, venez rejoindre la conversation sur le
serveur Discord Electron.
info
Si c'est la première fois que vous participez au Google Summer of Code ou si vous découvrez l'open source en général,
nous vous recommandons de lire le Guide du contributeur de Google avant de vous engager auprès de la communauté.
Nous vous encourageons à consulter tous les référentiels pertinents pour les idées de projet qui vous intéressent
. Une façon de mener vos recherches consiste à contribuer en signalant des bogues, en triant les problèmes existants ou en soumettant des demandes d'extraction. Cela constitue un moyen efficace d'acquérir une expérience pratique
de nos bases de code, mais n'est pas obligatoire pour soumettre une proposition. Une proposition bien rédigée devrait permettre de démontrer votre compréhension du code sans avoir besoin de se référer à des contributions antérieures.
Voici quelques conseils si vous souhaitez contribuer à Electron avant de soumettre votre proposition :
Veuillez fournir une description détaillée du problème ou des relations publiques lorsque vous soumettez vos contributions. Indépendamment du code lui-même, le fait de consacrer des efforts à la partie écrite d'une contribution nous montre que vous pouvez être un communicateur efficace dans un environnement collaboratif.
Les relecteurs sont toujours les bienvenus pour les questions en suspens. Vous n'avez pas besoin de commenter un problème en demandant à un responsable si vous pouvez être affecté à celui-ci. Notez que nous vous encourageons toujours à discuter des solutions potentielles sur un
problème si vous avez besoin d'affiner une idée de solution, mais les commentaires qui demandent uniquement si vous pouvez travailler sur quelque chose sont redondants et ajoutent du superflu au suivi des problèmes.
Les contributions au projet nécessitant peu d'efforts (par exemple, les rapports d'erreurs non valides, les modifications mineures de la formulation dans un fichier README du dépôt ou les modifications stylistiques mineures du code frontal) auront un impact négatif sur votre proposition finale, car elles mobilisent le temps limité des responsables de la maintenance et n'apportent aucun avantage net au projet Electron.
Bien que les assistants de codage IA puissent être un outil efficace pour le débogage et la compréhension de nouveaux concepts, nous déconseillons fortement les contributions copiées/collées directement à partir d'une sortie générée par l'IA. Ces derniers s'avèrent souvent de mauvaise qualité, et cela demande souvent plus d'efforts aux responsables de la maintenance pour nettoyer le code généré à partir d'un LLM que pour nous de simplement rejeter une PR.
Êtes-vous intéressé à collaborer avec Electron? Tout d'abord, consultez les
sept projets d'idées
que nous avons préparés. Toutes les idées énumérées sont ouvertes aux propositions.
Si vous avez une idée originale qui ne figure pas dans la liste, nous sommes disposés à l'examiner, mais veillez à ce que votre proposition
soit détaillée et bien structurée. En cas de doute, nous vous recommandons de vous en tenir à nos idées énumérées.
Votre candidature devra inclure :
Une proposition détaillée décrivant ce que vous prévoyez accomplir au cours de l'été.
Votre expérience en tant que développeur. Si vous avez un curriculum vitae, veuillez en inclure une copie.
Sinon, parlez-nous de votre expérience technique passée.
Le manque d'expérience dans certains domaines ne vous disqualifiera pas, mais cela aidera nos mentors à élaborer un plan pour vous soutenir au mieux et garantir la réussite de votre projet d'été.
Les candidatures sont ouvertes du 24 mars 2025 au 8 avril 2025.
Propositions de projets antérieures
📚 Pour le GSoC 2024, @piotrpdev
a travaillé à l'ajout de l'historique des API à la documentation principale d'Electron. Pour découvrir les travaux réalisés par Piotr au cours de
son été chez Electron, consultez son rapport dans les archives du programme GSoC 2024.
🔐 Pour le GSoC 2022, @aryanshridhar a travaillé sur l'activation de l'Isolation Contextuelle dans Electron Fiddle. Si vous voulez savoir sur quoi Aryan a travaillé pendant son été avec Electron,
, vous pouvez lire son rapport dans les archives du programme GSoC 2022.
Electron 34.0.0 est disponible ! It includes upgrades to Chromium 132.0.6834.83, V8 13.2, and Node 20.18.1.
L’équipe Electron est heureuse d’annoncer la sortie d’Electron 34.0.0 ! 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).
HTTP compression allows data to be compressed by a web server before being received by the browser. Modern versions of Chromium support Brotli and Zstandard, which are newer compression algorithms that perform better for text files than older schemes such as gzip.
Electron's unresponsive event occurs whenever a renderer process hangs for an excessive period of time. The new WebFrameMain.collectJavaScriptCallStack() API added by @samuelmaddock in #44204 allows you to collect the JavaScript call stack from the associated WebFrameMain object (webContnets.mainFrame).
This API can be useful to determine why the frame is unresponsive in cases where there's long-running JavaScript events causing the process to hang. For more information, see the proposed web standard Crash Reporting API.
Au début de l'année 2025, le repos de l'écosystème npm d'Electron (sous les espaces de noms @electron/ et @electron-forge/) passera à Node.js 22 pour la version minimale supportée.
Dans le passé, les paquets dans l'écosystème npm d'Electron (Forge, Packager, etc) ont pris en charge les versions de Node aussi longtemps que possible, même une fois qu'une version a atteint sa date de fin de vie (EOL) . Ceci pour s'assurer que nous ne fragmentons pas l'écosystème - nous comprenons bien que de nombreux projets dépendent des anciennes versions de Node, et nous ne voulons pas risquer de bloquer ces projets à moins qu’il y ait une raison pressante de les améliorer.
Avec le temps, l'utilisation de Node.js 14 comme notre version minimale est devenue de plus en plus difficile pour quelques raisons :
Le manque de versions officielles de Node.js 14 pour macOS ARM64 nous oblige à maintenir des solutions d'infrastructure de CI pour fournir une couverture de test complète.
engines requirements for upstream package dependencies have moved forward, making it increasingly difficult to resolve supply chain security issues with dependency bumps.
Additionally, newer versions of Node.js have included many improvements that we would like to leverage, such as runtime-native common utilities (e.g. fs.glob and util.parseArgs) and entire new batteries-included modules (e.g. node:test, node:sqlite).
In July 2024, Electron’s Ecosystem Working Group decided to upgrade all packages to the earliest Node version where require()of synchronous ESM graphs will be supported (see nodejs/node#51977 and nodejs/node#53500) at a future point after that version reaches its LTS date.
Nous avons décidé d'effectuer cette de mise à jour en Janvier/Février 2025. Après cette mise à jour, Node 22 sera la version minimale supportée dans les paquets écosystèmes existants.
Nous nous efforcerons de maintenir la compatibilité autant que possible. Cependant, pour assurer le meilleur support possible, nous vous encourageons à mettre à jour vos applications vers Node 22 ou plus.
Notez que la version de Node exécutée dans votre projet n'est pas liée à la version de Node embarquée dans votre version actuelle d'Electron.
N'hésitez pas à nous joindre sur info@electronjs.org](mailto:info@electronjs.org si vous avez des questions ou des préoccupations. Vous pouvez également obtenir le support de la communauté sur notre Discord Electron.
Les versions zero-day et autres versions majeures liées à la sécurité seront publiées si nécessaire. Les incidents de sécurité doivent être signalés via SECURITY.md.
Les dernières versions de la branche stable de l'année 2024, dont Electron 31, 32 et 33, auront lieu la semaine du 1er décembre. Il n'y aura pas de nouvelles sorties prévues en décembre.
Pas de sorties Nightly et Alpha pour les deux dernières semaines de décembre.
À quelques exceptions près, il n'y aura pas de ré-éxamen de pull request ni de merge.
Aucune mise à jour de suivi de tickets sur aucun dépôt.
Aucune aide de débogage de la part des mainteneurs sur Discord.
Aucune mise à jour du contenu des réseaux sociaux.