JavaScript: Electron 9.0 achtet besser auf korrekte Sprache
Neben einigen API-Anpassungen bietet das Framework eine wohl verbesserte Rechtschreibkontrolle und effizientere Window Events Handler unter Linux.
Das von GitHub entwickelte JavaScript-Framework Electron liegt ab sofort in Version 9.0 vor. Im neuen Release des auf Cross-Plattform-Anwendungen zugeschnittenen Frameworks finden sich neben den üblichen Aktualisierungen für Chromium, Node.js und V8, die nun in den jeweiligen Versionen 83, 12.14 und 8.3 unterstützt werden, auch einige Breaking Changes. Darüber hinaus haben die Electron-Entwickler den im vorangegangenen Release eingeführten Spellchecker von Chrome ebenso überarbeitet wie die Window Events Handler unter Linux.
Wörterbuch individuell anpassen
Seit Electron 8.0 können JavaScript-Entwickler die Rechtschreibprüfung von Chrome nutzen. Im neuen Release stehen nun erweiterte Optionen für individuelle Einträge im Wörterbuch zur Verfügung. Dank Anpassungen bei den session
-APIs lassen sich nun beispielsweise über session.listWordsFromSpellCheckerDictionary
eigene Wörter hinzufügen oder mit session.removeWordFromSpellCheckerDictionary
entfernen.
Der ebenfalls aus Chrome bekannte und auf pdfium basierende PDF Viewer steht nun zur Verfügung und das Team hat sich dem Pre-Caching von IsWindowStateEvent()
XAtom gewidmet, um die Effizienz der Window Events Handler unter Linux zu verbessern (PR 23260). Wichtiger für Electron-Anwender dürften unterdessen die weggefallenen APIs und drei Breaking Changes sein: Die bereits als deprecated markierten APIs <webview>.getWebContents
und webFrame.setLayoutZoomLevelLimits
wurden nun entfernt, shell.openItem
hingegen als "deprecated" gekennzeichnet und durch asynchronous shell.openPath
ersetzt.
Breaking Changes in Electron 9.0
Mit Blick auf künftige Projekte sollten Entwickler darüber hinaus berücksichtigen, dass das remote
-Modul wegfallen und nach userland verschoben werden soll. remote
sollte daher schon nicht mehr ohne enableRemoteModle: true
verwendet werden.
Um bevorstehende Anforderungen bezüglich nativer Node-Module gewährleisten zu können, die beim Laden in den Renderer-Prozess künftig entweder N-API oder Context Aware sein müssen, ist nun app.enableRendererProcessReuse
schon standardmäßig auf True
gesetzt.
Nachdem in Electron 9.0 der alte Serialisierungsalgorithmus nicht mehr zur Verfügung steht, löst das Senden nicht-serialisierbarer Objekte die Fehlermeldung "Objekt konnte nicht geklont werden" aus. Das Senden solcher Objekte über IPC hatte das Electron-Team bereist in Version 8.0 als "deprecated" markiert.
Einblick und Ausblick
Einen vollständigen Überblick aller Neuerungen bietet ein Blogbeitrag zum Release. Einen Ausblick auf geplante und künftig zu erwartende wichtige Änderungen fasst die Übersicht zu den Breaking Changes zusammen. Beginnend mit Electron 10 soll beispielsweise contextIsolation
standardmäßig von false
auf true
gesetzt werden, da sich ohne die explizite Isolierung beliebiger Code in einem Renderer-Prozess Zugriff auf Electron Interna oder das Preload-Skript einer App verschaffen könnte.
(map)