Aller au contenu principal

Electron 25.0.0

· 5 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 ! 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

Points clés

  • 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.

Changements de la Stack

Changements majeurs avec rupture de compatibilité

Déprécié : protocol.{register,intercept}{Buffer,String,Stream,File,Http}Protocol

Les méthodes protocol.register*Protocol et protocol.intercept*Protocol ont étés remplacées par protocol.handle.

La nouvelle méthode peut soit enregistrer un nouveau protocole ou intercepter un protocole existant, les réponses peuvent être de n'importe quel type.

// Déprécié dans Electron 25
protocol.registerBufferProtocol('some-protocol', () => {
callback({ mimeType: 'text/html', data: Buffer.from('<h5>Response</h5>') });
});

// Remplacé par
protocol.handle('some-protocol', () => {
return new Response(
Buffer.from('<h5>Response</h5>'), // Peut aussi être une chaîne de caractères ou ReadableStream.
{ headers: { 'content-type': 'text/html' } }
);
});
// Déprécié dans Electron 25
protocol.registerHttpProtocol('some-protocol', () => {
callback({ url: 'https://electronjs.org' });
});

// Remplacé par
protocol.handle('some-protocol', () => {
return net.fetch('https://electronjs.org');
});
// Déprécié dans Electron 25
protocol.registerFileProtocol('some-protocol', () => {
callback({ filePath: '/path/to/my/file' });
});

// Remplacé par
protocol.handle('some-protocol', () => {
return net.fetch('file:///path/to/my/file');
});

Déprécié : BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.setTrafficLightPosition(position) a été déprécié, l'API BrowserWindow.setWindowButtonPosition(position) doit être utilisée à la place et prend comme paramètres null au lieu de { x: 0, y: 0 } pour réinitialiser la position à celle par défaut du système.

// Déprécié dans Electron 25
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });

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

Déprécié : BrowserWindow.getTrafficLightPosition()

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

// Deprecated in Electron 25
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// No custom position.
}

// A Remplacer par
const ret = win.getWindowButtonPosition();
if (ret === null) {
// Aucune position personalisée.
}

Nouvelles fonctionnalités

  • Ajout de net.fetch(). #36733
    • net.fetch prend en charge les requêtes vers les URLS de type file: ainsi que les protocoles personnalisés enregistrés avec protocol.register*Protocol. #36606
  • Ajout des API BrowserWindow.set/getWindowButtonPosition. #37094
  • Ajout de protocol.handle, remplaçant et dépréciant protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol. #36674
  • Ajout de l'événement will-frame-navigate aux webContents et balise <webview> , qui se déclenche chaque fois qu'une image dans la hiérarchie des images tente de naviguer. #34418
  • Ajout d'informations de l''initiateur aux événements du navigateur. Cette information permet de distinguer un window.open d'une frame parent causant une navigation d'une navigation initiée par un enfant. #37085
  • Ajout de net.resolveHost qui résout les hôtes en utilisant l'objet defaultSession . #38152
  • Ajout de l'événement 'did-resign-active' à app. #38018
  • Ajout de plusieurs options de taille de page standard à webContents.print(). #37159
  • Ajout du drapeau enableLocalEcho à la callback ses.setDisplayMediaRequestHandler() du gestionnaire de session pour permettre la reprise dans le flux de sortie local d'entrée audio distante lorsque audio est un WebFrameMain. #37315
  • Ajout des informations de gestion thermique à powerMonitor. #38028
  • Permet de passer un chemin absolu à l'API session.fromPath() . #37604
  • Expose l'événement audio-state-changed sur webContents. #37366

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--

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.

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.