Electron 14.0.0
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
- Chromium
93 - Node.js
14.17.0 - V8
9.3
Hervorgehobene Features
- Standard geändert:
nativeWindowOpenwird nun standardmäßig auftruegesetzt. (siehe docs) - Unterfenster erben nicht mehr die Optionen des BrowserWindow Konstruktors von ihren Eltern. #28550
- Added new
session.storagePathAPI to get the path on disk for session-specific data. #28665 - Added
process.contextIdused 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.visibilityStateinstance property. #28706 - Added
disposition,referrerandpostBodyto the details object passed to the window open handler registered withsetWindowOpenHandler. #28518 - Added
process.contextIdused by@electron/remote. #28007 - Unterstützung für experimentelle Cookie-Verschlüsselung hinter einer Electron Fuse hinzugefügt. #29492
- Added missing
resourceTypeconversions forwebRequestlistener details:font,ping,cspReport,media,webSocket. #30050 - Added new
session.storagePathAPI 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
ContextBridgeMutabilityfeature that allows context bridge objects to be mutated. #27348
Entfernte/Veraltete Änderungen
Die folgenden APIs wurden entfernt oder sind jetzt veraltet:
- Das
remoteModul wurde entfernt, nachdem es in Electron 12 veraltet wurde. #25734 - Unterfenster erben nicht mehr die Optionen des BrowserWindow Konstruktors von ihren Eltern. #28550
- Veraltete
additionalFeaturesEigenschaft vonnew-windowunddid-create-windowWebContents Events entfernt. #28548 - Die veralteten
app.allowRendererProcessReuseund BrowserWindowaffinityOptionen wurden entfernt. #26874 - Die
submitURLOption fürcrashReporter.startist kein notwendiges Argument mehr, wennuploadToServerfalse 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.