Electron 25.0.0
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 defetch()
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éciantprotocol.{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
- Chromium
114
- Node.js
18.15.0
- V8
11.4
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()
. #36733net.fetch
prend en charge les requêtes vers les URLS de typefile:
ainsi que les protocoles personnalisés enregistrés avecprotocol.register*Protocol
. #36606
- Ajout des API BrowserWindow.set/getWindowButtonPosition. #37094
- Ajout de
protocol.handle
, remplaçant et dépréciantprotocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol
. #36674 - Ajout de l'événement
will-frame-navigate
auxwebContents
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 callbackses.setDisplayMediaRequestHandler()
du gestionnaire de session pour permettre la reprise dans le flux de sortie local d'entrée audio distante lorsqueaudio
est unWebFrameMain
. #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
surwebContents
. #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.y | 26.x.y | 27.x.y |
24.x.y | 25.x.y | 26.x.y |
23.x.y | 24.x.y | 25.x.y |
22.x.y | 22.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.