Aller au contenu principal

41 articles tagués avec "Release"

Blog posts about new Electron releases

Voir tous les tags

Electron 33.0.0

· 4 mins de lecture

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

  • Added a handler, app.setClientCertRequestPasswordHandler(handler), to help unlock cryptographic devices when a PIN is needed. #41205
  • Extended navigationHistory API with 2 new functions for better history management. #42014
  • Improved native theme transparency checking. #42862

Changements de la Stack

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

  • Added a handler, app.setClientCertRequestPasswordHandler(handler), to help unlock cryptographic devices when a PIN is needed. #41205
  • Added error event in utility process to support diagnostic reports on V8 fatal errors. #43997
  • Added View.setBorderRadius(radius) for customizing the border radius of views—with compatibility for WebContentsView. #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. Developers using native node modules should build their modiles with --std=c++20 rather than --std=c++17. Images using gcc9 or lower may need to update to gcc10 in order to compile. 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');

Behavior Changed: webContents property on login on 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;

End of Support for 30.x.y

Electron 30.x.y has reached end-of-support as per the project's support policy. 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.y34.x.y35.x.y
32.x.y33.x.y34.x.y
31.x.y32.x.y33.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.

Electron 32.0.0

· 4 mins de lecture

Electron 32.0.0 est disponible ! It includes upgrades to Chromium 128.0.6613.36, V8 12.8, and Node 20.16.0.


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 32.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 new API version history in our documentation, a feature created by @piotrpdev as part of Google Summer of Code. You can learn more about it in this blog post. #42982
  • Removed nonstandard File.path extension from the Web File API. #42053
  • Aligned failure pathway in Web File System API with upstream when attempting to open a file or directory in a blocked path. #42993
  • Added the following existing navigation-related APIs to webcontents.navigationHistory: canGoBack, goBack, canGoForward, goForward, canGoToOffset, goToOffset, clear. The previous navigation APIs are now deprecated. #41752

Changements de la Stack

Electron 32 upgrades Chromium from 126.0.6478.36 to 128.0.6613.36, Node from 20.14.0 to 20.16.0, and V8 from 12.6 to 12.8.

Nouvelles fonctionnalités

  • Added support for responding to auth requests initiated from the utility process via the app module's 'login' event. #43317
  • Added the cumulativeCPUUsage property to the CPUUsage structure, which returns the total seconds of CPU time used since process startup. #41819
  • Added the following existing navigation related APIs to webContents.navigationHistory: canGoBack, goBack, canGoForward, goForward, canGoToOffset, goToOffset, clear. #41752
  • Extended WebContentsView to accept pre-existing webContents objects. #42086
  • Added a new property prefersReducedTransparency to nativeTheme, which indicates whether the user has chosen to reduce OS-level transparency via system accessibility settings. #43137
  • Aligned failure pathway in File System Access API with upstream when attempting to open a file or directory in a blocked path. #42993
  • Enabled the Windows Control Overlay API on Linux. #42681
  • Enabled zstd compression in network requests. #43300

Changements majeurs avec rupture de compatibilité

Removed: File.path

The nonstandard path property of the Web File object was added in an early version of Electron as a convenience method for working with native files when doing everything in the renderer was more common. However, it represents a deviation from the standard and poses a minor security risk as well, so beginning in Electron 32.0 it has been removed in favor of the webUtils.getPathForFile method.

// Before (renderer)
const file = document.querySelector('input[type=file]');
alert(`Uploaded file path was: ${file.path}`);
// After (renderer)
const file = document.querySelector('input[type=file]');
electron.showFilePath(file);

// After (preload)
const { contextBridge, webUtils } = require('electron');

contextBridge.exposeInMainWorld('electron', {
showFilePath(file) {
// It's best not to expose the full file path to the web content if
// possible.
const path = webUtils.getPathForFile(file);
alert(`Uploaded file path was: ${path}`);
},
});

Deprecated: clearHistory, canGoBack, goBack, canGoForward, goForward, goToIndex, canGoToOffset, goToOffset on WebContents

Navigation-related APIs on WebContents instances are now deprecated. These APIs have been moved to the navigationHistory property of WebContents to provide a more structured and intuitive interface for managing navigation history.

