Aller au contenu principal

41 articles tagués avec "Release"

Blog posts about new Electron releases

Voir tous les tags

Nouvelle Cadence de Sortie Electron

· 6 mins de lecture

A partir de Septembre 2021, Electron publiera une nouvelle version majeure et stable toutes les 8 semaines.


En 2019, Electron est passé à un cycle d'une publication toute les 12 semaines pour correspondre au cycle de publication de 6 semaines de Chromium. Récemment, Chrome et Microsoft ont annoncé des changements qui nous ont fait reconsidérer la cadence actuelle des versions d'Electron:

  1. Chromium prévoit de publier une release toutes les 4 semaines et ce à partir de Chrome 94 le 21 septembre 2021. Cette cadence de version ajoute également une nouvelle option Extended Stable toutes les 8 semaines, qui contiendra toutes les corrections de sécurité mises à jour.

  2. Le Microsoft Store nécessitera que les applications basées sur Chrome ne soient pas plus anciennes que de 2 versions majeures. Par exemple, si la dernière version majeure de Chromium est 85, tout navigateur basé sur Chromium doit être au moins sur Chromium version 83 ou supérieure. Cette règle inclut les applications Electron.

À partir de septembre 2021, Electron sortira une nouvelle version stable majeure toutes les 8 semaines, pour correspondre aux 8 semaines des versions stables de Chromium.

Notre première version avec Chromium Extended Stable sera Electron 15 le 21 septembre 2021.

Sachant que le changement de cadence de publication aura un impact sur d'autres applications en aval, nous voulions le faire savoir à notre communauté de développeurs le plus tôt possible. Pour en savoir plus, voyez notre calendrier de publication 2021.

Electron 15: Alpha Temporaire

