Electron 12 est disponible avec la prise en charge de l'API Web Serial
et de nouvelles API pour activer/désactiver le correcteur orthographique
Electron est un framework qui permet de développer des applications multiplateformes de bureau avec les technologies du Web, notamment HTML, CSS et JavaScript. L'équipe de développement du framework a publié mardi la version 12.0 avec de nombreuses nouvelles fonctionnalités et modifications, et quelques changements de rupture. Étant basé sur Chromium pour la partie frontend et Node.js pour la partie backend, Electron intègre dans cette nouvelle version le support pour les dernières versions de la pile Web à savoir Chrome 89, Node.js 14.16.0 ainsi que la version 8.9 du moteur JavaScript V8. Voici ci-dessous un aperçu des nouveautés apportées par Electron 12.0.
Mises à jour de la pile Web
- Chrome 89 ;
- Node.js 14.16.0 ;
- V8 v8.9.
Changements de rupture
- modification de la valeur par défaut de crashReporter.start({ compress }) de false à true ;
- modification de la valeur par défaut de contextIsolation à true ;
- la valeur par défaut de worldSafeExecuteJavaScript a été modifiée pour devenir true ;
- le module remote est obsolète. Il est remplacé par @electron/remote.
Nouvelles fonctionnalités et ajouts
- ajout d'API pour activer/désactiver le correcteur orthographique ;
- ajout de la prise en charge de l'API Web Serial ;
- ajout de l'API BrowserWindow.isTabletMode ;
- ajout de displayFrequency à l'objet Display pour permettre d'obtenir des informations sur le taux de rafraîchissement sur Windows ;
- ajout de la propriété event.senderFrame renvoyant le webFrameMain d'origine du message IPC ;
- ajout de exitCode pour le rendu des détails du processus ;
- ajout de net.online pour détecter s'il y a actuellement une connexion internet ;
- ajout des propriétés osProcessId/name au webFrameMain ;
- ajout de powerMonitor.onBatteryPower ;
- ajout de session.setSSLConfig() pour permettre la configuration de SSL ;
- ajout de webFrameMain.send()/webFrameMain.postMessage() ;
- ajout de webPreferences.preferredSizeMode pour permettre de dimensionner les vues en fonction de la taille minimale de leur document ;
- ajout d'une option disabledCipherSuites dans le fichier Session.setSSLConfig ;
- ajout d'une nouvelle option de justificatifs d'identité pour net.request() ;
- ajout d'une nouvelle API asynchrone shell.trashItem(), en remplacement de la synchrone shell.moveItemToTrash() ;
- ajout d'une API de capture d'écran pour session.setPermissionRequestHandler ;
- ajout de webFrameMain.executeJavaScriptInIsolatedWorld() manquant ;
- ajout de la prise en charge en lecture/écriture de l'activateur de toast CLSID dans les raccourcis ;
- ajout de l'API setWindowOpenHandler pour les fenêtres enfant créées par le moteur de rendu, et suppression de l'événement "new-window" ;
- ajout d'une API de vérification orthographique au moteur de rendu ;
- ajout de la prise en charge de la spécification explicite des modes direct, auto_detect ou système dans session.setProxy() ;
- ajout d'un support pour l'affichage du menu partagé de macOS ;
- ajout d'un événement de commutation rapide de l'utilisateur à powerMonitor sur macOS ;
- ajout des événements extension-loaded, extension-unloaded et "extension-ready events" à Session ;
- autorisation de la méthode "ContextBridge exposeInMainWorld" pour exposer les API non objet ;
- etc.
Améliorations
- mise en œuvre de notifications Toast XML personnalisées sur Windows ;
- amélioration de la prise en charge du mode sombre sous Windows.
Fonctionnalités supprimées/dépréciées
- le module remote est obsolète. Il est remplacé par @electron/remote ;
- suppression des API dépréciées de crashReporter ;
- suppression des liens vers le site Web d'Electron dans le menu "Aide" par défaut des applications packagées ;
- suppression de l'utilisation privée de l'API qui bloquait les versions de Mac App Store ;
- suppression de l'API desktopCapturer.getMediaSourceIdForWebContents().
Corrections de bogues
- les applications demandant la permission CAMERA_PAN_TILT_ZOOM auront le gestionnaire de demande de permission appelé avec une chaîne de permission de "media" au lieu de "font-access" ;
- BrowserWindow.fromWebContents() renvoie désormais un résultat précis pour WebContents dans une BrowserView ou une webview ;
- l'utilisation du module vm dans le processus de rendu est dépréciée ;
- prise en charge de la nouvelle visionneuse PDF expérimentale de Chromium ;
- correction du fichier BrowserWindow.fromBrowserView qui lançait une erreur lorsqu'il y avait plusieurs BrowserViews dans une fenêtre ;
- correction d'un échec du chargement des ressources dans le visualiseur de PDF ;
- correction de ses.setCertificateVerifyProc annulant des demandes dans des sessions sans rapport ;
- correction d'un crash lors de l'appel de crypto.createDiffieHellman() avec certains paramètres ;
- correction d'une erreur d'utilisation après coup qui pouvait se produire lors de la destruction d'un contenu Web lors de l'événement "did-stop-loading" ;
- correction d'un problème de longueur de fichier non disponible dans l'événement de téléchargement lorsque le fichier est téléchargé à la suite d'une demande interceptée ;
- correction d'un problème où IsMaximized renvoyait incorrectement faux pour certaines fenêtres de Windows ;
- correction d'un problème où les événements sur les éléments de l'aperçu Web manquaient de propriétés si l'isolation du contexte était activée ;
- correction d'un problème où net.request continuait à télécharger des données même lorsque le flux de consommation était limité ;
- correction d'un problème où le tampon renvoyé par NativeImage.getBitmap() pouvait pointer vers la mémoire libérée ;
- correction d'un problème où le bouton de zoom était manquant pour les fenêtres avec titleBarStyle : hiddenInset sous macOS ;
- correction d'un bogue dans lequel WebContents.mainFrame retournait parfois undefined ;
- correction d'un plantage en quittant Electron après avoir utilisé l'API Web Serial ;
- correction de la gestion des erreurs sur l'échec d'écriture dans le module de protocole ;
- correction d'une violation d'accès intermittente lors des redirections (demandes interceptées) ;
- etc.
Autres changements
- les versions 2004 et ultérieures de Windows 10 prennent en charge WDA_EXCLUDEFROMCAPTURE et excluent désormais entièrement une fenêtre de la capture d'écran lorsque setContentProtection est activé. Les anciennes versions de Windows continueront à afficher une fenêtre noire comme auparavant ;
- réactivation de Rosetta sur les appareils Apple Silicon.
Source : Note de version d'Electron 12.0
Et vous ?
Que pensez-vous des changements intervenus dans Electron 12 ?
Voir aussi
Chrome 89 bêta : Google poursuit ses efforts en matière « d'interactions matérielles avancées » que Mozilla et Apple considèrent comme nuisibles
Le framework de développement d'applications léger et portable Neutralino serait-il une alternative à Electron et NW.js ? Oui, selon l'équipe responsable
Quels sont les frameworks JavaScript que vous aimeriez apprendre en 2020 ? Voici quelques propositions qui sont tributaires des cas d'utilisations
Electron, le framework pour le développement des apps multiplateformes de bureau avec HTML, CSS et JS, est disponible en version 11.0 et intègre désormais le support de l'architecture ARM64 d'Apple
Partager