// Deprecated
win.webContents.clearHistory();
win.webContents.canGoBack();
win.webContents.goBack();
win.webContents.canGoForward();
win.webContents.goForward();
win.webContents.goToIndex(index);
win.webContents.canGoToOffset();
win.webContents.goToOffset(index);

// Replace with
win.webContents.navigationHistory.clear();
win.webContents.navigationHistory.canGoBack();
win.webContents.navigationHistory.goBack();
win.webContents.navigationHistory.canGoForward();
win.webContents.navigationHistory.goForward();
win.webContents.navigationHistory.canGoToOffset();
win.webContents.navigationHistory.goToOffset(index);

End of Support for 29.x.y

Electron 29.x.y has reached end-of-support as per the project's support policy. Nous encourageons les développeurs à mettre à jour vers une version plus récente d'Electron et de faire de même avec leurs applications.

E32 (Aug'24)E33 (Oct'24)E34 (Jan'25)
32.x.y33.x.y34.x.y
31.x.y32.x.y33.x.y
30.x.y31.x.y32.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.

Electron 31.0.0

· 3 mins de lecture

Electron 31.0.0 est disponible ! It includes upgrades to Chromium 126.0.6478.36, V8 12.6, and Node 20.14.0.


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 31.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

  • Extended WebContentsView to accept pre-existing webContents object. #42319
  • Added support for NODE_EXTRA_CA_CERTS. #41689
  • Updated window.flashFrame(bool) to flash continuously on macOS. #41391
  • Removed WebSQL support #41868
  • nativeImage.toDataURL will preserve PNG colorspace #41610
  • Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow. #41432

Changements de la Stack

Electron 31 upgrades Chromium from 124.0.6367.49 to 126.0.6478.36, Node from 20.11.1 to 20.14.0, and V8 from 12.4 to 12.6.

Nouvelles fonctionnalités

  • Added clearData method to Session. #40983
    • Added options parameter to Session.clearData API. #41355
  • Added support for Bluetooth ports being requested by service class ID in navigator.serial. #41638
  • Added support for Node's NODE_EXTRA_CA_CERTS environment variable. #41689
  • Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow. #41432
  • Implemented support for the web standard File System API. #41419
  • Extended WebContentsView to accept pre-existing WebContents instances. #42319
  • Added a new instance property navigationHistory on webContents API with navigationHistory.getEntryAtIndex method, enabling applications to retrieve the URL and title of any navigation entry within the browsing history. #41577 (Also in 29, 30)

Changements majeurs avec rupture de compatibilité

Removed: WebSQL support

Chromium has removed support for WebSQL upstream, transitioning it to Android only. See Chromium's intent to remove discussion for more information.

Behavior Changed: nativeImage.toDataURL will preseve PNG colorspace

PNG decoder implementation has been changed to preserve colorspace data. The encoded data returned from this function now matches it.

See crbug.com/332584706 for more information.

Behavior Changed: win.flashFrame(bool) will flash dock icon continuously on macOS

This brings the behavior to parity with Windows and Linux. Prior behavior: The first flashFrame(true) bounces the dock icon only once (using the NSInformationalRequest level) and flashFrame(false) does nothing. New behavior: Flash continuously until flashFrame(false) is called. This uses the NSCriticalRequest level instead. To explicitly use NSInformationalRequest to cause a single dock icon bounce, it is still possible to use dock.bounce('informational').

Fin du support pour 28.x.y

Electron 28.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.

E31 (Jun'24)E32 (Aug'24)E33 (Oct'24)
31.x.y32.x.y33.x.y
30.x.y31.x.y32.x.y
28.x.y29.x.y31.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.

Electron 30.0.0

· 4 mins de lecture

Electron 30.0.0 est disponible ! It includes upgrades to Chromium 124.0.6367.49, V8 12.4, and Node.js 20.11.1.


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 30.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

  • ASAR Integrity fuse now supported on Windows (#40504)
    • Existing apps with ASAR Integrity enabled may not work on Windows if not configured correctly. Apps using Electron packaging tools should upgrade to @electron/packager@18.3.1 or @electron/forge@7.4.0.
    • Take a look at our ASAR Integrity tutorial for more information.
  • Added WebContentsView and BaseWindow main process modules, deprecating & replacing BrowserView (#35658). Learn more about how to migrate from BrowserView to WebContentsView in this blog post.
    • BrowserView is now a shim over WebContentsView and the old implementation has been removed.
    • See our Web Embeds documentation for a comparison of the new WebContentsView API to other similar APIs.
  • Implemented support for the File System API (#41827)

Changements de la Stack

Electron 30 upgrades Chromium from 122.0.6261.39 to 124.0.6367.49, Node from 20.9.0 to 20.11.1, and V8 from 12.2 to 12.4.

Nouvelles fonctionnalités

  • Added a transparent webpreference to webviews. (#40301)
  • Added a new instance property navigationHistory on webContents API with navigationHistory.getEntryAtIndex method, enabling applications to retrieve the URL and title of any navigation entry within the browsing history. (#41662)
  • Added new BrowserWindow.isOccluded() method to allow apps to check occlusion status. (#38982)
  • Added proxy configuring support for requests made with the net module from the utility process. (#41417)
  • Added support for Bluetooth ports being requested by service class ID in navigator.serial. (#41734)
  • Added support for the Node.js NODE_EXTRA_CA_CERTS CLI flag. (#41822)

Changements majeurs avec rupture de compatibilité

Behavior Changed: cross-origin iframes now use Permission Policy to access features

Cross-origin iframes must now specify features available to a given iframe via the allow attribute in order to access them.

See documentation for more information.

Removed: The --disable-color-correct-rendering command line switch

This switch was never formally documented but its removal is being noted here regardless. Chromium itself now has better support for color spaces so this flag should not be needed.

Behavior Changed: BrowserView.setAutoResize behavior on macOS

In Electron 30, BrowserView is now a wrapper around the new WebContentsView API.

Previously, the setAutoResize function of the BrowserView API was backed by autoresizing on macOS, and by a custom algorithm on Windows and Linux. For simple use cases such as making a BrowserView fill the entire window, the behavior of these two approaches was identical. However, in more advanced cases, BrowserViews would be autoresized differently on macOS than they would be on other platforms, as the custom resizing algorithm for Windows and Linux did not perfectly match the behavior of macOS's autoresizing API. The autoresizing behavior is now standardized across all platforms.

If your app uses BrowserView.setAutoResize to do anything more complex than making a BrowserView fill the entire window, it's likely you already had custom logic in place to handle this difference in behavior on macOS. If so, that logic will no longer be needed in Electron 30 as autoresizing behavior is consistent.

Removed: params.inputFormType property on context-menu on WebContents

The inputFormType property of the params object in the context-menu event from WebContents has been removed. Use the new formControlType property instead.

Supprimé : process.getIOCounters()

Chromium has removed access to this information.

Fin du support pour 27.x.y

Electron 27.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.

E24 (Avr'24)E31 (Jun'24)E32 (Aug'24)
30.x.y31.x.y32.x.y
29.x.y30.x.y31.x.y
28.x.y29.x.y30.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.

Electron 29.0.0

· 4 mins de lecture

Electron 29.0.0 est disponible ! Comprend des mises à niveaux vers et Node.js.


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 is webUtils.getPathForFile. Electron's previous File.path augmentation was a deviation from web standards; this new API is more in line with current web standards behavior.

Changements de la Stack

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 replace File.path augmentation. #38776
  • Added net module to utility process. #40890
  • Added a new Electron Fuse, grantFileProtocolExtraPrivileges, that opts the file:// 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é

Comportement changement : ipcRenderer ne peut plus être envoyée vers 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.y30.x.y31.x.y
28.x.y29.x.y30.x.y
27.x.y28.x.y29.x.y

Et maintenant ?

Did you know that Electron recently added a community Request for Comments (RFC) process? Si vous voulez ajouter une fonctionnalité à la structure, RFCs cela peut être un outil utile. Vous pouvez aussi voir les prochains changement en cours de discussion dans demande d'extraction. Pour en apprendre plus, vérifier notre [Introduction electron/rfc] (https://www.electronjs.org/blog/rfcs) article de blog, ou vérifier le README du [electron/rfcs] (https://www.github.com/electron/rfcs) dépôt directement.

À 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.

Electron 28.0.0

· 4 mins de lecture

Electron 28.0.0 est disponible ! Il inclut des mises à jour vers Chromium 120.0.6099.56, V8 12.0, et Node.js 18.18.2.


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 28.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

  • Support implémenté pour les modules ECMAScript ou ESM (Que sont les modules ECMAScript ? en apprendre plus ici. Cela inclut la prise en charge de ESM dans Electron proprement dit, ainsi que certains domaines tels que les points d'entrée de l'API UtilityProcess. Voir notre documentation sur le MES pour plus de détails.
  • En plus de l'activation du support ESM dans Electron, Electron Forge supportera désormais également l'utilisation d'ESM pour empaqueter, compiler et développer des applications Electron. Vous pouvez profiter de ce support dans Forge v7.0.0 et au delà.

Changements de la Stack

Nouvelles fonctionnalités

  • Prise en charge ESM activée. #37535
  • Ajout de points d'entrée ESM à l'API UtilityProcess. #40047
  • Ajout de plusieurs propriétés à l'objet display y compris detected, maximumCursorSize, et nativeOrigin. #40554
  • Ajout du support de la variable d'environnement ELECTRON_OZONE_PLATFORM_HINT sous Linux. #39792

Changements majeurs avec rupture de compatibilité

Comportement modifié : L'affectation à false de WebContents.backgroundThrottling affecte tous les WebContents de la BrowserWindow hote

WebContents.backgroundThrottling défini à false désactivera la limitation des images dans l' BrowserWindow pour tous les WebContents qu'elle affichera.

Supprimé : BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.setTrafficLightPosition(position) a été supprimé, l'API BrowserWindow.setWindowButtonPosition(position) doit être utilisé à loa place qui pprend null à la place de { x: 0, y: 0 } pour réinitialiser la position à celle par défaut du système.

// Supprimé dans Electron 28
win.setTrafficLightPosition({ x: 10, y: 10 })
win.setTrafficLightPosition({ x: 0, y: 0 })

// A remplacer par
win.setWindowButtonPosition({ x: 10, y: 10 })
win.setWindowButtonPosition(null);

Supprimé : BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.getTrafficLightPosition() a été déprécié, l’API BrowserWindow.getWindowButtonPosition() doit être utilisée à la place, celle-ci retourne null au lieu de { x: 0, y: 0 } en absence de position personnalisée.

// Supprimé dans Electron 28
const pos = win.getTrafficLightPosition();
if (pos. === 0 && pos.y === 0) {
// Aucune position personnalisée.
}

// Remplacer par
const ret = win. etWindowButtonPosition();
if (ret === null) {
// Pas de position personnalisée.
}

Supprimé: ipcRenderer.sendTo()

La méthode ipcRenderer.sendTo() a été supprimée. It should be replaced by setting up a MessageChannel between the renderers.

The senderId and senderIsMainFrame properties of IpcRendererEvent have been removed as well.

Supprimé : app.runningUnderRosettaTranslation

The app.runningUnderRosettaTranslation property has been removed. Use app.runningUnderARM64Translation instead.

// Supprimé
console.log(app.runningUnderRosettaTranslation)
// A remplacer par
console.log(app.runningUnderARM64Translation);

Fin du support pour 25.x.y

Electron 25.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.

E28 (Dec'23)E29 (Fev'24)E24 (Avr'24)
28.x.y29.x.y30.x.y
27.x.y28.x.y29.x.y
26.x.y27.x.y28.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.

Electron 27.0.0

· 4 mins de lecture

Electron 27.0.0 est disponible ! Cette version inclut les mises à jour vers Chromium 118.0.5993.32, V8 11.8, et Node.js 18.17.1.


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 27.0.0 ! Vous pouvez l'installer via npm install electron@latest ou la télécharger depuis notre site officiel. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.

Si vous avez des commentaires, veuillez nous les partager sur Twitter ou Mastodon, ou rejoignez notre communauté Discord! Les bogues et les demandes de fonctionnalités peuvent être signalés dans le traqueur de tickets d'Electron.

Changements notables

Changements de la Stack

Changements majeurs avec rupture de compatibilité

Supprimé: support de macOS 10.13 / 10.14

macOS 10.13 (High Sierra) et macOS 10.14 (Mojave) ne sont plus pris en charge par Chromium.

Les anciennes versions d'Electron continueront à fonctionner sur ces systèmes d'exploitation, mais macOS 10. 3 (High Sierra) ou plus récent sera nécessaire pour exécuter Electron v20.0.0 et supérieur.

Déprécié : ipcRenderer.sendTo()

La méthode ipcRenderer.sendTo() a été dépréciée. Elle devra être remplacée par la mise en place d'un MessageChannel entre les moteurs de rendu.

Les propriétés senderId et senderIsMainFrame de IpcRendererEvent ont également été dépréciées.

Supprimé: les événements du color scheme dans systemPreferences

Les événements suivants de systemPreferences ont été supprimés:

  • inverted-color-scheme-changed
  • high-contrast-color-scheme-changed

Utilisez à la place le nouvel événement updated du module nativeTheme.

// Supprimé
systemPreferences.on('inverted-color-scheme-changed', () => {
/* ... */
});
systemPreferences.on('high-contrast-color-scheme-changed', () => {
/* ... */
});

// A remplacer par
nativeTheme.on('updated', () => {
/* ... */
});

Supprimé : webContents.getPrinters

La méthode webContents.getPrinters a été supprimée. Utilisez webContents.getPrintersAsync à la place.

const w = new BrowserWindow({ show: false });

// A Supprimer
console.log(w.webContents.getPrinters());
//Et remplacer par
w.webContents.getPrintersAsync().then((printers) => {
console.log(printers);
});

Supprimé: systemPreferences.{get,set}AppLevelAppearance et systemPreferences.appLevelAppearance

Les méthodes systemPreferences.getAppLevelAppearance et systemPreferences.setAppLevelAppearance sont obsolètes et supprimées, ainsi que la propriété systemPreferences.appLevelAppearance. Utiliser l'Api nativeTheme à la place .

// A supprimer
systemPreferences.getAppLevelAppearance();
// Et remplacer par
nativeTheme.shouldUseDarkColors;

// A supprimer
systemPreferences.appLevelAppearance;
// Et remplacer par
nativeTheme.shouldUseDarkColors;

// A supprimer
systemPreferences.setAppLevelAppearance('dark');
// Et remplacer par
nativeTheme.themeSource = 'dark';

Supprimé: La valeur alternate-selected-control-text de systemPreferences.getColor

La valeur alternate-selected-control-text pour systemPreferences.getColor a été supprimée. Utilisez selected-content-background à la place.

// Supprimé
systemPreferences.getColor('alternate-selected-control-text');
// Remplacé par
systemPreferences.getColor('selected-content-background');

Nouvelles fonctionnalités

  • Ajout des paramètres de transparence d’accessibilité de l’application #39631
  • Ajout de la prise en charge des API d’extension chrome.scripting#39675
  • Activation de WaylandWindowDecorations par défaut #39644

Fin du support pour 24.x.y

Electron 24.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.

E27 (Oct'23)E28 (Dec'23)E29 (Fev'24)
27.x.y28.x.y29.x.y
26.x.y27.x.y28.x.y
25.x.y26.x.y27.x.y

Fin du support pour 22.x.y

Un peu plus tôt cette année, l’équipe Electron a prolongé la date de fin de vie prévue de l’Electron 22 du 30 mai 2023 au 10 octobre 2023, afin de correspondre au support étendu de Chrome pour Windows 7/8/8.1 (voir Farewell, Windows 7/8/8.1 pour plus de détails).

Electron 22.x. y a atteint sa fin du support conformément à la politique de support du projet et à cette extension de support. Cela ramènera le support aux trois dernières versions majeures stables et mettra fin au support officiel de Windows 7/8/8.1.

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.

Vous pouvez trouver la chronologie publique d'Electron ici.

Vous trouverez plus d’informations sur les changements futurs sur la page changements de rupture prévus.

Electron 26.0.0

· 3 mins de lecture

Electron 26.0.0 est disponible ! Cette version inclut les mises à jour vers Chromium 116.0.5845.62, V8 11.2, et Node.js 18.16.1. Lisez la suite ci-dessous pour plus de détails !


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 26.0.0 ! Vous pouvez l'installer via npm install electron@latest ou la télécharger depuis notre site officiel. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.

Pour tout commentaire, veuillez partager avec nous sur Twitter, ou rejoindre notre communauté Discord! Les bogues et les demandes de fonctionnalités peuvent être signalés dans le traqueur de tickets d'Electron.

Changements notables

Changements de la Stack

Changements majeurs avec rupture de compatibilité

Déprécié : webContents.getPrinters

La méthode webContents.getPrinters a été dépréciée. Utilisez webContents.getPrintersAsync à la place.

const w = new BrowserWindow({ show: false });

// Déprécié
console.log(w.webContents.getPrinters());
// Remplacer par
w.webContents.getPrintersAsync().then((printers) => {
console.log(printers);
});

Déprécié: systemPreferences.{get,set}AppLevelAppearance and systemPreferences.appLevelAppearance

Les méthodes systemPreferences.getAppLevelAppearance et systemPreferences.setAppLevelAppearance sont obsolètes, ainsi que la propriété systemPreferences.appLevelAppearance. Utiliser l'Api nativeTheme à la place .

// Déprécié
systemPreferences.getAppLevelAppearance();
// Remplacer par
nativeTheme.shouldUseDarkColors;

// Déprécié
systemPreferences.appLevelAppearance;
// Remplacer par
nativeTheme.shouldUseDarkColors;

// Déprécié
systemPreferences.setAppLevelAppearance('dark');
// Remplacer par
nativeTheme.themeSource = 'dark';

Déprécié: valeur alternate-selected-control-text pour systemPreferences.getColor

Déprécié: la valeur alternate-selected-control-text pour systemPreferences.getColor. Utilisez selected-content-background à la place.

// Déprécié
systemPreferences.getColor('alternate-selected-control-text');
// A Remplacer par
systemPreferences.getColor('selected-content-background');

Nouvelles fonctionnalités

  • Added safeStorage.setUsePlainTextEncryption and safeStorage.getSelectedStorageBackend api. #39107
  • Added safeStorage.setUsePlainTextEncryption and safeStorage.getSelectedStorageBackend api. #39155
  • Added senderIsMainFrame to messages sent via ipcRenderer.sendTo(). #39206
  • Added support for flagging a Menu as being keyboard initiated. #38954

Fin du support pour 23.x.y

Electron 23.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.

E26 (Aout'23)E27 (Oct'23)E28 (Jan'24)
26.x.y27.x.y28.x.y
25.x.y26.x.y27.x.y
24.x.y25.x.y26.x.y
22.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.

Vous pouvez trouver la chronologie publique d'Electron ici.

Vous trouverez plus d’informations sur les changements futurs sur la page changements de rupture prévus.

Electron 25.0.0

· 5 mins de lecture

Electron 25.0.0 est disponible ! Cette version inclut les mises à jour vers Chromium 114, V8 11.4, et Node.js 18.15.0. Lisez la suite ci-dessous pour plus de détails !


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 25.0.0 ! Vous pouvez l'installer via npm install electron@latest ou la télécharger depuis notre site officiel. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.

Pour tout commentaire, veuillez partager avec nous sur Twitter, ou rejoindre notre communauté Discord! Les bogues et les demandes de fonctionnalités peuvent être signalés dans le traqueur de tickets d'Electron.

Changements notables

Points clés

  • Implémentation de net.fetch dans le module net d’Electron, en utilisant la pile réseau de Chromium. Ceci diffère de fetch() de Node, qui utilise la pile HTTP de Node.js. Pour plus de détails, voir 6986 et 36733.
  • Ajout de protocol.handle, remplaçant et dépréciant protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol. #36674
  • Prise en charge étendue d'Electron 22, afin de correspondre au plan de dépréciation de chromium et de Microsoft Windows 7/8/8.1 . Voir les détails supplémentaires à la fin de ce billet.

Changements de la Stack

Changements majeurs avec rupture de compatibilité

Déprécié : protocol.{register,intercept}{Buffer,String,Stream,File,Http}Protocol

Les méthodes protocol.register*Protocol et protocol.intercept*Protocol ont étés remplacées par protocol.handle.

La nouvelle méthode peut soit enregistrer un nouveau protocole ou intercepter un protocole existant, les réponses peuvent être de n'importe quel type.

// Déprécié dans Electron 25
protocol.registerBufferProtocol('some-protocol', () => {
callback({ mimeType: 'text/html', data: Buffer.from('<h5>Response</h5>') });
});

// Remplacé par
protocol.handle('some-protocol', () => {
return new Response(
Buffer.from('<h5>Response</h5>'), // Peut aussi être une chaîne de caractères ou ReadableStream.
{ headers: { 'content-type': 'text/html' } },
);
});
// Déprécié dans Electron 25
protocol.registerHttpProtocol('some-protocol', () => {
callback({ url: 'https://electronjs.org' });
});

// Remplacé par
protocol.handle('some-protocol', () => {
return net.fetch('https://electronjs.org');
});
// Déprécié dans Electron 25
protocol.registerFileProtocol('some-protocol', () => {
callback({ filePath: '/path/to/my/file' });
});

// Remplacé par
protocol.handle('some-protocol', () => {
return net.fetch('file:///path/to/my/file');
});

Déprécié : BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.setTrafficLightPosition(position) a été déprécié, l'API BrowserWindow.setWindowButtonPosition(position) doit être utilisée à la place et prend comme paramètres null au lieu de { x: 0, y: 0 } pour réinitialiser la position à celle par défaut du système.

// Déprécié dans Electron 25
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });

// Remplacé par
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);

Déprécié : BrowserWindow.getTrafficLightPosition()

BrowserWindow.getTrafficLightPosition() a été déprécié, l’API BrowserWindow.getWindowButtonPosition() doit être utilisée à la place, elle retourne null au lieu de { x: 0, y: 0 } en absence de position personnalisée.

// Deprecated in Electron 25
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// No custom position.
}

// A Remplacer par
const ret = win.getWindowButtonPosition();
if (ret === null) {
// Aucune position personalisée.
}

Nouvelles fonctionnalités

  • Ajout de net.fetch(). #36733
    • net.fetch prend en charge les requêtes vers les URLS de type file: ainsi que les protocoles personnalisés enregistrés avec protocol.register*Protocol. #36606
  • Ajout des API BrowserWindow.set/getWindowButtonPosition. #37094
  • Ajout de protocol.handle, remplaçant et dépréciant protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol. #36674
  • Ajout de l'événement will-frame-navigate aux webContents et balise <webview> , qui se déclenche chaque fois qu'une image dans la hiérarchie des images tente de naviguer. #34418
  • Ajout d'informations de l''initiateur aux événements du navigateur. Cette information permet de distinguer un window.open d'une frame parent causant une navigation d'une navigation initiée par un enfant. #37085
  • Ajout de net.resolveHost qui résout les hôtes en utilisant l'objet defaultSession . #38152
  • Ajout de l'événement 'did-resign-active' à app. #38018
  • Ajout de plusieurs options de taille de page standard à webContents.print(). #37159
  • Ajout du drapeau enableLocalEcho à la callback ses.setDisplayMediaRequestHandler() du gestionnaire de session pour permettre la reprise dans le flux de sortie local d'entrée audio distante lorsque audio est un WebFrameMain. #37315
  • Ajout des informations de gestion thermique à powerMonitor. #38028
  • Permet de passer un chemin absolu à l'API session.fromPath() . #37604
  • Expose l'événement audio-state-changed sur webContents. #37366

Support continu 22.x.y

Comme indiqué dans Adieu, Windows 7/8/8., Electron 22 (Chromium 108) la date prévue de fin de vie sera prolongée du 30 mai 2023 au 10 octobre 2023. L’équipe Electron continuera à rétroporter sur Electron 22 tous les correctifs de sécurité qui font partie de ce programme jusqu’au 10 octobre 2023. La date de prise en charge d'octobre suit les dates de prise en charge étendue de Chromium et de Microsoft. À partir du 11 octobre, l'équipe d'Électron limitera le support aux trois dernières versions majeures, celles ci ne prendront plus en charge Windows 7/8/8.1.

E25 (Mai'23)E26 (Aout'23)E27 (Oct'23)
25.x.y26.x.y27.x.y
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y22.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.

Vous pouvez trouver la chronologie publique d'Electron ici.

Vous trouverez plus d’informations sur les changements futurs sur la page changements de rupture prévus.

Electron 24.0.0

· 4 mins de lecture

Electron 24.0.0 est disponible ! Cette version inclut les mises à jour vers Chromium 112.0.5615.49, V8 11.2, et Node.js 18.14.0. Lisez la suite ci-dessous pour plus de détails !


L’équipe Electron est heureuse d’annoncer la sortie d’Electron 24.0.0 ! Vous pouvez l'installer via npm install electron@latest ou la télécharger depuis notre site officiel. Vous obtiendrez plus de détails sur cette version en lisant ce qui suit.

Pour tout commentaire, veuillez partager avec nous sur Twitter, ou rejoindre notre communauté Discord! Les bogues et les demandes de fonctionnalités peuvent être signalés dans le traqueur de tickets d'Electron.

Changements notables

Changements de la Stack

Changements majeurs avec rupture de compatibilité

API modifiée : nativeImage.createThumbnailFromPath(path, size)

Le paramètre maxSize a été changé en size pour refléter que la taille passée sera la taille que la miniature a créée. Auparavant, Windows ne redimensionnerait pas l’image si elle était plus petite que maxSize, et macOS définissait toujours la taille à maxSize. Désormais, le comportement est le même sur toutes les plateformes.

// a 128x128 image.
const imagePath = path.join('path', 'to', 'capybara.png');

// Mise à l'échelle d'une image plus petite.
const upSize = { width: 256, height: 256 };
nativeImage.createThumbnailFromPath(imagePath, upSize).then((result) => {
console.log(result.getSize()); // { width: 256, height: 256 }
});

// Mise à l'échelle d'une image plus grande.
const downSize = { width: 64, height: 64 };
nativeImage.createThumbnailFromPath(imagePath, downSize).then((result) => {
console.log(result.getSize()); // { width: 64, height: 64 }
});

Nouvelles fonctionnalités

  • Ajout de la possibilité de filtrer les cookies HttpOnly avec cookies.get(). #37365
  • Ajout de logUsage aux options shell.openExternal(), permettant ainsi de passer l’indicateur SEE_MASK_FLAG_LOG_USAGE à ShellExecuteEx sous Windows. Le drapeau SEE_MASK_FLAG_LOG_USAGE indique un lancement initié par l’utilisateur qui permet de suivre les programmes fréquemment utilisés et d’autres comportements. #37291
  • Ajout de types au filtre de webRequest, ajoutant la possibilité de filtrer les requêtes que vous écoutez. #37427
  • Ajout du nouvel événement devtools-open-url à webContents permettant aux développeurs d’ouvrir de nouvelles fenêtres avec eux. #36774
  • Ajout de plusieurs options de taille de page standard à webContents.print(). #37265
  • Ajout du drapeau enableLocalEcho à la callback ses.setDisplayMediaRequestHandler() du gestionnaire de session pour permettre la reprise dans le flux de sortie local d'entrée audio distante lorsque audio est un WebFrameMain. #37528
  • Permet de transmettre à inAppPurchase.purchaseProduct()un nom d’utilisateur spécifique à une application. #35902
  • window.invalidateShadow() pour effacer les artefacts visuels résiduels sur macOS. #32452
  • L’optimisation de l’ensemble du programme est maintenant activée par défaut dans le fichier de configuration de node d'Electron, permettant au compilateur d’effectuer des opimisations avec les informations de tous les modules d’un programme par opposition à une base par module (compilation). #36937
  • SystemPreferences::CanPromptTouchID (macOS) prend désormais en charge Apple Watch. #36935

Fin du support pour 21.x.y

Electron 21.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.

Comme indiqué dans Adieu, Windows 7/8/8., Electron 22 (Chromium 108) la date prévue de fin de vie sera prolongée du 30 mai 2023 au 10 octobre 2023. L’équipe Electron continuera à rétroporter sur Electron 22 tous les correctifs de sécurité qui font partie de ce programme jusqu’au 10 octobre 2023.

E24 (Avr'23)E25 (Mai'23)E26 (Aout'23)
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y23.x.y24.x.y
--22.x.y22.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.

Vous pouvez trouver la chronologie publique d'Electron ici.

Vous trouverez plus d’informations sur les changements futurs sur la page changements de rupture prévus.