Given that our original Electron 15 release targeted a non-Extended Stable version (Chromium's Extended Stable versions are based on their even-numbered versions), we needed to change our original target release date. However, an Electron app must use the most recent 2 major versions of Chromium to be accepted to the Microsoft Store, which made waiting for two Chromium versions untenable.

With these two requirements, our team faced a timing dilemma. Moving Electron 15 to include Chromium M94 would allow app developers to get on the very first Extended Stable version of Chromium; however, it would also shorten the beta-to-stable cycle to only 3 weeks.

To help with this switchover, Electron will offer a temporary alpha build, only for the Electron 15 release. This alpha build will allow developers more time to test and plan for an Electron 15 release, with a more stable build than our current nightlies.

The alpha channel build will ship for Electron 15 on July 20th, 2021. It will transition to a beta release on September 1st, 2021 with a stable release target of September 21st, 2021. Subsequent Electron releases will not have alpha releases.

Plan de diffusion pour 2021

Voici notre calendrier de publication pour 2021 :

ElectronChromeVersions alphaVersions bêtaVersion stableCycle stable (n° de semaine)
E13M91-05-Mars-202125-Mai-202112
E14M93-26-Mai-202131-Août-202114
E15M9420-Juil-202101-Sept-202121-Sept-20219 (comprend la version alpha)
E16M96-22-Sept-202116-Nov-20218
E17M98-17-Nov-202101-Fev-202211

Adding the alpha channel extends the development time before Electron 15's launch from 3 weeks to 9 weeks - closer to our new 8 week cycle, while still meeting the requirements for Windows Store submission.

To further help app developers, for the remainder of 2021 until May 2022, we will also be extending our supported versions policy from the latest 3 versions to the latest 4 versions of Electron. That means that even if you can't immediately alter your upgrade schedule, older versions of Electron will still receive security updates and fixes.

Tenir compte des préoccupations

Il y a une raison pour laquelle nous publions ce post bien avant que ce changement de cycle de publication ne soit prévu. Nous savons qu’un cycle de sortie plus rapide aura un impact réel sur les applications Electron - et certaines peuvent déjà amener à considérer notre cadence de sortie majeure agressive.

Nous avons tenté de répondre aux préoccupations communes ci-dessous :

❓ Pourquoi même faire ce changement ? Pourquoi ne pas garder la cadence de la sortie de 12 semaines ?

To deliver the most up-to-date versions of Chromium in Electron, our schedule needs to track theirs. More information around Chromium's release cycle can be found here.

Additionally, the current 12 week release cadence would be untenable with the Microsoft Store's new submission requirements. Even apps on the latest stable version of Electron would experience a roughly two week period where their app may be rejected under the new security requirements.

Every new Chromium release contains new features, bug fixes / security fixes, and V8 improvements. We want you, as app developers, to have these changes in a timely manner, so our stable release dates will continue to match every other Chromium stable release. As an app developer, you'll have access to new Chromium and V8 features and fixes sooner than before.

❓ Le calendrier de sortie des 12 semaines existantes se déplace déjà rapidement. Quelles mesures l'équipe prend-elle pour faciliter la mise à niveau ?

One advantage of more frequent releases is having smaller releases. We understand that upgrading Electron's major versions can be difficult. We hope that smaller releases will introduce fewer major Chromium and Node changes, as well as fewer breaking changes, per release.

❓ Y aura-t-il une version alpha disponible pour les futures versions d'Electron ?

There are no plans to support a permanent alpha release at this time. This alpha is only intended for Electron 15, as a way to help developers upgrade more easily in the shortened release period.

❓ Electron va-t-il étendre le nombre de versions supportées ?

We will be extending our supported version policy from the latest three versions to the latest four versions of Electron until May 2022, with the release of Electron 19. After Electron 19 is released, we'll return to supporting the latest three major versions, as well as the beta and nightly releases.

E13 (Mai 21)E14 (Aoû'21)E15 (Sep'21)E16 (Nov'21)E17 (Fév'23)E18 (Mar'22)E19 (Mai'22)
13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y19.x.y
12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y
11.x.y12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y
----12.x.y13.x.y14.x.y15.x.y--

Questions?

📨 Si vous avez des questions ou des préoccupations, veuillez nous écrire à info@electronjs.org ou rejoindre notre Discord. Nous savons qu'il s'agit d'un changement qui aura un impact sur de nombreuses applications et développeurs, et vos commentaires sont très importants pour nous. Nous voulons avoir de vos nouvelles !

Electron 13.0.0

· 4 mins de lecture

Electron 13.0.0 est disponible ! Cette version inclue les mises à jour pour Chromium 91, V8 9.1, 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 13.0.0 ! Vous pouvez l'installer via npm install electron@latest ou le télécharger depuis notre site officiel. Continuez de lire pour plus de détails sur cette version, et s'il vous plaît, partagez vos commentaires et remarques !

Changements notables

Changements de la Stack

Nouveautés de cette version

  • Ajout de la propriété process.contextIsolated qui indique si le contexte de rendu actuel a contextIsolation activé. #28252
  • Ajout de la nouvelle API session.storagePath pour obtenir le chemin des données spécifiques à la session sur le disque. #28866
  • Déprécié l'événement new-window de WebContents. Il est remplacé par webContents.setWindowOpenHandler()
  • Ajout de process.contextId utilisé par @electron/remote. #28251

Voir les notes de version 13.0.0 pour une liste complète des nouvelles fonctionnalités et des modifications.

Changements majeurs avec rupture de compatibilité

  • window.open() le paramètre frameName n'est plus défini comme titre de fenêtre. #27481
  • session.setPermissionCheckHandler(handler) a été modifié pour permettre au premier paramètre de handler, webContents d'être null. #19903

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

Changements d'API

  • Ajout de l'option roundedCorners pour BrowserWindow. #27572
  • Ajout de la nouvelle API session.storagePath pour obtenir le chemin des données spécifiques à la session sur le disque.28866
  • Ajout de la prise en charge du passage d'éléments DOM par le pont contextuel. #26776
  • Ajout de process.uptime() aux moteurs de rendu en bac à sable. #26684
  • Ajout de champs manquants aux paramètres émis dans le cadre de l'événement context-menu.#26788
  • Ajout de la prise en charge de l'enregistrement des service workers de l'extension Manifest V3.
  • Ajout de l’événement « registration-completed » aux ServiceWorkers. #27562

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 :

  • Déprécié l'événement new-window de WebContents. Il est remplacé par webContents.setWindowOpenHandler()

  • Suppression de shell.moveItemToTrash() qui était déprécié. #26723

  • Suppression des API d'extension BrowserWindow dépréciées suivantes: :

    • BrowserWindow.addExtension(path)
    • BrowserWindow.addDevToolsExtension(path)
    • BrowserWindow.removeExtension(name)
    • BrowserWindow.removeDevToolsExtension(name)
    • BrowserWindow.getExtensions()
    • BrowserWindow.getDevToolsExtensions()

    Utiliser l'API session à la place :

    • chemin ses.loadExtension(path)
    • ses.removeExtension(extension_id)
    • ses.getAllExtensions()
  • Les méthodes suivantes de systemPreferences ont été dépréciées :

    • systemPreferences.isDarkMode()
    • systemPreferences.isInvertedColorScheme()
    • systemPreferences.isHighContrastColorScheme()

    Veuillez utiliser à la place les propriétés de nativeTheme suivantes :

    • nativeTheme.shouldUseDarkColors
    • nativeTheme.shouldUseInvertedColorScheme
    • nativeTheme.shouldUseHighContrastColors

Fin du support pour 10.x.y

Electron 10.x.y a atteint sa limite pour le support conformément à la politique d'assistance du projetpolitique d'assistance. 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. Le planning escompté de la version 14.0.0 planning défini les dates clés du cycle de vie de développement d'Electron 14.0. Aussi, regardez notre document de versioning pour plus d'informations sur le versioning dans Electron.

Pour des informations sur les changements de rupture prévus dans les versions à venir d'Electron, regardez notre documentation sur les changements de rupture planifiés.

Electron 12.0.0

· 6 mins de lecture

Electron 12.0.0 est disponible ! It includes upgrades to Chromium 89, V8 8.9 and Node.js 14.16. We've added changes to the remote module, new defaults for contextIsolation, a new webFrameMain API, and general improvements. Lisez la suite ci-dessous pour plus de détails !


La team Electron est excitée d'annoncer la sortie de Electron 12.0.0 ! Vous pouvez l'installer via npm install electron@latest ou le télécharger depuis notre site officiel. Continuez de lire pour plus de détails sur cette version, et s'il vous plaît, partagez vos commentaires et remarques !

Changements notables

Changements de la Stack

Nouveautés de cette version

  • The ContextBridge exposeInMainWorld method can now expose non-object APIs. #26834
  • Upgraded from Node 12 to Node 14. #23249
  • Added a new webFrameMain API for accessing sub-frames of a WebContents instance from the main process. #25464
  • The default values of contextIsolation and worldSafeExecuteJavaScript are now true. #27949 #27502

Voir les notes de version 12.0.0 pour une liste complète des nouvelles fonctionnalités et des modifications.

Changements majeurs avec rupture de compatibilité

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

Changements d'API

  • Added webFrameMain API: The webFrameMain module can be used to look up frames across existing WebContents instances. This is the main process equivalent of the existing webFrame API. More information about this new API can be found here, and in our documentation.
  • app API changes:
    • Added non-localized serviceName to 'child-process-gone' / app.getAppMetrics(). #25975
    • Added new app.runningUnderRosettaTranslation property to detect when running under rosetta on Apple silicon. #26444
    • Added exitCode to render-process-gone details (app & webContents). #27677
  • BrowserWindow API changes:
    • Ajout de l'API BrowserWindow.isTabletMode(). #25209
    • Added resized (Windows/macOS) and moved (Windows) events to BrowserWindow. #26216
    • Added new system-context-menu event to allow preventing and overriding the system context menu. #25795
    • Added win.setTopBrowserView() so that BrowserViews can be raised. #27713
    • Added webPreferences.preferredSizeMode to allow sizing views according to their document's minimum size. #25874
  • contextBridge API changes:
    • Allowed ContextBridge exposeInMainWorld method to expose non-object APIs. #26834
  • display API changes:
    • Added displayFrequency property to the Display object to allow getting information about the refresh rate on Windows. #26472
  • extensions API changes:
    • Added support for some chrome.management APIs. #25098
  • MenuItem API changes:
    • Ajout de la prise en charge de l'affichage du menu de partage macOS. #25629
  • net API changes:
    • Ajout d'une nouvelle option credentials pour net.request(). #25284
    • Ajout de net.online pour détecter s'il existe actuellement une connexion Internet. #21004
  • powerMonitor API changes:
    • Ajout de powerMonitor.onBatteryPower. #26494
    • Added fast user switching event to powerMonitor on macOS. #25321
  • session API changes:
    • Ajout de l'option allowFileAccess à l'API ses.loadExtension(). #27702
    • Added display-capture API for session.setPermissionRequestHandler. #27696
    • Ajout d'une option disabledCipherSuites à session.setSSLConfig. #25818
    • Added extension-loaded, extension-unloaded, and extension-ready events to session. #25385
    • Added session.setSSLConfig() to allow configuring SSL. #25461
    • Added support for explicitly specifying direct, auto_detect or system modes in session.setProxy(). #24937
    • Added Serial API support. #25237
    • Added APIs to enable/disable spell checker. #26276
  • shell API changes:
    • Added a new asynchronous shell.trashItem() API, replacing the synchronous shell.moveItemToTrash(). #25114
  • webContents API changes:
    • Added a small console hint to console to help debug renderer crashes. #25317
    • Added frame and webContents properties to the details object in webRequest handlers. #27334
    • Added webContents.forcefullyCrashRenderer() to forcefully terminate a renderer process to assist with recovering a hung renderer. #25580
    • Added setWindowOpenHandler API for renderer-created child windows, and deprecate new-window event. #24517
  • webFrame API changes:
    • Added spellcheck API to renderer. #25060

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 :

  • Déprécié le module remote. It is replaced by @electron/remote. #25293
  • Suppression des API crashReporter dépréciées. #26709
  • Suppression des liens vers le site Web Electron du menu "Aide" par défaut dans les applications packagées. #25831

Fin du support pour 9.x.y

Electron 9.x.y a atteint sa limite pour le support conformément à la politique d'assistance du projetpolitique d'assistance. 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. Le planning escompté de la version 13.0.0 planning défini les dates clés du cycle de vie de développement d'Electron 13.0. Aussi, regardez notre document de versioning pour plus d'informations sur le versioning dans Electron.

Pour des informations sur les changements de rupture prévus dans les versions à venir d'Electron, regardez notre documentation sur les changements de rupture planifiés.

Electron 11.0.0

· 4 mins de lecture

Electron 11.0.0 est disponible ! Cette version inclue les mises à jour vers Chromium 87, V8 8.7, et Node.js 12.18.3. Nous avons ajouté la prise en charge d'Apple Silicon en plus d'autres 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 11.0.0 ! Vous pouvez l'installer via npm install electron@latest ou le télécharger depuis notre site officiel. La version est livrée avec des mises à jours, des correctifs et une nouvelle prise en charge du matériel M1 d'Apple.

On a hâte de voir vos prochaines créations avec cette version ! Continuez de lire pour plus de détails sur cette version, et s'il vous plaît, partagez vos commentaires et remarques !

Changements notables

Changements de la Stack

Nouveautés de cette version

  • Prise en charge d'Apple M1 : le 10 novembre, Apple a annoncé leur nouvelles puces M1, qui seront incluses dans leurs prochains matériels. À partir d'Electron 11, Electron livrera des versions séparées d'Electron pour les Mac Intel (x64) et pour le prochain matériel M1 d'Apple (arm64). Vous pouvez en savoir plus sur comment faire fonctionner votre application Electron sur le matériel M1 d'Apple ici. #24545
  • Ajout d’un message de plantage V8 et d’informations de localisation aux paramètres de crashReport. #24771
  • Improved the performance of sending wide objects over the context bridge. #24671

Voir les notes de version 11.0.0 pour une liste complète des nouvelles fonctionnalités et des modifications.

Changements majeurs avec rupture de compatibilité

  • Removed experimental APIs: BrowserView.{fromId, fromWebContents, getAllViews} and the id property of BrowserView. #23578

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

Changements d'API

  • Added app.getApplicationInfoForProtocol() API that returns detailed information about the app that handles a certain protocol. #24112
  • Added app.createThumbnailFromPath() API that returns a preview image of a file given its file path and a maximum thumbnail size. #24802
  • Added webContents.forcefullyCrashRenderer() to forcefully terminate a renderer process to assist with recovering a hung renderer. #25756

Fin du support pour 8.x.y

Electron 8.x.y a atteint sa limite pour le support conformément à la politique d'assistance du projetpolitique d'assistance. 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. Although we are careful not to make promises about release dates, our plan is to release new major versions of Electron with new versions of those components approximately quarterly. Le planning escompté de la version 12.0.0 planning défini les dates clés du cycle de vie de développement d'Electron 12.0. Aussi, regardez notre document de versioning pour plus d'informations sur le versioning dans Electron.

Pour des informations sur les changements de rupture prévus dans les versions à venir d'Electron, regardez notre documentation sur les changements de rupture planifiés.

Continued Work for Deprecation of remote Module

We started work to remove the remote module in Electron 9. We plan to remove the remote module itself in Electron 14.

Read and follow this issue for full plans and details for deprecation.

Étape finale pour exiger que les Modules Natifs de Node soient Context Aware ou N-API (dans Electron 12)

À partir d'Electron 6, nous avons préparé le terrain pour que les modules Node natifs chargés dans le processus de rendu, soient soit N-API ou Context Aware. L'imposition de ce changement apporte une sécurité accrue, des performances plus rapides et une charge de travail de maintenance réduite. La dernière étape de ce plan est de supprimer la possibilité de désactiver la réutilisation du processus de rendu dans Electron 12.

Read and follow this issue for full details, including the proposed timeline.

Electron 10.0.0

· 5 mins de lecture

Electron 10.0.0 est disponible ! Cette version inclue les mises à jour vers Chromium 85, V8 8.5, et Node.js 12.16. Nous avons ajouté plusieurs nouvelles intégrations et améliorations de l'API. Lisez la suite ci-dessous pour plus de détails !


La team Electron est excitée d'annoncer la sortie de Electron 10.0.0 ! Vous pouvez l'installer via npm install electron@latest ou le télécharger depuis notre site officiel. Cette version inclue des mises à jour, des correctifs et de nouvelles fonctionnalités.

Dans cette version 10 de Electron, nous avons également modifié notre note de sorte. Pour qu'il soit plus facile de distiniguer ce qui est nouveau dans Electron 10 et ce qui peut avoir changé entre Electron 10 et les versions précédentes, nous incluons maintenant également des changements qui ont été introduits dans Electron 10, mais qui ont été rétroportés aux versions précédentes. Nous espérons que cela rendra l'intégration de nouvelles fonctionnalités et corrections plus facile pour les applications lors des mises à niveau d'Electron.

On a hâte de voir vos prochaines créations avec cette version ! Continuez de lire pour plus de détails sur cette version, et s'il vous plaît, partagez vos commentaires et remarques !

Changements notables

Changements de la Stack

Nouveautés de cette version

  • Added contents.getBackgroundThrottling() method and contents.backgroundThrottling property. [#21036]
  • Exposed the desktopCapturer module in the main process. #23548
  • Can now check if a given session is persistent by calling the ses.isPersistent() API. #22622
  • Resolve network issues that prevented RTC calls from being connected due to network IP address changes and ICE. (Chromium issue 1113227). #24998

Voir les notes de version 10.0.0 pour une liste complète des nouvelles fonctionnalités et des modifications.

Changements majeurs avec rupture de compatibilité

  • Changed the default value of enableRemoteModule to false. #22091
    • This is part of our plans for deprecating the remote module and moving it to userland. You can read and follow this issue that details our reasons for this and includes a proposed timeline for deprecation.
  • Changed the default value of app.allowRendererProcessReuse to true. #22336 (Also in Electron 9)
    • This will prevent loading of non-context-aware native modules in renderer processes.
    • You can read and follow this issue that details our reasons for this and includes a proposed timeline for deprecation.
  • Fixed the positioning of window buttons on macOS when the OS locale is set to an RTL language (like Arabic or Hebrew). Frameless window apps may have to account for this change while styling their windows. #22016

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

Changements d'API

  • Session: Can now check if a given session is persistent by calling the ses.isPersistent() API. #22622
  • Contents: Added contents.getBackgroundThrottling() method and contents.backgroundThrottling property. #21036

Deprecated APIs

The following APIs are now deprecated or removed:

  • Removed the deprecated currentlyLoggingPath property of netLog. Additionally, netLog.stopLogging no longer returns the path to the recorded log. #22732
  • Deprecated uncompressed crash uploads in crashReporter. #23598

Fin du support pour 7.x.y

Electron 7.x.y a atteint sa limite pour le support conformément à la politique d'assistance du projetpolitique d'assistance. 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. Le planning escompté de la version 11.0.0 planning défini les dates clés du cycle de vie de développement d'Electron 11.0. Aussi, regardez notre document de versioning pour plus d'informations sur le versioning dans Electron.

Pour des informations sur les changements de rupture prévus dans les versions à venir d'Electron, regardez notre documentation sur les changements de rupture planifiés.

Poursuite du travail pour la dépréciation du module remote (dans Electron 11)

Nous avons commencé à travailler pour supprimer le module remote dans Electron 9 et nous continuons à envisager de supprimer le module remote. Dans Electron 11, nous prévoyons de poursuivre le travail de refactorisation pour l'implémentation de WeakRef comme nous l'avons fait avec Electron 10. Veuillez lire et suivre ce problème pour tous les plans et détails de la dépréciation.

Étape finale pour exiger que les Modules Natifs de Node soient Context Aware ou N-API (dans Electron 12)

Edit : À l'origine, ce billet de blog indiquait que nous désactiverions la réutilisation du processus de rendu dans Electron 11. La désactivation de la réutilisation du processus de rendu a maintenant été poussée vers Electron 12.

À partir d'Electron 6, nous avons préparé le terrain pour que les modules Node natifs chargés dans le processus de rendu, soient soit N-API ou Context Aware. L'imposition de ce changement apporte une sécurité accrue, des performances plus rapides et une charge de travail de maintenance réduite. La dernière étape de ce plan est de supprimer la possibilité de désactiver la réutilisation du processus de rendu dans Electron 12. Lisez à propos ce problème pour tous les détails, y compris le calendrier proposé.

Electron 9.0.0

· 4 mins de lecture

Electron 9.0.0 est disponible ! Cette version inclue les mises à jour vers Chromium 83, V8 8.3, et Node.js 12.14. We've added several new API integrations for our spellchecker feature, enabled PDF viewer, and much more!


La team Electron est excitée d'annoncer la sortie de Electron 9.0.0 ! Vous pouvez l'installer via npm install electron@latest ou le télécharger depuis notre site officiel. Cette version inclue des mises à jour, des correctifs et de nouvelles fonctionnalités. On a hâte de voir vos prochaines créations avec cette version ! Continuez de lire pour plus de détails sur cette version, et s'il vous plaît, partagez vos commentaires et remarques !

Changements notables

Changements de la Stack

Nouveautés de cette version

  • Multiple improvements to the spellchecker feature. See more details in #22128 and #22368.
  • Improved window events handler efficiency on Linux. #23260.
  • Enable PDF viewer. #22131.

Voir les notes de version 9.0.0 pour une liste complète des nouvelles fonctionnalités et des modifications.

Changements majeurs avec rupture de compatibilité

  • Deprecation warning when using remote without enableRemoteModule: true. #21546
    • This is the first step in our plans for deprecating the remote module and moving it to userland. You can read and follow this issue that details our reasons for this and includes a proposed timeline for deprecation.
  • Set app.enableRendererProcessReuse to true by default. #22336
    • This is continued work for a future requirement that native Node modules loaded in the renderer process be either N-API or Context Aware. Full info and proposed timeline is detailed in this issue.
  • Sending non-JavaScript objects over IPC now throws an exception. #21560
    • This behavior was depreciated in Electron 8.0. In Electron 9.0, the old serialization algorithm has been removed, and sending such non-serializable objects will now throw an "object could not be cloned" error.

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

Changements d'API

  • shell API changes:
    • The shell.openItem API has been replaced with an asynchronous shell.openPath API. proposal
  • sessionAPI changes:
    • Added session.listWordsFromSpellCheckerDictionary API to list custom words in the dictionary. #22128
    • Added session.removeWordFromSpellCheckerDictionary API to remove custom words in the dictionary. #22368
    • Added session.serviceWorkerContext API to access basic service worker info and receive console logs from service workers. #22313
  • app API changes:
    • Added a new force parameter to app.focus() on macOS to allow apps to forcefully take focus. #23447
  • BrowserWindow API changes:
    • Added support for property access to some getter/setter pairs on BrowserWindow. #23208

Deprecated APIs

The following APIs are now deprecated or removed:

  • shell.openItem API is now depreciated, and replaced with an asynchronous shell.openPath API.
  • <webview>.getWebContents, which was deprecated in Electron 8.0, is now removed.
  • webFrame.setLayoutZoomLevelLimits, which was deprecated in Electron 8.0, is now removed.

Fin du support pour 6.x.y

Electron 6.x.y a atteint la fin du support conformément au projet politique d'assistance. 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. Le planning escompté de la version 10.0.0 planning défini les dates clés du cycle de vie de développement d'Electron 10.0. Aussi, regardez notre document de versioning pour plus d'informations sur le versioning dans Electron.

Pour des informations sur les changements de rupture prévus dans les versions à venir d'Electron, regardez notre documentation sur les changements de rupture planifiés.

Change the default of contextIsolation from false to true (Starting in Electron 10)

Without contextIsolation, any code running in a renderer process can quite easily reach into Electron internals or an app's preload script. That code can then perform privileged actions that Electron wants to keep restricted.

Changing this default improves the default security of Electron apps, so that apps will need to deliberately opt in to the insecure behaviour. Electron will depreciate the current default of contextIsolation in Electron 10.0, and change to the new default (true) in Electron 12.0.

For more information on contextIsolation, how to enable it easily and it's security benefits please see our dedicated Context Isolation Document.

Electron 8.0.0

· 6 mins de lecture

Electron 8.0.0 est disponible ! Cette version inclue les mises à jour vers Chromium 80, V8 8.0, et Node.js 12.13.0. We've added Chrome's built-in spellchecker, and much more!


La team Electron est excitée d'annoncer la sortie de Electron 8.0.0 ! Vous pouvez l'installer via npm install electron@latest ou le télécharger depuis notre site officiel. Cette version inclue des mises à jour, des correctifs et de nouvelles fonctionnalités. On a hâte de voir vos prochaines créations avec cette version ! Continuez de lire pour plus de détails sur cette version, et s'il vous plaît, partagez vos commentaires et remarques !

Changements notables

Changements de la Stack

Nouveautés de cette version

  • Implemented usage of Chrome's built-in spellchecker feature. See more details in #20692 and #21266.
  • IPC communication now uses v8's Structured Clone Algorithm. This is faster, more featureful, and less surprising than the existing logic, and brings about a 2x performance boost for large buffers and complex objects. Latency for small messages is not significantly affected. See more details in #20214.

Voir les notes de version 8.0.0 pour une liste complète des nouvelles fonctionnalités et des modifications.

Changements majeurs avec rupture de compatibilité

  • Show module name in deprecation warning for context-aware modules. #21952
    • This is continued work for a future requirement that native Node modules loaded in the renderer process be either N-API or Context Aware. Full info and proposed timeline is detailed in this issue.
  • Values sent over IPC are now serialized with Structured Clone Algorithm. #20214
  • Offscreen Rendering is currently disabled due to lack of a maintainer to work on this feature. It broke during the Chromium upgrade and was subsequently disabled. #20772

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

Changements d'API

  • app API changes:
    • Ajout de app.getApplicationNameForProtocol(url). #20399
    • Added app.showAboutPanel() and app.setAboutPanelOptions(options) support on Windows. #19420
  • BrowserWindow API changes:
    • Updated docs to note that BrowserWindow options hasShadow is available on all platforms #20038
    • Added trafficLightPosition option to BrowserWindow options to allow custom positioning for traffic light buttons. #21781
    • Added accessibleTitle option to BrowserWindow for setting the accessible window title #19698
    • BrowserWindow.fromWebContents() can now return null #19983
    • Added BrowserWindow.getMediaSourceId() and BrowserWindow.moveAbove(mediaSourceId). #18926
    • Added support for will-move event on macOS. #19641
  • Documenté précédemment non documenté crashReporter.getCrashesDirectory(). #20417
  • dialog API changes:
    • Added dontAddToRecent property to dialog.showOpenDialog and dialog.showOpenDialogSync to prevent documents from being added to recent documents on Windows in open dialogs. #19669
    • Added property customization to dialog.showSaveDialog and dialog.showSaveDialogSync. #19672
  • Notification API changes:
    • Added timeoutType option to allow Linux/Windows users to set the type of notification timeout. #20153
    • Added urgency option to set urgency on Linux notifications. #20152
  • session API changes:
    • Updated documentation on session.setProxy(config) and session.setCertificateVerifyProc(proc) to note optional options. #19604
    • Added session.downloadURL(url) to allow to triggering downloads without a BrowserWindow. #19889
    • Added support for HTTP preconnect resource hints via session.preconnect(options) and the preconnect event. #18671
    • Added session.addWordToSpellCheckerDictionary to allow custom words in the dictionary #21297
  • Added option to shell.moveItemToTrash(fullPath[, deleteOnFail]) on macOS to specify what happens when moveItemToTrash fails. #19700
  • systemPreferences API changes:
    • Updated systemPreferences.getColor(color) documentation for macOS. #20611
    • Ajout du type de média screen à systemPreferences.getMediaAccessStatus(). #20764
  • Added nativeTheme.themeSource to allow apps to override Chromium and the OS's theme choice. #19960
  • TouchBar API changes:
    • Added accessibilityLabel property to TouchBarButton and TouchBarLabel to improve TouchBarButton/TouchBarLabel accessibility. #20454
    • Updated TouchBar related documentation #19444
  • tray API changes:
    • Added new options to tray.displayBalloon(): iconType, largeIcon, noSound and respectQuietTime. #19544
    • Added tray.removeBalloon(), which removes an already displayed balloon notification. #19547
    • Added tray.focus(), which returns focus to the taskbar notification area. feat: add tray.focus() #19548
  • webContents API changes:
    • Added contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture]) to expose executeJavaScriptInIsolatedWorld on the webContents API. #21190
    • Added methods to capture a hidden webContents. #21679
    • Added options to webContents.print([options], [callback]) to enable customization of print page headers and footers. #19688
    • Added ability to inspect specific shared workers via webContents.getAllSharedWorkers() and webContents.inspectSharedWorkerById(workerId). #20389
    • Added the support of fitToPageEnabled and scaleFactor options in WebContents.printToPDF(). #20436
  • Updated webview.printToPDF documentation to indicate return type is now Uint8Array. #20505

