Zum Hauptteil springen

Electron 14.0.0

· Die Lesezeit beträgt 6 min

Electron 14.0.0 wurde veröffentlicht! Es enthält Upgrades auf Chromium 93 und V8 9.3. Wir haben mehrere API-Updates, Bugfixes und allgemeine Verbesserungen hinzugefügt. Lesen Sie unten für weitere Details!


Das Electron Team freut sich über die Veröffentlichung von Electron 14.0.0! 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 diesem Release und teilen Sie bitte Ihr Feedback!

Bemerkenswerte Änderungen

Electron Release Kadenz Änderung

Ab September 2021 mit Electron 15 wird Electron alle 8 Wochen eine neue große stabile Version veröffentlichen. Lesen Sie die Details hier. Electron 15 will begin beta on September 1, 2021 and stable release will be on September 21, 2021. Sie finden die öffentliche Timeline von Electron hier. Additionally, Electron will be changing supported versions from latest three versions to latest four versions until May 2022. See see our versioning document for more detailed information about versioning in Electron.

Stack-Änderungen

Hervorgehobene Features

  • Standard geändert: nativeWindowOpen wird nun standardmäßig auf true gesetzt. (siehe docs)
  • Unterfenster erben nicht mehr die Optionen des BrowserWindow Konstruktors von ihren Eltern. #28550
  • Added new session.storagePath API to get the path on disk for session-specific data. #28665
  • Added process.contextId used by @electron/remote. #28007
  • Unterstützung für experimentelle Cookie-Verschlüsselung hinter einer Electron Fuse hinzugefügt. #29492

Eine vollständige Liste der neuen Funktionen und Änderungen finden Sie in den 14.0.0 Versionshinweisen.

Breaking Changes

Below are breaking changes introduced in Electron 14. More information about these and future changes can be found on the Planned Breaking Changes page.

Entfernt: app.allowRendererProcessReuse

The app.allowRendererProcessReuse property has been removed as part of our plan to more closely align with Chromium's process model for security, performance and maintainability.

Weitere Informationen findest du unter #18397.

Entfernt: Browserfenster-Affinität

The affinity option when constructing a new BrowserWindow has been removed as part of our plan to more closely align with Chromium's process model for security, performance and maintainability.

Weitere Informationen findest du unter #18397.

API geändert: window.open()

The optional parameter frameName no longer sets the title of the window. This behavior now follows the specification described by the native documentation for the windowName parameter.

If you were using this parameter to set the title of a window, you can instead use the win.setTitle(title) method.

Entfernt: worldSafeExecuteJavaScript

worldSafeExecuteJavaScript has been removed with no alternative. Please ensure your code works with this property enabled. It has been enabled by default since Electron 12.

Sie werden von dieser Änderung betroffen sein, wenn Sie entweder webFrame.executeJavaScript oder webFrame.executeJavaScriptInIsolatedWorld verwenden. Sie müssen sicherstellen, dass die von einer dieser Methoden zurückgegebenen Werte von der Context Bridge API unterstützt werden, da diese Methoden denselben Wert verwenden, der die Semantik übergeht.

Standardwert geändert: nativeWindowOpen ist standardmäßig auf true eingestellt

Prior to Electron 14, window.open was by default shimmed to use BrowserWindowProxy. This meant that window.open('about:blank') did not work to open synchronously scriptable child windows, among other incompatibilities. nativeWindowOpen is no longer experimental, and is now the default.

Lesen Sie die Dokumentation für window.open in Electron für weitere Details.

Entfernt: BrowserWindowConstructorOptions, die von übergeordneten Fenstern geerbt werden

Vor Electron 14 würden Fenster, die mit window.open geöffnet wurden, BrowserWindow Konstruktor Optionen wie transparent und resizable von ihrem Elternfenster erben. Mit Electron 14 wurde dieses Verhalten entfernt und Fenster werden keine BrowserWindow Konstruktor Optionen von ihren Eltern erben.

