Aller au contenu principal

Electron becomes an OpenJS Foundation Impact Project

· Une min de lecture

At OpenJS World this morning, we announced that Electron has officially graduated from the OpenJS Foundation's incubation program, and is now an OpenJS Foundation Impact Project.

Electron entered incubation in December of 2019, at the last OpenJS Foundation global conference in Montreal. We're excited to take a larger role in the JavaScript community as an Impact Project, and continue our partnership with the OpenJS Foundation.


Learning more

You can read up on the foundation, its mission, and its members on the OpenJSF website. The OpenJS Foundation is host to a number of open source JavaScript projects including jQuery, Node.js, and webpack. It's supported by 30 corporate and end-user members, including GoDaddy, Google, IBM, Intel, Joyent, and Microsoft.

Electron is an open–source framework for building cross-platform desktop applications with web technologies. To learn more about the humans behind Electron and how they work together, take a look at our Governance page.

To get started with Electron itself, take a peek at our documentation.

Google Season of Docs

· 3 mins de lecture

Electron est fier de participer à la deuxième édition de l'initiative de Google Season of Docs, qui associe des mentors d'organisations open source avec des rédacteurs techniques pour améliorer la documentation du projet.


Qu'est-ce que Season of Docs ?

logo de Season of Docs

Season of Docs est un programme qui favorise la collaboration entre les rédacteurs techniques et les communautés open source au profit des deux parties. Les responsables de l’open source utilisent l’expertise technique de rédaction de l’auteur pour améliorer la structure et le contenu de leur documentation, tandis que le rédacteur technique est présenté à une communauté open source sous la direction de ses mentors. En savoir plus à ce sujet sur le site Web de google Season of Docs.

Pour la première fois que nous participerons au programme, nous encadrerons un seul rédacteur technique qui travaillera aux côtés du groupe de travail sur l’écosystème d’Electron pour remodeler de grandes parties de notre documentation. Vous pouvez en savoir plus sur la chronologie de l’ensemble du projet ici.

Comment s'inscrire ?

Êtes-vous intéressé à collaborer avec nous en tant que rédacteur technique ? Tout d’abord, familiarisez-vous avec le guide du rédacteur technique de Google pour le programme de cette année et consultez les deux ébauches d’idées de projet que nous avons préparées.

Afin d’être sélectionnés en tant que rédacteur technique d’Electron pour Season of Docs, les candidats devront postuler sur le site Web google Season of Docs pendant la phase de candidature rédatcteur technique qui se déroule du 8 juin au 9 juillet..

Votre candidature doit inclure une proposition, qui est un document écrit qui décrit en détail ce que vous prévoyez d'accomplir sur les docs d'Electron au cours de 3 mois. Cette proposition peut soit se développer sur l'un des points de départ mentionnés dans notre doc Project Idea, soit être tout à fait nouveau. Vous ne savez pas par où commencer ? Vous pouvez consulter la liste des propositions acceptées de l'année dernière pour vous inspirer.

En plus de la proposition, nous étudierons également votre expérience en tant qu'auteur technique. Veuillez inclure une copie de votre curriculum vitae en mettant l'accent sur l'expérience écrite pertinente, ainsi que des échantillons d'écriture technique (ces échantillons peuvent être de la documentation existante, des tutoriels, des articles de blog, etc.)

Si vous voulez discuter des propositions de projet, envoyez-nous un e-mail à season-of-docs@electronjs.org et nous pouvons discuter à partir de là !

Références

Electron 9.0.0

· 5 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 ! You can install it with npm via npm install electron@latest or download it from our releases website. 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

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

Prochaines versions d'Electron

· 2 mins de lecture

Electron suspend temporairement les versions majeures


Que se passe-t-il ?

Notre calendrier des versions majeures suit celui de Chromium, et le projet Chromium a récemment pris la décision de réaliser une pause en raison de l'adaptation de ses horaires de travail. Cela signifie que pendant la durée de la cadence modifiée de Chromium, Electron mettra également temporairement en pause les nouvelles versions majeures.

Nous pensons que notre meilleur choix est de suivre les traces de Chromium, et donc, dans l'intervalle, l'équipe d'Electron va se consacrer à plein temps à la correction des bugs, à la sécurité, aux performances et à la stabilité.