Deprecated APIs

The following APIs are now deprecated:

  • Deprecated the nonfunctional visibleOnFullScreen option within BrowserWindow.setVisibleOnAllWorkspaces prior to its removal in the next major release version. #21732
  • Deprecated alternate-selected-control-text on systemPreferences.getColor(color) for macOS. #20611
  • Deprecated setLayoutZoomLevelLimits on webContents, webFrame, and <webview> Tag because Chromium removed this capability. #21296
  • The default value of false for app.allowRendererProcessReuse is now deprecated. #21287
  • Deprecated <webview>.getWebContents() as it depends on the remote module. #20726

Fin du support pour 5.x.y

Electron 5.x.y a atteint la fin du support conformément au projet politique d'assistance. Nous encourageons les développeurs à mettre à jour vers une version plus récente d'Electron et de faire de même avec leurs applications.

Programme de feedback

Nous continuons à utiliser notre Programme de Feedback de l'application pour les tests. Les projets qui participent à ce programme testent les bétas d'Electron sur leurs applications ; et en retour, les nouveaux bogues qu'ils trouvent sont priorisés pour la version stable. Si vous souhaitez participer ou en savoir plus, consultez notre blog sur le programme.

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. Le planning escompté de la version 9.0.0 planning défini les dates clés du cycle de vie de développement d'Electron 9. Aussi, regardez notre document de versioning pour plus d'informations sur le versioning dans Electron.