Stattdessen explizit Optionen für das neue Fenster mit setWindowOpenHandler setzen:

webContents.setWindowOpenHandler((details) => {
return {
action: 'allow',
overrideBrowserWindowOptions: {
// ...
},
};
});

Entfernt: additionalFeatures

Die veraltete additionalFeatures Eigenschaft in den new-window und did-create-window Events von WebContent wurde entfernt. Da new-window Positionsargumente verwendet, ist das Argument immer noch vorhanden, wird aber immer das leere Array [] sein. (Hinweis: das new-window Ereignis selbst ist bereits veraltet und wurde durch setWindowOpenHandler ersetzt.) Bare keys in window features will now present as keys with the value true in the options object.

// Entfernt in Electron 14
// Ausgelöst von window.open('...', '', 'my-key')
webContents.on('did-create-window', (window, details) => {
if (details.additionalFeatures.includes('my-key')) {
// ...
}
});

// Ersetzt mit
webContents.on('did-create-window', (window, details) => {
if (details.options['my-key']) {
// ...
}
});

Entfernt: remote Modul

Veraltet in Electron 12, wurde das remote Modul nun von Electron selbst entfernt und zu einem separaten Paket extrahiert, @electron/remote. Das Modul @electron/remote überbrückt JavaScript-Objekte vom Hauptprozess zum Renderer-Prozess. Dies ermöglicht den Zugriff auf reine Hauptprozess-Objekte, als ob sie im Renderer-Prozess verfügbar wären. Dies ist ein direkter Ersatz für das remote Modul. Lesen Sie das Readme des -Moduls für Migrationsanweisungen und Referenzen.

API-Änderungen

  • Added BrowserWindow.isFocusable() method to determine whether a window is focusable. #28642
  • Added WebFrameMain.visibilityState instance property. #28706
  • Added disposition, referrer and postBody to the details object passed to the window open handler registered with setWindowOpenHandler. #28518
  • Added process.contextId used by @electron/remote. #28007
  • Unterstützung für experimentelle Cookie-Verschlüsselung hinter einer Electron Fuse hinzugefügt. #29492
  • Added missing resourceType conversions for webRequest listener details: font, ping, cspReport, media, webSocket. #30050
  • Added new session.storagePath API to get the path on disk for session-specific data. #28665
  • Unterstützung für Windows Control Overlay auf macOS hinzugefügt. #29986
  • Added support for directing Chromium logging to a file with --log-file=.../path/to/file.log. Also, it's now possible to enable logging from JavaScript by appending command-line switches during the first JS tick. #29963
  • Added support for the des-ede3 cipher in node crypto. #27897
  • Added a ContextBridgeMutability feature that allows context bridge objects to be mutated. #27348

Entfernte/Veraltete Änderungen

Die folgenden APIs wurden entfernt oder sind jetzt veraltet:

  • Das remote Modul wurde entfernt, nachdem es in Electron 12 veraltet wurde. #25734
  • Unterfenster erben nicht mehr die Optionen des BrowserWindow Konstruktors von ihren Eltern. #28550
  • Veraltete additionalFeatures Eigenschaft von new-window und did-create-window WebContents Events entfernt. #28548
  • Die veralteten app.allowRendererProcessReuse und BrowserWindow affinity Optionen wurden entfernt. #26874
  • Die submitURL Option für crashReporter.start ist kein notwendiges Argument mehr, wenn uploadToServer false ist. #28105

Ende der Unterstützung für 11.x.y

Electron 11.x.y hat das Ende der Unterstützung gemäß der -Unterstützungsrichtlinien des Projekts erreicht. Developers and applications are encouraged to upgrade to a newer version of Electron.

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. Although we are careful not to make promises about release dates, our plan is release new major versions of Electron with new versions of those components approximately quarterly.

Für Informationen zu geplanten Änderungen in zukünftigen Versionen von Electron, lesen Sie unsere Planned Breaking Changes.