Electron 33.0.0
Electron 33.0.0 est disponible ! It includes upgrades to Chromium 130.0.6723.44, V8 13.0, and Node 20.18.0.
L’équipe Electron est heureuse d’annoncer la sortie d’Electron 33.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
- Ajout d'un gestionnaire,
app.setClientCertRequestPasswordHandler(handler)
, pour faciliter le déverrouillage des périphériques cryptographiques quand un code PIN est nécessaire. #41205 - Extended
navigationHistory
API with 2 new functions for better history management. #42014 - Improved native theme transparency checking. #42862
Changements de la Stack
- Chromium
130.0.6723.44
- Node
20.18.0
- V8
13.0
Electron 33 upgrades Chromium from 128.0.6613.36
to 130.0.6723.44
, Node from 20.16.0
to 20.18.0
, and V8 from 12.8
to 13.0
.
Nouvelles fonctionnalités
- Ajout d'un gestionnaire,
app.setClientCertRequestPasswordHandler(handler)
, pour faciliter le déverrouillage des périphériques cryptographiques quand un code PIN est nécessaire. #41205 - Ajout d'un événement d'erreur dans le processus utilitaire pour supporter les rapports de diagnostic sur les erreurs fatales V8. #43997
- Ajout de
View.setBorderRadius(radius)
pour personnaliser le rayon de bordure des vues, pour être compatible avecWebContentsView
. #42320 - Extended
navigationHistory
API with 2 new functions for better history management. #42014
Changements majeurs avec rupture de compatibilité
Removed: macOS 10.15 support
macOS 10.15 (Catalina) is no longer supported by Chromium.
Older versions of Electron will continue to run on Catalina, but macOS 11 (Big Sur) or later will be required to run Electron v33.0.0 and higher.
Behavior Changed: Native modules now require C++20
Due to changes made upstream, both V8 and Node.js now require C++20 as a minimum version. Les développeurs qui utilisent des modules natifs de node devraient compiler leurs modules avec --std=c++20
plutôt que --std=c++17
. Les images utilisant gcc9 ou inférieur peuvent avoir besoin de se mettre à jour vers gcc10 pour compiler. See #43555 for more details.
Behavior Changed: custom protocol URL handling on Windows
Due to changes made in Chromium to support Non-Special Scheme URLs, custom protocol URLs that use Windows file paths will no longer work correctly with the deprecated protocol.registerFileProtocol
and the baseURLForDataURL
property on BrowserWindow.loadURL
, WebContents.loadURL
, and <webview>.loadURL
. protocol.handle
will also not work with these types of URLs but this is not a change since it has always worked that way.
// No longer works
protocol.registerFileProtocol('other', () => {
callback({ filePath: '/path/to/my/file' });
});
const mainWindow = new BrowserWindow();
mainWindow.loadURL(
'data:text/html,<script src="loaded-from-dataurl.js"></script>',
{ baseURLForDataURL: 'other://C:\\myapp' },
);
mainWindow.loadURL('other://C:\\myapp\\index.html');
// Replace with
const path = require('node:path');
const nodeUrl = require('node:url');
protocol.handle(other, (req) => {
const srcPath = 'C:\\myapp\\';
const reqURL = new URL(req.url);
return net.fetch(
nodeUrl.pathToFileURL(path.join(srcPath, reqURL.pathname)).toString(),
);
});
mainWindow.loadURL(
'data:text/html,<script src="loaded-from-dataurl.js"></script>',
{ baseURLForDataURL: 'other://' },
);
mainWindow.loadURL('other://index.html');
Comportement modifié : propriété webContents
sur login
sur app
The webContents
property in the login
event from app
will be null
when the event is triggered for requests from the utility process
created with respondToAuthRequestsFromMainProcess
option.
Deprecated: textured
option in BrowserWindowConstructorOption.type
The textured
option of type
in BrowserWindowConstructorOptions
has been deprecated with no replacement. This option relied on the NSWindowStyleMaskTexturedBackground
style mask on macOS, which has been deprecated with no alternative.
Deprecated: systemPreferences.accessibilityDisplayShouldReduceTransparency
The systemPreferences.accessibilityDisplayShouldReduceTransparency
property is now deprecated in favor of the new nativeTheme.prefersReducedTransparency
, which provides identical information and works cross-platform.
// Deprecated
const shouldReduceTransparency =
systemPreferences.accessibilityDisplayShouldReduceTransparency;
// Replace with:
const prefersReducedTransparency = nativeTheme.prefersReducedTransparency;
Fin du support pour 30.x.y
Electron 30.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.
E33 (Oct'24) | E34 (Jan'25) | E35 (Apr'25) |
---|---|---|
33.x.y | 34.x.y | 35.x.y |
32.x.y | 33.x.y | 34.x.y |
31.x.y | 32.x.y | 33.x.y |
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.
You can find Electron's public timeline here.
More information about future changes can be found on the Planned Breaking Changes page.