Pour des informations sur les changements de rupture prévus dans les versions à venir d'Electron, regardez notre documentation sur les changements de rupture planifiés.

Deprecation of remote Module (Starting in Electron 9)

Due to serious security liabilities, we are beginning plans to deprecate the remote module starting in Electron 9. You can read and follow this issue that details our reasons for this and includes a proposed timeline for deprecation.

Electron 7.0.0

· 4 mins de lecture

Electron 7.0.0 est disponible ! Il comprend des mises à jour vers Chromium 78, V8 7.8 et Node.js 12.8.1. Sur la version Arm 64, nous avons ajouté une fenêtre , des méthodes IPC plus rapides, une nouvelle API nativeTheme et bien plus encore !


La team Electron est excitée d'annoncer la sortie de Electron 7.0.0 ! Vous pouvez l'installer via npm install electron@latest ou le télécharger depuis notre site officiel. Cette version inclue des mises à jour, des correctifs et de nouvelles fonctionnalités. On a hâte de voir vos prochaines créations avec cette version ! Continuez de lire pour plus de détails sur cette version, et s'il vous plaît, partagez vos commentaires et remarques !

Changements notables

  • Stack Upgrades:

    StackVersion dans Electron 6Version dans Electron 7Quoi de neuf
    Chromium76.0.3809.14678.0.3905.177, 78
    V87.67.87.7, 7.8
    Node.js12.4.012.8.112.5, 12.6, 12.7, 12.8, 12.8.1
  • Added Windows on Arm (64 bit) release. #18591, #20112

  • Added ipcRenderer.invoke() and ipcMain.handle() for asynchronous request/response-style IPC. These are strongly recommended over the remote module. See this "Electron’s ‘remote’ module considered harmful" blog post for more information. #18449

  • Added nativeTheme API to read and respond to changes in the OS's theme and color scheme. #19758, #20486

  • Switched to a new TypeScript Definitions generator. The resulting definitions are more precise; so if your TypeScript build fails, this is the likely cause. #18103

