Electron 29.0.0
Electron 29.0.0 est disponible ! It includes upgrades to Chromium 122.0.6261.39
, V8 12.2
, and Node.js 20.9.0
.
L’équipe Electron est heureuse d’annoncer la sortie d’Electron 29.0.0 ! Vous pouvez l'installer avec npm via npm install electron@latest
ou le télécharger sur notre site web de téléchargement de version. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.
Si vous avez des commentaires, veuillez les partager avec nous sur [Twitter] (https://twitter.com/electronjs) ou Mastodon, ou joignez-vous à notre communauté [Discord] (https://discord.com/invite/electronjs)! Les bogues et les demandes de fonctionnalités peuvent être signalés dans l'[outil de suivi des problèmes] d’Electron (https://github.com/electron/electron/issues).
Changements notables
Points clés
- Added a new top-level
webUtils
module, a renderer process module that provides a utility layer to interact with Web API objects. The first available API in the module iswebUtils.getPathForFile
. Electron's previousFile.path
augmentation was a deviation from web standards; this new API is more in line with current web standards behavior.
Changements de la Stack
- Chromium
122.0.6261.39
- Nouveau dans Chrome 122 et dans DevTools 122
- Nouveau dans Chrome 121 et dans DevTools 121
- Node
20.9.0
- V8
12.2
Electron 29 upgrades Chromium from 120.0.6099.56
to 122.0.6261.39
, Node from 18.18.2
to 20.9.0
, and V8 from 12.0
to 12.2
.
Nouvelles fonctionnalités
- Added new
webUtils
module, a utility layer to interact with Web API objects, to replaceFile.path
augmentation. #38776 - Added net module to utility process. #40890
- Added a new Electron Fuse,
grantFileProtocolExtraPrivileges
, that opts thefile://
protocol into more secure and restrictive behaviour that matches Chromium. #40372 - Added an option in
protocol.registerSchemesAsPrivileged
to allow V8 code cache in custom schemes. #40544 - Migrated
app.{set|get}LoginItemSettings(settings)
to use Apple's new recommended underlying framework on macOS 13.0+. #37244
Changements majeurs avec rupture de compatibilité
Behavior Changed: ipcRenderer
can no longer be sent over the contextBridge
Attempting to send the entire ipcRenderer
module as an object over the contextBridge
will now result in
an empty object on the receiving side of the bridge. This change was made to remove / mitigate
a security footgun. You should not directly expose ipcRenderer or its methods over the bridge.
Instead, provide a safe wrapper like below:
contextBridge.exposeInMainWorld('app', {
onEvent: (cb) => ipcRenderer.on('foo', (e, ...args) => cb(args)),
});
Removed: renderer-process-crashed
event on app
The renderer-process-crashed
event on app
has been removed.
Use the new render-process-gone
event instead.
// Removed
app.on('renderer-process-crashed', (event, webContents, killed) => {
/* ... */
});
// Replace with
app.on('render-process-gone', (event, webContents, details) => {
/* ... */
});
Removed: crashed
event on WebContents
and <webview>
The crashed
events on WebContents
and <webview>
have been removed.
Use the new render-process-gone
event instead.
// Removed
win.webContents.on('crashed', (event, killed) => {
/* ... */
});
webview.addEventListener('crashed', (event) => {
/* ... */
});
// Replace with
win.webContents.on('render-process-gone', (event, details) => {
/* ... */
});
webview.addEventListener('render-process-gone', (event) => {
/* ... */
});
Removed: gpu-process-crashed
event on app
The gpu-process-crashed
event on app
has been removed.
Use the new child-process-gone
event instead.
// Removed
app.on('gpu-process-crashed', (event, killed) => {
/* ... */
});
// Replace with
app.on('child-process-gone', (event, details) => {
/* ... */
});
Fin du support pour 26.x.y
Electron 26.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.
E29 (Fev'24) | E24 (Avr'24) | E31 (Jun'24) |
---|---|---|
29.x.y | 30.x.y | 31.x.y |
28.x.y | 29.x.y | 30.x.y |
27.x.y | 28.x.y | 29.x.y |
Et maintenant ?
Did you know that Electron recently added a community Request for Comments (RFC) process? If you want to add a feature to the framework, RFCs can be a useful tool to start a dialogue with maintainers on its design. You can also see upcoming changes being discussed in the Pull Requests. To learn more, check out our Introducing electron/rfcs blog post, or check out the README of the electron/rfcs repository directly.
À 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.
You can find Electron's public timeline here.
More information about future changes can be found on the Planned Breaking Changes page.