Aller au contenu principal

Introducing electron/rfcs

· 4 mins de lecture

Electron’s API Working Group is adopting an open Requests for Comments (RFC) process to help shepherd larger changes to Electron core.

Why RFCs?

In short, we want to smooth out the process of landing significant changes to Electron core.

Currently, new code changes are mostly discussed through issues and pull requests on GitHub. For most changes to Electron, this is a good system. Many bug fixes, documentation changes, and even new features are straightforward enough to review and merge asynchronously through standard GitHub flows.

For changes that are more significant—for instance, large API surfaces or breaking changes that would affect the majority of Electron apps—it makes sense for review to happen at the ideation stage before most of the code is written.

This process is designed to be open to the public, which will also make it easier for the open source community at large to give feedback on potential changes before they land in Electron.

Comment ça marche ?

The entire RFC process lives in the electron/rfcs repository on GitHub. The steps are described in detail in the repository README.

In brief, an RFC is Proposed once a PR is made to the electron/rfcs repository. A Proposed RFC becomes:

  • Active when the PR is merged into the main branch of the repository, which means that Electron maintainers are amenable to an implementation in electron/electron, or
  • Declined if the PR is ultimately rejected.
info

For the RFC to become Active, the PR must be approved by at least 2 API Working Group members. Before merging, the RFC should be presented synchronously and accepted unanimously by a quorum of at least two-thirds of the WG members. If consensus is reached, a one-month final comment period will be triggered, after which the PR will be merged.

An Active RFC is Completed if the implementation has been merged into electron/electron.

Who can participate?

Anyone in the Electron community can submit RFCs or leave feedback on the electron/rfcs repository!

We wanted to make this process a two-way dialogue and encourage community participation to get a diverse set of opinions from Electron apps that might consume these APIs in the future. If you’re interested in leaving feedback on currently proposed RFCs, the Electron maintainers have already created a few:

Credits

Electron's RFC process was modeled on many established open source RFC processes. Inspiration for many ideas and major portions of copywriting go to:

Déclaration concernant les CVEs "runAsNode"

· 4 mins de lecture

Earlier today, the Electron team was alerted to several public CVEs recently filed against several notable Electron apps. The CVEs are related to two of Electron’s fuses - runAsNode and enableNodeCliInspectArguments - and incorrectly claim that a remote attacker is able to execute arbitrary code via these components if they have not been actively disabled.

We do not believe that these CVEs were filed in good faith. First of all, the statement is incorrect - the configuration does not enable remote code execution. Secondly, companies called out in these CVEs have not been notified despite having bug bounty programs. Lastly, while we do believe that disabling the components in question enhances app security, we do not believe that the CVEs have been filed with the correct severity. “Critical” is reserved for issues of the highest danger, which is certainly not the case here.

Anyone is able to request a CVE. While this is good for the overall health of the software industry, “farming CVEs” to bolster the reputation of a single security researcher is not helpful.

That said, we understand that the mere existence of a CVE with the scary critical severity might lead to end user confusion, so as a project, we’d like to offer guidance and assistance in dealing with the issue.

Comment cela pourrait-il avoir un impact pour moi?

After reviewing the CVEs, the Electron team believes that these CVEs are not critical.

An attacker needs to already be able to execute arbitrary commands on the machine, either by having physical access to the hardware or by having achieved full remote code execution. This bears repeating: The vulnerability described requires an attacker to already have access to the attacked system.

Chrome, for example, does not consider physically-local attacks in their threat model:

We consider these attacks outside Chrome's threat model, because there is no way for Chrome (or any application) to defend against a malicious user who has managed to log into your device as you, or who can run software with the privileges of your operating system user account. Such an attacker can modify executables and DLLs, change environment variables like PATH, change configuration files, read any data your user account owns, email it to themselves, and so on. Such an attacker has total control over your device, and nothing Chrome can do would provide a serious guarantee of defense. This problem is not special to Chrome ­— all applications must trust the physically-local user.

The exploit described in the CVEs allows an attacker to then use the impacted app as a generic Node.js process with inherited TCC permissions. So if the app, for example, has been granted access to the address book, the attacker can run the app as Node.js and execute arbitrary code which will inherit that address book access. This is commonly known as a “living off the land” attack. Attackers usually use PowerShell, Bash, or similar tools to run arbitrary code.

Suis-je impacté?

