Aller au contenu principal

Electron 22.0.0

· 6 mins de lecture

Electron 22.0.0 est disponible ! Il inclut la nouvelle API utilityProcess , des mises à jour pour le support de Windows 7/8/8.1 et des mises à jour vers Chromium 108, V8 10.8et Node.js 16.17.1. Lisez la suite ci-dessous pour plus de détails !


L'équipe d'Electron est heureuse d'annoncer la sortie d'Electron 22.0.0 ! Vous pouvez l'installer via npm install electron@latest ou la télécharger depuis notre site officiel. 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.

Changements notables

Changements de la Stack

Nouveautés de cette version

API UtilityProcess #36089

Le nouveau module de processus principal UtilityProcess permet la création d'un processus léger fils de Chromium avec intégration Node tout en permettant la communication avec un moteur de rendu en bac à sable en utilisant MessageChannel. L’API a été conçue sur la base de child_process.fork de Node.js, avec comme différence principale que le point modulePath d’entrée doit être situé dans l'application empaquetée afin de n'autoriser que le chargement des scripts de confiance. De plus, le module empêche par défaut l'établissement de canaux de communication avec les moteurs de rendu , respectant ainsi le contrat stipulant que le processus principal est le seul processus de confiance de l'application.

Vous pourrez en savoir plus en suivant ce lien vers notre documentation: nouvelle API UtilityProcess .

Mise à jour de la prise en charge de Windows 7/8.1

info

16/02/2023: Mise au point à propos du support de Windows Server 2012

Le mois dernier, Google a annoncé que Chrome 109 continuerait à recevoir les correctifs de sécurité critiques pour Windows Server 2012 et Windows Server 2012 R2 et ce jusqu’au 10 octobre 2023. Conformément à ce qui est prévu, la date de fin de vie d’Electron 22 (Chrome 108) sera reporté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.

Notez que nous ne ferons pas de corrections de sécurité supplémentaires pour Windows 7/8/8.1. En outre, Electron 23 (Chrome 110) ne fonctionnera que sur Windows 10 et au-delà comme cela a été annoncé précédemment.

Electron 22 sera la dernière version majeure d'Electron à prendre en charge Windows 7/8/8.1. Electron suit la politique planifiée de dépréciation de Chromium, qui dépréciera le support de Windows 7/8/8.1 dans Chromium 109 (cliquez ici pour en savoir plus).

Windows 7/8/8.1 ne seront plus pris en charge dans les versions majeures d'Electron 23 et ultérieures.

Autres Modifications supplémentaires à signaler

  • Ajout de la prise en charge de l'appairage de code confidentiel Web Bluetooth sous Linux et Windows. #35416
  • Ajout de LoadBrowserProcessSpecificV8Snapshot en tant que nouveau fuse qui permettra au processus main/navigateur de charger son instantané v8 depuis un fichier vers browser_v8_context_snapshot.bin. Tout autre processus utilisera le même chemin que celui utilisé aujourd'hui. #35266
  • Ajout de WebContents.opener afin d'accéder à l'origine de l'ouverture de la fenêtre et de webContents.fromFrame(frame) pour obtenir le WebContents correspondant à une instance de WebFrameMain. #35140
  • Ajout du support pour navigator.mediaDevices.getDisplayMedia via un nouveau gestionnaire de session, ses.setDisplayMediaRequestHandler. #30702

Modifications majeurs de l'API

Vous trouverez ci-dessous les changements majeurs introduits dans Electron 22. Vous pouvez en savoir plus sur ces changements et sur les futurs sur la page Planned Breaking Changes.

Déprécié : webContents.incrementCapturerCount(stayHidden, stayAwake)

webContents.incrementCapturerCount(stayHidden, stayAwake) a été déprécié. La gestion est maintenant automatiquement réalisée par webContents.capturePage lorsqu'une capture de page est terminée.

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

Déprécié : webContents.decrementCapturerCount(stayHidden, stayAwake)

webContents.decrementCapturerCount(stayHidden, stayAwake) a été déprécié. La gestion est maintenant automatiquement réalisée par webContents.capturePage lorsqu'une capture de page est terminée.

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

Supprimé: événement WebContents new-window

L'événement new-window de WebContents a été supprimé. Remplacé par webContents.setWindowOpenHandler().

- webContents.on('new-window', (event) => {
- event.preventDefault()
- })

+ webContents.setWindowOpenHandler((details) => {
+ return { action: 'deny' }
+ })

Déprécié: les événements scroll-touch-* de BrowserWindow

Les événements scroll-touch-begin, scroll-touch-end et scroll-touch-edge de BrowserWindow sont dépréciés. Il faut utiliser à la place l'événement input-event récemment disponible sur WebContents.

// Déprécié
- win.on('scroll-touch-begin', scrollTouchBegin)
- win.on('scroll-touch-edge', scrollTouchEdge)
- win.on('scroll-touch-end', scrollTouchEnd)

// Remplacés par
+ win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') {
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+ })

Fin du support pour 19.x.y

Electron 19.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.

E19 (Mai'22)E20 (Août'22)E21 (Sep'22)E22 (Nov'22)E23 (Jan'23)
19.x.y20.x.y21.x.y22.x.y23.x.y
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y

Et pour la suite

Le projet Electron fera une pause pour le mois de décembre 2022 et reviendra en janvier 2023. Plus d'informations peuvent être trouvées sur le blog A Quiet Place Part Ii (Dec'22).

À court terme, vous pouvez vous attendre à ce que l’équipe continue de se concentrer sur le développement des principaux composants qui composent Electron, y compris Chromium, Node et V8.

Vous pouvez trouver la chronologie publique d'Electron ici.

Vous trouverez plus d’informations sur les changements futurs sur la page changements de rupture prévus.