See the 7.0.0 release notes for a longer list of changes.

Changements majeurs avec rupture de compatibilité

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

  • Removed deprecated APIs:
    • Callback-based versions of functions that now use Promises. #17907
    • Tray.setHighlightMode() (macOS). #18981
    • app.enableMixedSandbox() #17894
    • app.getApplicationMenu(),
    • app.setApplicationMenu(),
    • powerMonitor.querySystemIdleState(),
    • powerMonitor.querySystemIdleTime(),
    • webFrame.setIsolatedWorldContentSecurityPolicy(),
    • webFrame.setIsolatedWorldHumanReadableName(),
    • webFrame.setIsolatedWorldSecurityOrigin() #18159
  • Session.clearAuthCache() no longer allows filtering the cleared cache entries. #17970
  • Native interfaces on macOS (menus, dialogs, etc.) now automatically match the dark mode setting on the user's machine. #19226
  • Updated the electron module to use @electron/get. The minimum supported node version is now Node 8. #18413
  • The file electron.asar no longer exists. Any packaging scripts that depend on its existence should be updated. #18577

Fin du support pour 4.x.y

Electron 4.x.y a atteint la fin du support conformément au projet politique d'assistance. Nous encourageons les développeurs à mettre à jour vers une version plus récente d'Electron et de faire de même avec leurs applications.