Par défaut, toutes les versions publiées d'Electron ont les fonctionnalités runAsNode et enableNodeCliInspectArguments activées. If you have not turned them off as described in the Electron Fuses documentation, your app is equally vulnerable to being used as a “living off the land” attack. Again, we need to stress that an attacker needs to already be able to execute code and programs on the victim’s machine.

Atténuation

La façon la plus simple d'atténuer ce problème est de désactiver le fusible runAsNode dans votre application Electron. Le fuse runAsNode acitve ou désactive le respect de la variable d'environnement ELECTRON_RUN_AS_NODE. Please see the Electron Fuses documentation for information on how to toggle theses fuses.

Please note that if this fuse is disabled, then process.fork in the main process will not function as expected as it depends on this environment variable to function. Instead, we recommend that you use Utility Processes, which work for many use cases where you need a standalone Node.js process (like a Sqlite server process or similar scenarios).

Vous pouvez trouver plus d'informations sur les meilleures pratiques de sécurité que nous recommandons pour les applications Electron dans notre Liste de contrôle de sécurité.

Electron 28.0.0

· 4 mins de lecture

Electron 28.0.0 est disponible ! Il inclut des mises à jour vers Chromium 120.0.6099.56, V8 12.0, et Node.js 18.18.2.


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 28.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.

