Cross-Plattform-Entwicklung: Electron 17.0 soll die Sicherheit erhöhen

Electron 17.0 bringt einen sicherheitsrelevanten Breaking Change. Version 13.0 fällt mit Erscheinen des neuen Major Release aus dem Support.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen

(Bild: VideoFlow/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Maika Möbus
Inhaltsverzeichnis

Das Open-Source-Framework Electron hat Version 17.0 erreicht. Einst im Jahr 2013 von GitHub gegründet und seit 2019 ein Projekt der OpenJS Foundation, soll Electron das Erstellen von Cross-Plattform-Desktopanwendungen mit JavaScript, HTML und CSS ermöglichen. Das aktuelle Release bringt einen Breaking Change und behebt einige Bugs.

Die neue Electron-Version ist planmäßig erschienen und hält sich somit ebenso wie die Vorversion an die aktuelle Roadmap. Diese sieht seit Electron 15 etwa alle acht anstatt wie zuvor alle zwölf Wochen ein neues Release vor, und die jeweils letzten vier Major-Versionen – ehemals drei – verbleiben im Support. Das soll Entwicklerinnen und Entwicklern den Umstieg auf den neuen Releasezyklus erleichtern und betrifft derzeit die Versionen 14.x, 15.x, 16.x und 17.x.

Demnach hat Version 13.0 nun ihr End-of-Life-Datum erreicht. Damit gilt der Zweig in npm als deprecated (veraltet) und ein finales End-of-Support Release fügt einen entsprechenden Warnhinweis hinzu. Ab Mai 2022, wenn Electron 19.0 erscheint, soll sich der Support wieder auf die jeweils letzten drei Versionen verkürzen.

Electron 17.0 bringt eine abwärtsinkompatible Neuerung mit: Die API desktopCapturer.getSources ist nun nicht mehr im Renderer, sondern nur noch im Hauptprozess verfügbar. Das soll die standardmäßige Sicherheit von Electron-Anwendungen erhöhen. Sollte die Funktion in einer Anwendung dennoch gewünscht sein, lässt sie sich wie in der Dokumentation gezeigt einsetzen:

// 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)
}

Das Electron-Team empfiehlt jedoch ein Beschränken der Informationen, die an den Renderer zurückgegeben werden. Es ist unter anderem möglich, Usern einen Source Selector anzuzeigen und nur die ausgewählte Source zurückzugeben.

Electron 17.0 behebt einige bekannte Bugs, beispielsweise soll maxWidth in den BrowserWindows-Konstruktoroptionen nun wie vorgesehen funktionieren und ein Crash beim Starten von VoiceOver unter macOS sollte nicht mehr eintreten.

Daneben erhöht das neue Release Chromium auf Version 98, die JavaScript-Engine V8 auf Version 9.8 und Node.js auf Version 16.13.0. Das Open-Source-Framework Electron lässt sich auf macOS, Windows und Linux nutzen. Die aktuelle Version ist mittels npm (npm install electron@latest) oder auf der Website des Projekts verfügbar.

Alle Details zum neuen Major Release hält der Electron-Blog bereit.

(mai)