Programme de feedback

We continue to use our App Feedback Program for testing. Projects who participate in this program test Electron betas on their apps; and in return, the new bugs they find are prioritized for the stable release. If you'd like to participate or learn more, check out our blog post about the program.

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. Le planning escompté de la version 8.0.0 planning défini les dates clés du cycle de vie de développement d'Electron 8. Aussi, regardez notre document de versioning pour plus d'informations sur le versioning dans Electron.

Pour des informations sur les changements de rupture prévus dans les versions à venir d'Electron, regardez notre documentation sur les changements de rupture planifiés.

Electron 6.0.0

· 5 mins de lecture

La team Electron est excitée d'annoncer la sortie de Electron 6.0.0 ! Vous pouvez l'installer via npm install electron@latest ou le télécharger depuis notre site officiel. Cette version inclue des mises à jour, des correctifs et de nouvelles fonctionnalités. On a hâte de voir vos prochaines créations avec cette version ! Continuez de lire pour plus de détails sur cette version, et s'il vous plaît, partagez vos commentaires et remarques !


Quoi de neuf

Today marks a first for the Electron project: this is the first time we've made a stable Electron release on the same day as the corresponding Chrome stable release! 🎉

Much of Electron's functionality is provided by the core components of Chromium, Node.js, and V8. Electron keeps up-to-date with these projects to provide our users with new JavaScript features, performance improvements, and security fixes. Each of these packages has a major version bump in Electron 6:

This release also includes improvements to Electron's APIs. The release notes have a more complete list, but here are the highlights:

Promisification

Electron 6.0 continues the modernization initiative started in 5.0 to improve Promise support.

These functions now return Promises and still support older callback-based invocation:

  • contentTracing.getCategories() #16583
  • contentTracing.getCategories() #16583
  • contentTracing.getTraceBufferUsage() #16600
  • contents.executeJavaScript() #17312
  • cookies.flushStore() #16464
  • cookies.get() #16464
  • cookies.remove() #16464
  • cookies.set() #16464
  • dialog.showCertificateTrustDialog() #17181
  • inAppPurchase.getProducts() #17355
  • inAppPurchase.purchaseProduct()#17355
  • netLog.stopLogging() #16862
  • session.clearAuthCache() #17259
  • session.clearCache() #17185
  • session.clearHostResolverCache() #17229
  • session.clearStorageData() #17249
  • session.getBlobData() #17303
  • session.getCacheSize() #17185
  • session.resolveProxy() #17222
  • session.setProxy() #17222
  • webContents.hasServiceWorker() #16535
  • webContents.printToPDF() #16795
  • webContents.savePage() #16742
  • webFrame.executeJavaScript() #17312
  • webFrame.executeJavaScriptInIsolatedWorld() #17312
  • webviewTag.executeJavaScript() #17312

Ces fonctions ont maintenant deux formes, synchrone et asynchrone basées sur Promise :

  • dialog.showMessageBox()/dialog.showMessageBoxSync() #17298
  • dialog.showOpenDialog()/dialog.showOpenDialogSync() #16973
  • dialog.showSaveDialog()/dialog.showSaveDialogSync() #17054

These functions now return Promises:

Electron Helper (Renderer).app, Electron Helper (GPU).app and Electron Helper (Plugin).app

In order to enable the hardened runtime, which restricts things like writable-executable memory and loading code signed by a different Team ID, special code signing entitlements needed to be granted to the Helper.

To keep these entitlements scoped to the process types that require them, Chromium added three new variants of the Helper app: one for renderers (Electron Helper (Renderer).app), one for the GPU process (Electron Helper (GPU).app) and one for plugins (Electron Helper (Plugin).app).