Si vous avez des commentaires, veuillez les partager avec nous sur [Twitter] (https://twitter.com/electronjs) ou Mastodon, ou joignez-vous à notre communauté [Discord] (https://discord.com/invite/electronjs)! 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

  • Support implémenté pour les modules ECMAScript ou ESM (Que sont les modules ECMAScript ? en apprendre plus ici. Cela inclut la prise en charge de ESM dans Electron proprement dit, ainsi que certains domaines tels que les points d'entrée de l'API UtilityProcess. Voir notre documentation sur le MES pour plus de détails.
  • En plus de l'activation du support ESM dans Electron, Electron Forge supportera désormais également l'utilisation d'ESM pour empaqueter, compiler et développer des applications Electron. Vous pouvez profiter de ce support dans Forge v7.0.0 et au delà.

Changements de la Stack

Nouvelles fonctionnalités

  • Prise en charge ESM activée. #37535
  • Ajout de points d'entrée ESM à l'API UtilityProcess. #40047
  • Ajout de plusieurs propriétés à l'objet display y compris detected, maximumCursorSize, et nativeOrigin. #40554
  • Ajout du support de la variable d'environnement ELECTRON_OZONE_PLATFORM_HINT sous Linux. #39792

Changements majeurs avec rupture de compatibilité

Comportement modifié : L'affectation à false de WebContents.backgroundThrottling affecte tous les WebContents de la BrowserWindow hote

WebContents.backgroundThrottling défini à false désactivera la limitation des images dans l' BrowserWindow pour tous les WebContents qu'elle affichera.

Supprimé : BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.setTrafficLightPosition(position) a été supprimé, l'API BrowserWindow.setWindowButtonPosition(position) doit être utilisé à loa place qui pprend null à la place de { x: 0, y: 0 } pour réinitialiser la position à celle par défaut du système.

// Supprimé dans Electron 28
win.setTrafficLightPosition({ x: 10, y: 10 })
win.setTrafficLightPosition({ x: 0, y: 0 })

// A remplacer par
win.setWindowButtonPosition({ x: 10, y: 10 })
win.setWindowButtonPosition(null);

Supprimé : BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.getTrafficLightPosition() a été déprécié, l’API BrowserWindow.getWindowButtonPosition() doit être utilisée à la place, celle-ci retourne null au lieu de { x: 0, y: 0 } en absence de position personnalisée.

// Supprimé dans Electron 28
const pos = win.getTrafficLightPosition();
if (pos. === 0 && pos.y === 0) {
// Aucune position personnalisée.
}

// Remplacer par
const ret = win. etWindowButtonPosition();
if (ret === null) {
// Pas de position personnalisée.
}

Supprimé: ipcRenderer.sendTo()

La méthode ipcRenderer.sendTo() a été supprimée. It should be replaced by setting up a MessageChannel between the renderers.

The senderId and senderIsMainFrame properties of IpcRendererEvent have been removed as well.

Supprimé : app.runningUnderRosettaTranslation

The app.runningUnderRosettaTranslation property has been removed. Use app.runningUnderARM64Translation instead.

// Supprimé
console.log(app.runningUnderRosettaTranslation)
// A remplacer par
console.log(app.runningUnderARM64Translation);

Fin du support pour 25.x.y

Electron 25.x.y a atteint la limite pour le support conformément à la politique d'assistance 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.

E28 (Dec'23)E29 (Fev'24)E24 (Avr'24)
28.x.y29.x.y30.x.y
27.x.y28.x.y29.x.y
26.x.y27.x.y28.x.y

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.

Récapitulation de l’écosystème 2023

· 7 mins de lecture

Réflexion à propos des améliorations et changements intervenu dans l’écosystème des développeurs d’Electron en 2023.


Au cours des derniers mois, nous avons concocté plusieurs changements dans l’écosystème Electron pour booster l’expérience des développeurs pour les applications Electron ! Voici un rapide aperçu des derniers ajouts en direct du siège d’Electron.

Forge Electron 7 et au-delà

Electron Forge 7— nouvelle version majeure de notre outil tout-en-un pour l’empaquetage et la distribution des applications Electron, est maintenant disponible.

Alors que Forge 6 était une réécriture complète de la v5, la v7 a une portée plus réduite, mais contient toujours quelques modifications de rupture. À l’avenir, nous continuerons à publier des versions majeures de Forge car des modifications de rupture doivent être apportées.

Pour plus de détails, consultez la version 7.0.0 de Forge sur GitHub.

Dernières modifications

  • Passé à notarytool pour la macOS notarization : À partir de 2023-11-01, Apple sunset l''ancien altool pour la macOS notarization, et cette version le retire d'Electron Forge entièrement.
  • Node.js minimum augmenté à v16.4.0 : Avec cette version, nous avons défini la version minimale requise de Node.js à 16.4.0.
  • Abandonné le support de electron-prebuilt et electron-prebuilt-compile: electron-prebuilt était le nom original du module npm d'Electron, mais a été remplacé par electron dans la v1.3.1. electron-prebuilt-compile était une alternative à ce binaire qui apportait des fonctionnalités DX améliorées, mais fut finalement abandonné en tant que projet.

Points clés

  • Google Cloud Storage publisher : Dans le cadre de nos efforts pour mieux soutenir la mise à jour automatique statique, Electron Forge prend maintenant en charge la publication directement dans Google Cloud Storage!
  • ESM forge.config.js support: Electron Forge prend désormais en charge les fichiers ESM `forge.config.js. (P.S. Nous attendons avec impatience le support des points d'entrée ESM dans Electron 28. )
  • Les fabricants fonctionnent maintenant en parallèle: Dans Electron Forge 6, les makers s'exécutaient séquentiellement pour ✨ raisons historiques héritées ✨ . Depuis, nous avons testé la parallélisation de l'étape Make sans effets secondaires négatifs, donc vous devriez voir une accélération lors de la construction de plusieurs cibles pour la même plateforme !
Merci !

🙇 Un grand merci à mahnunchik pour ses contributions au support de GCS Publisher et de l'ESM dans les configurations Forge!

Amélioration des mises à jour automatiques pour stockage statique

Squirrel.Windows et Squirrel.Mac sont des technologies de mise à jour spécifiques à la plate-forme qui soutiennent le module autoUpdater intégré d'Electron. Les deux projets prennent en charge les mises à jour automatiques via deux méthodes :

  • Un serveur de mise à jour compatible avec Squirrel
  • Un manifest URL est hébergée sur un fournisseur de stockage statique (ex : AWS, Google Cloud Platform, Microsoft Azure, etc.)

La méthode du serveur de mise à jour a traditionnellement été l'approche recommandée pour les applications Electron (et fournit une personnalisation supplémentaire de la logique de mise à jour), mais il a un inconvénient majeur — il faut que les applications maintiennent leur propre instance de serveur si elles sont fermées.

D'un autre côté, la méthode de stockage statique a toujours été possible, mais n'a pas été documentée dans Electron et mal supportée dans les paquets d'outillage d'Electron.

Avec un excellent travail de @MarshallOfSound, l'histoire de mise à jour pour les mises à jour automatiques des applications sans serveur a été considérablement rationalisée :

  • Les créateurs de Zip et Squirrel.Windows d'Electron Forge peuvent maintenant être configurés pour afficher les événements de mise à jour compatibles avec autoUpdater.
  • Une nouvelle version majeure de update-electron-app (v2.0.0) peut maintenant lire ces manifestes générés comme alternative au serveur update.electronjs.org.

Une fois que vos Makers et Publishers sont configurés pour télécharger des manifestes de mise à jour vers le stockage de fichiers dans le cloud, vous pouvez activer les mises à jour automatiques avec seulement quelques lignes de configuration :

const { updateElectronApp, UpdateSourceType } = require('update-electron-app');

updateElectronApp({
updateSource: {
type: UpdateSourceType.StaticStorage,
baseUrl: `https://my-manifest.url/${process.platform}/${process.arch}`,
},
});
Pour en savoir plus

