AccueilActualités informatiqueDéveloppement multiplateforme : Electron 17.0 doit améliorer la sécurité

Développement multiplateforme : Electron 17.0 doit améliorer la sécurité

Le framework open source Electron a atteint la version 17.0. Autrefois créé en 2013 par GitHub et depuis 2019 un projet de la fondation OpenJS, Electron doit permettre de créer des applications de bureau multiplateformes avec JavaScript, HTML et CSS. La version actuelle apporte un breaking change et corrige quelques bugs.

Sommaire

La nouvelle version d’Electron est sortie comme prévu et respecte donc, tout comme la version précédente, la feuille de route actuelle. Depuis Electron 15, celle-ci prévoit une nouvelle version toutes les huit semaines environ, au lieu de toutes les douze semaines auparavant, et les quatre dernières versions majeures – autrefois trois – restent en support. Cela doit faciliter aux développeuses et développeurs le passage au nouveau cycle de release et concerne actuellement les versions 14.x, 15.x, 16.x et 17.x. Les versions 14.x, 15.x, 16.x et 17.x ne sont pas concernées.

Selon ce document, la version 13.0 a maintenant atteint sa date de fin de vie. La branche npm est donc considérée comme dépréciée (obsolète) et une version finale de fin de support ajoute un avertissement correspondant. À partir de mai 2022, date de la sortie d’Electron 19.0, le support devrait à nouveau être raccourci aux trois dernières versions.

Electron 17.0 apporte une nouveauté incompatible en amont : L’API desktopCapturer.getSources n’est désormais plus disponible dans le moteur de rendu, mais uniquement dans le processus principal. Cela doit permettre d’augmenter la sécurité standard des applications Electron. Si la fonction est néanmoins souhaitée dans une application, elle peut être utilisée comme indiqué dans la documentation :

// Main process
const { ipcMain, desktopCapturer } = require('electron')

ipcMain.handle(
  'DESKTOP_CAPTURER_GET_SOURCES',
  (event, opts) => desktopCapturer.getSources(opts)
)


// Renderer process
const { ipcRenderer } = require('electron')

const desktopCapturer = {
  getSources: (opts) => ipcRenderer.invoke('DESKTOP_CAPTURER_GET_SOURCES', opts)
}

L’équipe Electron recommande toutefois de limiter les informations renvoyées au moteur de rendu. Il est notamment possible d’afficher un sélecteur de source aux utilisateurs et de ne renvoyer que la source sélectionnée.

Electron 17.0 corrige quelques bugs connus, par exemple il doit maxWidth dans les BrowserWindows-fonctionnent maintenant comme prévu et qu’il n’y a pas de crash au démarrage de VoiceOver sous macOS ne devrait plus se produire.

En outre, la nouvelle version augmente Chromium à la version 98, le moteur JavaScript V8 à la version 9.8 et Node.js à la version 16.13.0. Le framework open-source Electron peut être utilisé sur macOS, Windows et Linux. La version actuelle est disponible via npm (npm install electron@latest) ou sur le site web du projet.

Tous les détails sur la nouvelle version majeure sont disponibles sur le blog d’Electron.

Plus d'articles