Nous voulons nous assurer que le bien-être de nos mainteneurs et de nos consommateurs est une priorité pendant cette période, c'est pourquoi nous vous invitons à nous faire part de vos commentaires et nous sommes impatients de revenir à notre calendrier de publication régulier.

Pour plus d'informations, veuillez suivre notre compte Twitter.

Edit (2020-03-30): Electron 9 stable ciblera Chromium M83 et sera publié le 19 mai 2020, en réponse à l'annonce de Chromium de sauter la date de stable M82 et d'ajuster la date de stable M83.

Electron 8.0.0

· 8 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 ! You can install it with npm via npm install electron@latest or download it from our releases website. 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

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

Electron joins the OpenJS Foundation

· 2 mins de lecture

At Node+JS Interactive in Montreal, the OpenJS Foundation announced that it accepted Electron into the Foundation's incubation program. The Foundation is committed to supporting the healthy growth of the JavaScript ecosystem and web technologies by providing a neutral organization to host and sustain projects, as well as collaboratively fund activities for the benefit of the community at large.

The OpenJS Foundation is host to a number of open source JavaScript projects including jQuery, Node.js, and webpack. It's supported by 30 corporate and end-user members, including GoDaddy, Google, IBM, Intel, Joyent, and Microsoft. Electron is an open–source framework for building cross-platform desktop applications with web technologies.

This is an exciting move for Electron, and we see it as a next step in our evolution as an open-source project.


What this means for developers

Electron joining the OpenJS Foundation does not change how Electron is made, released, or used — and does not directly affect developers building applications with Electron. Even though Electron was originally created at GitHub in 2013, it is currently maintained by a number of organizations and individuals. In 2019, Electron codified its governance structure and invested heavily into formalizing how decisions affecting the entire project are made. We believe that having multiple organizations and developers investing in and collaborating on Electron makes the project stronger.

Lifting Electron up from being owned by a single corporate entity and moving it into a neutral foundation focused on supporting the web and JavaScript ecosystem is a natural next step as we mature as an open-source project.

Learning more

You can read up on the foundation, its mission, and its members on the OpenJSF website. For more information and quotes about the acceptance of Electron into the OpenJSF incubation program, check out the official press release. To learn more about the humans behind Electron and how they work together, take a look at our Governance page.

To get started with Electron itself, take a peek at our documentation.

Correction de vulnérabilité WebAudio Chromium (CVE-2019-13720)

· 2 mins de lecture

Une vulnérabilité de grande sévérité a été découverte dans Chrome, qui affecte tous les logiciels basés sur Chromium, y compris Electron.

Cette vulnérabilité a été assignée à CVE-2019-13720. Vous pouvez en lire d'avantage à ce sujet dans ce billet du Chrome Blog .

Veuillez noter que Chrome a des rapports sur cette vulnérabilité utilisée dans la nature. Il est donc fortement recommandé de mettre à jour Electron dès que possible.


Portée

Ceci affecte toutes les applications Electron qui peuvent exécuter des JavaScript tiers ou non fiables.

Atténuation

Les applications affectées devraient se mettre à jour vers une version corrigée d'Electron.

Nous avons publié de nouvelles versions d'Electron qui incluent des corrections pour cette vulnérabilité :

Electron 7.0.1 incluait automatiquement le correctif en amont, avant que l'annonce ne soit faite. Electron 8 n'est pas non plus affecté. La vulnérabilité n'existait pas dans Electron 5, cette version n'est donc pas affectée.

Informations complémentaires 

Cette vulnérabilité a été découverte par Anton Ivanov et Alexey Kulaev de Kaspersky Labs et a été signalée à l'équipe Chrome. Le billet du blog Chrome peut être trouvé ici.

Pour en savoir plus sur les meilleures pratiques pour sécuriser vos applications Electron, consultez notre tutoriel de sécurité.

Please file a GitHub Security Advisory if you wish to report a vulnerability in Electron.

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 ! You can install it with npm via npm install electron@latest or download it from our releases website. 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

· 6 mins de lecture

La team Electron est excitée d'annoncer la sortie de Electron 6.0.0 ! You can install it with npm via npm install electron@latest or download it from our releases website. 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

· 4 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. Pour fournir les versions les plus récentes de Chromium dans Electron, notre calendrier doit suivre le leur. Pour plus d'informations sur le cycle de publication de Chromium, rendez-vous ici.

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