📦 Vous voulez en savoir plus ? Pour un guide détaillé, voir [la documentation de mise à jour automatique de Forge] (https://www.electronforge.io/advanced/auto-update).

L’univers étendu « @electron/

Au débuts d'Electron, la communauté a publié de nombreux packages pour améliorer l’expérience de développement, d’empaquetage et de distribution d’applications Electron. Au fil du temps, bon nombre de ces paquets ont été incorporés dans l'organisation GitHub d'Electron, l'équipe principale assumant le fardeau de la maintenance.

En 2022, nous avons commencé à unifier tous ces outils sous l’espace de noms « @electron/» sur npm. Ce changement signifie que les paquets qui étaient dans « electron-foo » sont maintenantsur npm dans « @electron/foo » et les dépôts qui étaient nommés « electron/electron-foo » sont maintenant « electron/foo » sur GitHub. Ces changements aident à délimiter clairement les projets initiaux des projets du userland. Cela inclut de nombreux paquets couramment utilisés, tels que:

  • @electron/asar
  • @electron/fuses
  • @electron/get
  • @electron/notarize
  • @electron/osx-sign
  • @electron/packager
  • @electron/rebuild
  • @electron/remote
  • @electron/symbolicate-mac
  • @electron/universal

Pour aller de l'avant, tous les paquets de première partie que nous publions seront également dans l'espace de noms @electron/. Il y a deux exceptions à cette règle :

  • Le noyau d'Electron continuera d'être publié dans le paquet electron.
  • Electron Forge continuera à publier tous ses paquets monorepo dans l'espace de noms @electron-forge/.
Recherche d'étoiles

⭐ Au cours de ce processus, nous avons également accidentellement pris le dépôt electron/packager en privé, qui a l'effet secondaire malheureux d'effacer notre compte d'étoiles GitHub (plus de 9000 avant l'effacement). Si vous êtes un utilisateur actif de Packager, nous apprécierions un ⭐ Star ⭐ !

Introduction à @electron/windows-sign

À partir du 2023-06-01, les normes de l’industrie ont commencé à exiger que les clés des certificats de signature de code Windows soient stockées sur du matériel conforme à la FIPS.

En pratique, cela signifie que la signature de code est devenue beaucoup plus compliquée pour les applications qui compilent et signet des environnements d'intégration continue, car de nombreux outils Electron prennent un fichier de certificat et un mot de passe comme paramètres de configuration et tentent de signer à partir de là en utilisant une logique codée en dur.

Cette situation a été un point de douleur courant pour les développeurs d'Electron, c'est pourquoi nous avons travaillé sur une meilleure solution qui isole la signature du code Windows dans sa propre étape autonome. similaire à ce que @electron/osx-sign fait sur macOS.

Dans le futur, nous prévoyons d'intégrer complètement ce paquet dans la toolchain d'Electron Forge, mais il vit tout seul. Le paquet est actuellement disponible pour l'installation à npm install --save-dev @electron/windows-sign et peut être utilisé par programmation ou via CLI.

Veuillez si vous le pouvez l’essayer et nous faire part de vos commentaires dans l’outil de suivi des problèmes de repo!

Et ensuite ?

Nous entrerons dans notre période annuelle de repos de décembre le mois prochain. Pendant que nous le faisons, nous réfléchirons à la manière dont nous pouvons améliorer l'expérience de développement d'Electron en 2024.

Y a-t-il quelque chose que vous aimeriez que nous fassions travailler sur la suite ? Signalez-le nous!

Mois du silence de décembre (déc. 23)

· 2 mins de lecture

L'équipe du projet Electron fera une pause pour le mois de décembre 2023 et reviendra gonflée à bloc en janvier 2024.

via GIPHY


Ce qui ne changera pas en Décembre

  1. 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.
  2. Les rapports du Code de conduite et la modération se poursuivront normalement.

Ce qui sera différent en Décembre

  1. Electron 28.0.0 sortira le 5 décembre. Pour la suite, il n'y aura pas de nouvelles versions stables avant Janvier.
  2. Pas de sorties Nightly et Alpha pour les deux dernières semaines de décembre.
  3. À quelques exceptions près, il n'y aura pas de ré-éxamen de pull request ni de merge.
  4. Aucune mise à jour de suivi de tickets sur aucun dépôt.
  5. Aucune aide de débogage de la part des mainteneurs sur Discord.
  6. Aucune mise à jour du contenu des réseaux sociaux.

