Electron 14.0.0
Electron 14.0.0 est disponible ! Cette version inclue les mises à jour pour Chromium 93
, V8 9.3
, et Node. js. Nous avons ajouté plusieurs mises à jour de l'API, des corrections de bugs et des améliorations générales. Lisez la suite ci-dessous pour plus de détails !
La team Electron est excitée d'annoncer la sortie de Electron 14.0.0 ! Vous pouvez l'installer via npm install electron@latest
ou le télécharger depuis notre site officiel des versions. Lisez la suite pour plus de détails sur cette version et veuillez partagez vos commentaires et remarques !
Changements notables
Changement de le cadence de publication d'Electron
Beginning in September 2021 with Electron 15, Electron will release a new major stable version every 8 weeks. Vous pouvez lire les détails complets ici. Electron 15 will begin beta on September 1, 2021 and stable release will be on September 21, 2021. Vous pouvez trouver la chronologie publique d'Electron ici. 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.
Changements de la Stack
- Chromium
93
- Node.js
14.17.0
- V8
9.3
Nouveautés de cette version
- Default Changed:
nativeWindowOpen
now defaults totrue
. (voir la documentation) - Child windows no longer inherit BrowserWindow construction options from their parents. #28550
- Ajout de la nouvelle API
session.storagePath
pour obtenir le chemin des données spécifiques à la session sur le disque. #28665 - Ajout de
process.contextId
utilisé par@electron/remote
. #28007 - Added experimental cookie encryption support behind an Electron Fuse. #29492
Voir les notes de version 14.0.0 pour une liste complète des nouvelles fonctionnalités et des modifications.
Changements majeurs avec rupture de compatibilité
Vous trouverez ci-dessous les changements majeurs introduits dans Electron 14. More information about these and future changes can be found on the Planned Breaking Changes page.
Supprimé : 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.
Pour des informations plus détaillées, voir #18397.
Suppression : Browser Window Affinity
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.
Pour des informations plus détaillées, voir #18397.
API modifiée : 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.
Supprimé : 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.
Vous serez affecté par ce changement si vous utilisez webFrame.executeJavaScript
ou webFrame.executeJavaScriptInIsolatedWorld
. Vous devrez vous assurer que les valeurs renvoyées par l’une ou l’autre de ces méthodes sont prises en charge par l’API Context Bridge car ces méthodes utilisent la même sémantique de transmission de valeur.
Valeur par défaut modifié : nativeWindowOpen
est par défaut à true
Avant Electron 14, window.open
utilisait par défaut BrowserWindowProxy
. Cela signifiait, entre autres incompatibilités, que window.open('about:blank')
ne fonctionnait pas pour ouvrir des fenêtres enfants scriptables de manière synchrone. nativeWindowOpen
n'est plus expérimental, et est maintenant la valeur par défaut.
Consultez la documentation de window.open dans Electron pour plus de détails.
Supprimé: BrowserWindowConstructorOptions héritées des fenêtres parentes
Avant d'Electron 14, les fenêtres ouvertes avec window.open
héritaient des options du constructeur BrowserWindow telles que transparent
et resizable
de leur fenêtre parente. Beginning with Electron 14, this behavior has been removed and windows will not inherit any BrowserWindow constructor options from their parents.
À la place, vous devez définir explicitement les options de la nouvelle fenêtre avec setWindowOpenHandler
:
webContents.setWindowOpenHandler((details) => {
return {
action: 'allow',
overrideBrowserWindowOptions: {
// ...
},
};
});
Supprimé : additionalFeatures
La propriété additionalFeatures
de new-window
et l'événement did-create-window
de WebContents qui étaient dépréciés ont été supprimés. Comme new-window
utilise des arguments de positions, l'argument est toujours présent mais sera toujours un tablea vide []
. (Note: the new-window
event itself is already deprecated and has been replaced by setWindowOpenHandler
.) Les clés sans valeur dans les features d'une window seront désormais représentées par des clés avec la valeur true
dans l'objet options.
// Supprimé avec Electron 14
// Triggered by window.open('...', '', 'my-key')
webContents.on('did-create-window', (window, details) => {
if (details.additionalFeatures.includes('my-key')) {
// ...
}
});
// Replace with
webContents.on('did-create-window', (window, details) => {
if (details.options['my-key']) {
// ...
}
});
Supprimé: module remote
Deprecated in Electron 12, the remote
module has now been removed from Electron itself and extracted into a separate package, @electron/remote
. The @electron/remote
module bridges JavaScript objects from the main process to the renderer process. This lets you access main-process-only objects as if they were available in the renderer process. This is a direct replacement for the remote
module. See the module's readme for migration instructions and reference.
Changements d'API
- Added
BrowserWindow.isFocusable()
method to determine whether a window is focusable. #28642 - Ajout de la propriété d'instance
WebFrameMain.visibilityState
. #28706 - Added
disposition
,referrer
andpostBody
to the details object passed to the window open handler registered withsetWindowOpenHandler
. #28518 - Ajout de
process.contextId
utilisé par@electron/remote
. #28007 - Added experimental cookie encryption support behind an Electron Fuse. #29492
- Added missing
resourceType
conversions forwebRequest
listener details:font
,ping
,cspReport
,media
,webSocket
. #30050 - Ajout de la nouvelle API
session.storagePath
pour obtenir le chemin des données spécifiques à la session sur le disque. #28665 - Added support for Windows Control Overlay on macOS. #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
Modifications: éléments supprimés et dépréciés
Les API suivantes ont été supprimées ou sont désormais dépréciées :
- The
remote
module has been removed after being deprecated in Electron 12. #25734 - Child windows no longer inherit BrowserWindow construction options from their parents. #28550
- Removed deprecated
additionalFeatures
property fromnew-window
anddid-create-window
WebContents events. #28548 - Removed the deprecated
app.allowRendererProcessReuse
and BrowserWindowaffinity
options. #26874 - The
submitURL
option forcrashReporter.start
is no longer a required argument whenuploadToServer
is false. #28105
Fin du support pour 11.x.y
Electron 11.x.y a atteint la limite pour le support conformément à la politique d'assistance du projet. Nous encourageons les développeurs à mettre à jour vers une version plus récente d'Electron et de faire de même avec leurs applications.
Et maintenant ?
À court terme, vous pouvez compter sur l’équipe pour continuer a se concentrer sur le développement des principaux composants qui composent Electron, notamment Chromium, Node et V8. Bien que nous veillions à ne pas faire de promesses à propos des dates de publication, notre plan est la sortie de nouvelles versions majeures d'Electron avec de nouvelles versions de ces composants environ un trimestre.
For information on planned breaking changes in upcoming versions of Electron, see our Planned Breaking Changes.