JavaScript: Electron 12.0 ergänzt API für Web-Frame-Zugang aus dem Hauptprozess

Die neue Ausgabe des Frameworks unterstützt Chromium 89 und hat eine neue webFrameMain-API an Bord. Mit ihr können Entwickler einfacher auf Subframes zugreifen.

Lesezeit: 4 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 9 Beiträge

(Bild: Alfa Photo/Shutterstock.com)

Von
  • Silke Hahn

Das von GitHub entwickelte JavaScript-Framework Electron liegt in Version 12.0 vor, parallel fällt Electron 9.x aus dem Support (End-of-Life): Wer noch mit dieser Version arbeitet, sollte nun ein Upgrade vornehmen. Electron 12.x vollzieht den Sprung von Node.js 12 zu 14 und bringt Neuerungen im Bereich der APIs: Neu dabei ist eine webFrameMain-API, mit der Entwickler Subframes von WebContents-Instanzen nun auch aus dem Hauptprozess aufrufen können.

Bislang gab es nur beim Vorgang des Renderns eine webFrame-API für den Zugriff auf WebContents. Die neue API soll die Funktionalität entsprechend auch für den Hauptprozess greifbar machen. Nützlich dürfte das für Entwicklerinnen und Entwickler sein, die Erweiterungen für Electron erstellen und diese testen. Das Fehlen der Schnittstelle im Hauptprozess war auch zunächst einem Extension-Entwickler aufgefallen, der das Nachrüsten des Frameworks anregte. Zu der neuen API liegt eine Dokumentation bei Electron vor.

Die ContextBridge kann mittels exposeInMainWorld neuerdings auch Non-Object-APIs bereitstellen. Wenn bei API-Aufrufen kein Objekt verknüpft ist, ließen betroffene APIs sich bislang nicht freigeben – die Neuerung schafft hier offenbar Abhilfe. Außerdem ist der Standardwert von contextIsolation und von worldSafeExecuteJavaScript nun true: Das bedeutet, dass beide Parameter standardmäßig eingeschaltet sind und bei Nicht-Bedarf erst aktiv deaktiviert werden müssten (bis Electron 11.x war es umgekehrt). Diese Änderung ist deshalb zugleich auch ein Breaking Change im aktuellen Release.

Auch der crashReporter.start({ compress }) ist per Default-Einstellung true jetzt standardmäßig aktiv. Als überholt (deprecated) gilt ab Electron 12.0 das remote-Modul: @electron/remote ersetzt es. Wer bislang das remote-Modul eingesetzt hatte, findet bei GitHub einen Leitfaden für die Migration.

Da Chromium Flash nicht länger unterstützt, entfällt der Flash-Support auch aus Electron 12.x. Das Chromium-Projekt hat dazu eine Flash-Roadmap ins Netz gestellt. Die Minimalanforderung für Chrome auf x86-Prozessoren ist mittlerweile SSE3: CPUs, die SSE3 nicht unterstützen, sind beim Chromium-Projekt aus dem Support gefallen und Electron 12.x hat diese Unterstützung entsprechend ebenfalls aufgegeben. Vertiefend steht hierzu ein öffentlich einsehbares Google-Dokument bereit.

Weitere Breaking Changes betreffen die APIs. Neben der bereits erwähnten neuen Schnittstelle für das webFrameMain-Modul und den Änderungen an der contextBridge-API erhalten die Schnittstellen für das Browserfenster und Apps eine Reihe von Änderungen, die unter anderem den Rendering-Prozess, einen Tablet-Modus für das Browserfenster und gewünschte Display-Größen betreffen. Für die Display-API gibt es Anpassungen an die Refresh-Rate von Windows, und die meisten Änderungen betreffen die für eine Session zuständige API: So soll sich eine Rechtschreibprüfung über die Schnittstelle ein- und ausschalten lassen, das Nachladen von Extensions dürfte nun einfacher sein und Extensions können mit einer in der ses.loadExtension()-API neu ergänzten Option namens allowFileAccess wohl Dateizugriff erhalten.

Alle weiteren Änderungen lassen sich dem Blogeintrag von Electron.js entnehmen. Die zwölfte Ausgabe von Electron geht mit Änderungen am Stack einher. So unterstützt das Framework nun V8 in Version 8.9 und Chromium 89. Electron 12.0 steht als Stable Release auf der Projekt-Website zum Download bereit. Die wichtigste Neuerung der Vorgängerversion vom November 2020 war die Unterstützung der von Apple damals neu eingeführten ARM-Prozessoren. Eine erste Vorschau auf den Fahrplan zur nächsten Hauptversion 13.0 ist bereits einsehbar.

(sih)