A l'avenir

Nous expérimentons cette période silencieuse depuis maintenant trois ans et l'équilibre entre un mois de repos et le maintien le reste du temps de notre cadence normale de sorties de version nous a plutôt réussi. Nous avons donc décidé d'inclure cette procédure à notre calendrier de publication. Cependant nous emettrons toujours un rappel lors de la dernière version stable de chaque année civile.

On se revoit en 2024!

Electron 27.0.0

· 4 mins de lecture

Electron 27.0.0 est disponible ! Cette version inclut les mises à jour vers Chromium 118.0.5993.32, V8 11.8, et Node.js 18.17.1.


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 27.0.0 ! You can install it with npm via npm install electron@latest or download it from our releases website. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.

Si vous avez des commentaires, veuillez nous les partager sur Twitter ou Mastodon, ou rejoignez notre communauté Discord! Les bogues et les demandes de fonctionnalités peuvent être signalés dans le traqueur de tickets d'Electron.

Brèche dans la barrière : Comment Renforcer les applications avec le bac à sable

· 5 mins de lecture

Plus d’une semaine s’est écoulée depuis que CVE-2023-4863 : Heap buffer overflow in WebP a été rendu public, entraînant une vague de nouvelles versions des webp de rendu logiciel : macOS, iOS, Chrome, Firefox et diverses distributions Linux ont tous reçu des mises à jour. Cela fait suite aux enquêtes menées par Citizen Lab, qui a découvert qu’un iPhone utilisé par une « organisation de la société civile basée à Washington DC » était attaqué à l’aide d’un exploit sans clic dans iMessage.

Pour Electron, nous sommes également passé à l’action et a publié de nouvelles versions le jour même : Si votre application affiche du contenu fourni par l’utilisateur, vous devez mettre à jour votre version d’Electron - v27.0.0-beta.2, v26.2.1, v25.8.1, v24.8.3 et v22.3.24 contiennent toutes une version corrigée de libwebp, la bibliothèque responsable du rendu des images webp.

Maintenant que nous sommes tous nouvellement conscients qu’une interaction aussi innocente que « le rendu d'une image » soit une activité potentiellement dangereuse, nous voulons profiter de cette occasion pour rappeler à tous que Electron est livré avec un bac à sable des processus qui limitera le rayon d’action d'une éventuelle grosse attaque - quelle qu’elle soit.

Le bac à sable était disponible depuis Electron v1 et activé par défaut dans v20, mais nous savons que de nombreuses applications (en particulier celles qui existent depuis un certain temps) peuvent avoir un sandbox: false quelque part dans leur code – ou un nodeIntegration: true, qui désactive également la sandbox lorsqu’il n’y a pas de paramètre sandbox explicite. C’est compréhensible : Si vous êtes avec nous depuis longtemps, vous avez probablement apprécié le pouvoir de lancer un require("child_process") ou un require("fs") dans le même code qui exécute votre HTML/CSS.

Avant de parler de comment migrer vers le bac à sable, voyons d’abord pourquoi vous le souhaitez.

Le bac à sable isole strictement tous les processus de rendu et garantit que, quoi qu’il arrive à l’intérieur, le code s’exécute dans un environnement limité. En tant que concept, c’est bien plus ancien que Chromium, et c’est une fonctionnalité proposée par tous les principaux systèmes d’exploitation. Le bac à sable d’Electron et de Chromium s’appuie sur ces fonctionnalités système. Même si vous n’affichez jamais de contenu généré par les utilisateurs, vous devez envisager la possibilité que votre moteur de rendu soit compromis : des scénarios aussi sophistiqués que des attaques sur la chaîne d’approvisionnement, ou aussi simples que de petits bugs, peuvent amener votre moteur de rendu à faire des choses que vous n’aviez pas vraiment prévues.

Le bac à sable rend ce scénario beaucoup moins inquiétant : un processus à l’intérieur peut utiliser librement le processeur et la mémoire — et c’est tout. Les processus ne peuvent pas écrire sur le disque ni créer leurs propres fenêtres. Dans le cas de notre bug libwep, le bac à sable garantit qu’un attaquant ne peut ni installer ni exécuter de malware. En fait, dans le cas de l’attaque Pegasus initial sur l’iPhone d’un employé, l’attaque ciblait spécifiquement un processus d’image non isolé pour accéder au téléphone, en sortant d’abord des limites de l’iMessage, normalement sandboxée. When a CVE like the one in this example is announced, you still have to upgrade your Electron apps to a secure version — but in the meantime, the amount of damage an attacker can do is limited dramatically.