Folks using electron-osx-sign to codesign their Electron app shouldn't have to make any changes to their build logic. Si vous coconcevez votre application avec des scripts personnalisés, vous devriez vous assurer que les trois nouvelles applications Helper sont correctement codées.

Afin d'empaqueter correctement votre application avec ces nouveaux helpers, vous devez utiliser electron-packager@14.0.4 ou une version supérieure. Si vous utilisez electron-builder , vous devriez suivre ce problème pour suivre le support de ces nouveaux aides.

Changements majeurs avec rupture de compatibilité

  • Cette version commence à poser les bases d'une future exigence selon laquelle les modules natifs de Node.js chargés dans le processus de rendu soient soit N-API ou Context Aware. Les raisons de ce changement sont des performances plus rapides, une sécurité accrue et une charge de travail de maintenance réduite. Lisez tous les détails, y compris le calendrier proposé dans ce problème. Cette modification devrait être terminée dans Electron v11.

  • les headers net.IncomingMessage ont légèrement changé pour correspondre plus étroitement au comportement de Node.js, en particulier avec la valeur de set-cookie et la manière dont les headers en double sont gérés. #17517.

  • shell.showItemInFolder()retourne désormais void, est un appel asynchrone. #17121

  • Les applications doivent maintenant définir explicitement un chemin de log en appelant la nouvelle fonction app.setAppLogPath() avant d'utiliser app.getPath('log'). #17841

Fin du support pour 3.x.y

Par notre politique de support, 3.x.y a atteint sa fin de la vie. Nous encourageons les développeurs à mettre à jour vers une version plus récente d'Electron et de faire de même avec leurs applications.

Programme de feedback

Nous continuons à utiliser notre Programme de Feedback de l'application pour les tests. Les projets qui participent à ce programme testent les bétas d'Electron sur leurs applications ; et en retour, les nouveaux bogues qu'ils trouvent sont priorisés pour la version stable. Si vous souhaitez participer ou en savoir plus, consultez notre blog sur le programme.

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. Le planning escompté de la version 7.0.0 planning défini les dates clés du cycle de vie de développement d'Electron 7. Aussi, regardez notre document de versioning pour plus d'informations sur le versioning dans Electron.

Pour des informations sur les changements de rupture prévus dans les versions à venir d'Electron, regardez notre documentation sur les changements de rupture planifiés.

Nouvelle Cadence de Sortie Electron

· 3 mins de lecture
⚡ Update (2021-07-14): Nous allons encore plus vite !

Au troisième trimestre 2021, l'équipe Chrome a augmenté sa cadence de publication de passant ainsi de 6 semaines à toutes les 4 semaines. Les versions d'Electron ont fait de même. Veuillez lire l'article miseà jour au sujet de la cadence de 8 semaines article de blog pour plus d’informations récentes!

🎉 Electron sort une nouvelle version stable majeure toutes les 12 semaines ! 🎉


⚡ Wow c'est rapide ! Mais pourquoi?

En termes simples, Chromium n’arrête pas de livrer des nouvelles versions, donc Electron ne va pas ralentir non plus.

Sorties de Chromium sur un calendrier cohérent de 6 semaines. To deliver the most up-to-date versions of Chromium in Electron, our schedule needs to track theirs. More information around Chromium's release cycle can be found here.

🚀 Pourquoi toutes les 12 semaines?

Toutes les 6 semaines, une nouvelle version de Chromium est déployée avec de nouvelles fonctionnalités, des corrections de bugs / des correctifs de sécurité et des améliorations de V8. Les utilisateurs d'Electron ont été très insistants et très clairs sur le souhait que ces changements soient effectués dans les plus brefs délais. Nous avons donc adaptés nos dates de publications à celles de Chromium. En premier lieu, la v6.0.0 d'Electron inclura M76 et la version stable est prévue pour le 30 juillet 2019, le même jour que celle de Chromium M76.

🚧 Qu'est-ce que cela signifie pour moi et mon application Electron ?

Vous aurez accès aux nouvelles fonctionnalités et correctifs de Chromium et V8 plus tôt qu'auparavant. Il est important de noter que vous serez également avertis lorsque ces nouveaux changements arriveront, de sorte que vous serez en mesure de planifier avec de meilleures informations qu’auparavant.

L'équipe d'Electron continuera à supporter les trois dernières versions majeures. Par exemple, lorsque v6.0.0 sera stable le 30 juillet 2019, nous prendrons en charge v6.x, v5.x et v4.x, tandis que v3.x atteindra sa fin de vie.

💬 Programme de feedback

Ce serait bien d'envisager de rejoindre notre App Feedback Program pour nous aider à tester nos versions bêta et notre stabilisation. Les projets qui participent à ce programme testent les bétas d'Electron sur leurs applications ; et en retour, les nouveaux bogues qu'ils trouvent sont priorisés pour la version stable.

📝 Un bref historique des versions d'Electron

Les décisions concernant les versions stables avant la version 3.0.0 n’ont pas suivi de calendrier. Nous avons ajouté des calendriers internes au projet avec v3.0.0 et v4.0.0. En début d'année, nous avons décidé de publier pour la première fois la date de version stable Electron v5.0.0. L'annonce de nos dates de publication stable a été bien reçue et nous sommes heureux de continuer à le faire pour les prochaines versions.

Afin de mieux rationaliser ces efforts liés aux mises à niveau, nos groupes de travail Upgrades et Releases ont été créés au sein de notre système Governance. Ils nous ont permis de mieux hiérarchiser et déléguer ce travail, ce qui, nous l'espérons, deviendra plus évident avec chaque version ultérieure.

Voici où notre nouvelle cadence nous placera par rapport à celle de Chromium :

line graph comparing Electron versus Chromium versions

📨 Si vous avez des questions, veuillez nous écrire à info@electronjs.org.