

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 ?


Voir aussi :





Vous avez lu gratuitement 5 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.