Migrating a vanilla Electron application from sandbox: false to sandbox: true is an undertaking. I know, because even though I have personally written the first draft of the Electron Security Guidelines, I have not managed to migrate one of my own apps to use it.

Don’t be scared by the number of line changes, most of it is in package-lock.json

There are two things you need to tackle:

  1. If you’re using Node.js code in either preload scripts or the actual WebContents, you need to move all that Node.js interaction to the main process (or, if you are fancy, a utility process). Given how powerful renderers have become, chances are high that the vast majority of your code doesn’t really need refactoring.

    Consult our documentation on Inter-Process Communication. Dans mon cas, J'ai déplacé et encapsulé beaucoup de code dans ipcRenderer.invoke() et ipcMain.handle(), mais le processus était simple et rapide.

  2. Since enabling the sandbox disables Node.js integration in your preload scripts, you can no longer use require("../my-script"). In other words, your preload script needs to be a single file.

    Il existe plusieurs façons de procéder : Webpack, esbuild, parcel, et rollup feront tous l'affaire.

All in all, the entire process took me around four days — and that includes a lot of scratching my head at how to wrangle Webpack’s massive power, since I decided to use the opportunity to refactor my code in plenty of other ways, too.

Electron 26.0.0

· 3 mins de lecture

Electron 26.0.0 est disponible ! Cette version inclut les mises à jour vers Chromium 116.0.5845.62, V8 11.2, et Node.js 18.16.1. Lisez la suite ci-dessous pour plus de détails !


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 26.0.0 ! You can install it with npm via npm install electron@latest or download it from our releases website. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.

Pour tout commentaire, veuillez partager avec nous sur Twitter, ou rejoindre notre communauté Discord! Les bogues et les demandes de fonctionnalités peuvent être signalés dans le traqueur de tickets d'Electron.

Electron 25.0.0

· 6 mins de lecture

Electron 25.0.0 est disponible ! Cette version inclut les mises à jour vers Chromium 114, V8 11.4, et Node.js 18.15.0. Lisez la suite ci-dessous pour plus de détails !


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 25.0.0 ! You can install it with npm via npm install electron@latest or download it from our releases website. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.

Pour tout commentaire, veuillez partager avec nous sur Twitter, ou rejoindre notre communauté Discord! Les bogues et les demandes de fonctionnalités peuvent être signalés dans le traqueur de tickets d'Electron.

Support continu 22.x.y

Comme indiqué dans Adieu, Windows 7/8/8., Electron 22 (Chromium 108) la date prévue de fin de vie sera prolongée du 30 mai 2023 au 10 octobre 2023. L’équipe Electron continuera à rétroporter sur Electron 22 tous les correctifs de sécurité qui font partie de ce programme jusqu’au 10 octobre 2023. La date de prise en charge d'octobre suit les dates de prise en charge étendue de Chromium et de Microsoft. À partir du 11 octobre, l'équipe d'Électron limitera le support aux trois dernières versions majeures, celles ci ne prendront plus en charge Windows 7/8/8.1.

E25 (Mai'23)E26 (Aout'23)E27 (Oct'23)
25.x.y26.x.y27.x.y
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y22.x.y--

Changements notables

  • Implémentation de net.fetch dans le module net d’Electron, en utilisant la pile réseau de Chromium. Ceci diffère de fetch() de Node, qui utilise la pile HTTP de Node.js. Pour plus de détails, voir 6986 et 36733.
  • Ajout de protocol.handle, remplaçant et dépréciant protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol. #36674
  • Prise en charge étendue d'Electron 22, afin de correspondre au plan de dépréciation de chromium et de Microsoft Windows 7/8/8.1 . Voir les détails supplémentaires à la fin de ce billet.

Electron 24.0.0

· 4 mins de lecture

Electron 24.0.0 est disponible ! Cette version inclut les mises à jour vers Chromium 112.0.5615.49, V8 11.2, et Node.js 18.14.0. Lisez la suite ci-dessous pour plus de détails !


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 24.0.0 ! You can install it with npm via npm install electron@latest or download it from our releases website. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.

Pour tout commentaire, veuillez partager avec nous sur Twitter, ou rejoindre notre communauté Discord! Les bogues et les demandes de fonctionnalités peuvent être signalés dans le traqueur de tickets d'Electron.