Vous pouvez installer la nouvelle version d'Electron depuis le site electronjs.org ou depuis npm via npm install electron@latest, pour bénéficier des mises à niveau, correctifs et nouvelles fonctionnalités livrées avec Electron 4.0.
Pour les nouveautés, rappelons encore qu'une grande partie des fonctionnalités d’Electron est fournie par Chromium, Node.js et V8, qui sont les composants essentiels du framework. Ainsi, l’un des objectifs clés de l’équipe Electron est de suivre le rythme des changements apportés à ces projets, afin de fournir aux développeurs qui construisent des applications Electron un accès à de nouvelles fonctionnalités Web et JavaScript. À cette fin, Electron 4 inclut des modifications majeures introduites dans chacun de ces composants. Electron v4.0.0 comprend Chromium 69, Node 10.11 et V8 6.9. En outre, cette nouvelle version du framework inclut des modifications apportées aux API spécifiques à Electron.
Désactivation le module remote
Vous avez maintenant la possibilité de désactiver le module remote pour des raisons de sécurité. Le module peut être désactivé pour les BrowserWindow et pour les balises webview :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | // BrowserWindow new BrowserWindow({ webPreferences: { enableRemoteModule: false } }) // webview tag <webview src="http://www.google.com/" enableremotemodule="false"></webview> |
Filtrage des requêtes remote.require() et remote.getGlobal()
Cette fonctionnalité est utile si vous ne souhaitez pas désactiver complètement le module remote dans votre processus de rendu ou webview, mais souhaitez un contrôle supplémentaire sur les modules pouvant être requis via remote.require.
Lorsqu'un module est requis via remote.require dans un processus de rendu, un événement remote-require est déclenché sur le module app. Vous pouvez appeler event.preventDefault() sur l'événement (le premier argument) pour empêcher le chargement du module. L'instance WebContents où le require s'est produit est transmise en tant que deuxième argument et le nom du module, en tant que troisième argument. Le même événement est également émis sur l'instance WebContents, mais dans ce cas, les seuls arguments sont l'événement et le nom du module. Dans les deux cas, vous pouvez retourner une valeur personnalisée en définissant la valeur de event.returnValue.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | // Control `remote.require` from all WebContents: app.on('remote-require', function (event, webContents, requestedModuleName) { // ... }) // Control `remote.require` from a specific WebContents instance: browserWin.webContents.on('remote-require', function (event, requestedModuleName) { // ... }) |
De la même manière, lorsque remote.getGlobal(name) est appelé, un événement remote-get-global est déclenché. Cela fonctionne de la même manière que l'événement remote-require : appelle preventDefault() pour empêcher le retour de la variable globale et définit event.returnValue pour retourner une valeur personnalisée.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | // Control `remote.getGlobal` from all WebContents: app.on('remote-get-global', function (event, webContents, requrestedGlobalName) { // ... }) // Control `remote.getGlobal` from a specific WebContents instance: browserWin.webContents.on('remote-get-global', function (event, requestedGlobalName) { // ... }) |
Accès JavaScript au panneau About
Sous macOS, vous pouvez maintenant appeler app.showAboutPanel() pour afficher le panneau About par programmation, comme si vous cliquiez sur l'élément de menu créé via {role: 'about'}.
Autres changements
Vous trouverez la liste exhaustive des nouveautés dans les notes de version d'Electron 4.0, mais précisons que Chromium ne prend plus en charge macOS 10.9. Par conséquent, Electron 4.0 et les versions ultérieures du framework ne le supporteront pas non plus. Un autre changement que les développeurs devraient encore savoir concerne le verrouillage d'instance simple. Auparavant, vous pouviez utiliser la méthode app.makeSingleInstance() pour faire de votre application une application à instance unique : au lieu d'autoriser plusieurs instances parallèles de votre application, cela permet de s'assurer qu'une seule est active, et les autres instances envoient un signal à celle-ci puis se terminent. À partir d'Electron 4.0, vous devez utiliser plutôt app.requestSingleInstanceLock(). La valeur de retour de cette méthode indique si cette instance de votre application est verrouillée avec succès ou non. Si le verrouillage échoue, vous pouvez supposer qu'une autre instance de votre application est déjà en cours d'exécution et quitter immédiatement l'instance.
Source : Blog Electron
Et vous ?
Utilisez-vous Electron ? Que pensez-vous du framework en général et des nouveautés de cette nouvelle version ?
Qu'attendez-vous des prochaines versions du framework ?
Voir aussi :
Flutter va bientôt permettre d'écrire de véritables applications multiplateformes y compris pour le desktop, et pourrait rivaliser avec Electron
L'OS Windows 95 devient une appli gratuite qu'on peut lancer depuis Windows, Linux ou Mac, grâce au framework open source Electron et à un passionné
Sortie de la première bêta d'Electron 2.0.0, le framework pour le développement d'applications de bureau multiplateformes
Une vulnérabilité critique dans le framework Electron pourrait affecter de nombreuses applications populaires comme Skype, Slack et bien d'autres
Faut-il utiliser Electron pour le développement d'applications de bureau ? Quels sont ses avantages et inconvénients ?