Electron 25.0.0
Electron 25.0.0 wurde veröffentlicht! Dieses Update enthält Erweiterungen zu Chromium 114
, V8 11.4
, und Node.js 18.15.0
. Lesen Sie unten für weitere Details!
Das Electron Team freut sich die Veröffentlichung von Electron 25.0.0 anzukündigen! Sie können es mit npm über npm install electron@latest
installieren oder von unserer Release-Website herunterladen. Lesen Sie weiter für Details zu dieser Version.
Wenn du ein Feedback hast, teile es bitte mit uns auf Twitter, oder trete unserer Community Discord bei! Bugs und Feature-Requests können in Electrons Issue-Tracker gemeldet werden.
Bemerkenswerte Änderungen
Highlights
- Implemented
net.fetch
within Electron's net module, using Chromium's networking stack. This differs from Node'sfetch()
, which uses Node.js' HTTP stack. See #36733 and #36606. - Added
protocol.handle
, which replaces and deprecatesprotocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol
. #36674 - Extended support for Electron 22, in order to match Chromium and Microsoft's Windows 7/8/8.1 deprecation plan. See additional details at the end of this blog post.
Stack-Änderungen
- Chromium
114
- Node.js
18.15.0
- V8
11.4
Breaking Changes
Veraltet: protocol.{register,intercept}{Buffer,String,Stream,File,Http}Protocol
The protocol.register*Protocol
and protocol.intercept*Protocol
methods have been replaced with protocol.handle
.
Die neue Methode kann entweder ein neues Protokoll registrieren oder ein bestehendes Protokoll abfangen, und Antworten können von jedem Typ sein.
// Veraltet in Electron 25
protocol.registerBufferProtocol('some-protocol', () => {
callback({ mimeType: 'text/html', data: Buffer.from('<h5>Response</h5>') });
});
// Ersetzt mit
protocol.handle('some-protocol', () => {
return new Response(
Buffer.from('<h5>Response</h5>'), // Kann auch ein string oder ReadableStream sein.
{ headers: { 'content-type': 'text/html' } },
);
});
// Veraltet in Electron 25
protocol.registerHttpProtocol('some-protocol', () => {
callback({ url: 'https://electronjs.org' });
});
// Ersetzt mit
protocol.handle('some-protocol', () => {
return net.fetch('https://electronjs.org');
});
// Veraltet in Electron 25
protocol.registerFileProtocol('some-protocol', () => {
callback({ filePath: '/path/to/my/file' });
});
// Ersetzt mit
protocol.handle('some-protocol', () => {
return net.fetch('file:///path/to/my/file');
});
Veraltet: BrowserWindow.setTrafficLightPosition(position)
BrowserWindow.setTrafficLightPosition(position)
wurde veraltet, die BrowserWindow.setWindowButtonPosition(position)
API sollte stattdessen verwendet werden, die null
anstelle von { x: 0, y: 0 }
akzeptiert, um die Position auf Systemstandart zurückzusetzen.
// Veraltet in Electron 25
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });
// Ersetzt mit
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);
Veraltet: BrowserWindow.getTrafficLightPosition()
BrowserWindow.getTrafficLightPosition()
wurde veraltet, die BrowserWindow.getWindowButtonPosition()
API sollte stattdessen verwendet werden, die null
anstatt { x: 0, y: 0 }
zurückgibt, wenn keine benutzerdefinierte Position vorhanden ist.
// Deprecated in Electron 25
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// No custom position.
}
// Ersetzt mit
const ret = win.getWindowButtonPosition();
if (ret === null) {
// Keine eigene Position.
}
Neue Funktionen
net.fetch()
hinzugefügt. #36733net.fetch
supports requests tofile:
URLs and custom protocols registered withprotocol.register*Protocol
. #36606
- Added BrowserWindow.set/getWindowButtonPosition APIs. #37094
- Added
protocol.handle
, replacing and deprecatingprotocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol
. #36674 - Added a
will-frame-navigate
event towebContents
and the<webview>
tag, which fires whenever any frame within the frame hierarchy attempts to navigate. #34418 - Added initiator information to navigator events. This information allows distinguishing
window.open
from a parent frame causing a navigation, as opposed to a child-initiated navigation. #37085 - Added net.resolveHost that resolves hosts using defaultSession object. #38152
- Neues 'did-resign-active' Event zu
app
hinzugefügt. #38018 - Added several standard page size options to
webContents.print()
. #37159 - Added the
enableLocalEcho
flag to the session handlerses.setDisplayMediaRequestHandler()
callback for allowing remote audio input to be echoed in the local output stream whenaudio
is aWebFrameMain
. #37315 - Added thermal management information to
powerMonitor
. #38028 - Allows an absolute path to be passed to the session.fromPath() API. #37604
- Exposes the
audio-state-changed
event onwebContents
. #37366
22.x.y Support fortgesetzt
As noted in Farewell, Windows 7/8/8.1, Electron 22's (Chromium 108) planned end of life date will be extended from May 30, 2023 to October 10, 2023. The Electron team will continue to backport any security fixes that are part of this program to Electron 22 until October 10, 2023. Das Supportdatum vom Oktober folgt den erweiterten Supportdaten sowohl von Chromium als auch von Microsoft. Am 11. Oktober wird das Electron-Team die Unterstützung auf die letzten drei stabilen Hauptversionen zurückstellen, die Windows 7/8/8.1 nicht mehr unterstützen.
E25 (Mai'23) | E26 (Aug'23) | E27 (Okt'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 | -- |
What's Next
In the short term, you can expect the team to continue to focus on keeping up with the development of the major components that make up Electron, including Chromium, Node, and V8.
Sie finden die öffentliche Timeline von Electron hier.
Weitere Informationen über zukünftige Änderungen finden Sie auf der geplante Änderungen Seite.