Zum Hauptteil springen

Electron 25.0.0

· Die Lesezeit beträgt 5 min

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's fetch(), which uses Node.js' HTTP stack. See #36733 and #36606.
  • Added protocol.handle, which replaces and deprecates protocol.{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

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. #36733
    • net.fetch supports requests to file: URLs and custom protocols registered with protocol.register*Protocol. #36606
  • Added BrowserWindow.set/getWindowButtonPosition APIs. #37094
  • Added protocol.handle, replacing and deprecating protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol. #36674
  • Added a will-frame-navigate event to webContents 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 handler ses.setDisplayMediaRequestHandler() callback for allowing remote audio input to be echoed in the local output stream when audio is a WebFrameMain. #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 on webContents. #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.y26.x.y27.x.y
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y22.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.