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:
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.
webContents.on('did-create-window', (window, details) => {
if (details.additionalFeatures.includes('my-key')) {
}
});
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.