Camp Firefox

Die Firefox-Community

So geht es weiter mit dem Multiprozess-Firefox – 2. Edition

Die neue Multiprozess-Architektur Electrolysis, kurz: e10s, erreicht immer mehr Nutzer. Es handelt sich dabei um den größten Umbau von Firefox, seit es den Mozilla-Browser gibt. Dieser Artikel gibt einen aktuellen und ausführlichen Überblick darüber, was die nächsten Meilensteine hinsichtlich der Multiprozess-Architektur sind.

Unter dem Namen Electrolysis, oder kurz: e10s, entwickelt Mozilla eine Multiprozess-Architektur für Firefox. Eine finale Version hat diese erstmals mit Firefox 48 erreicht; damals noch in der einfachsten Form mit nur einem Content-Prozess und nur für einen kleinen Teil der Nutzer. Unter anderem durften keine Add-ons aktiviert sein, damit die Multiprozess-Architektur aktiviert wird.

Vor einem halben Jahr wurde auf diesem Blog eine ausführliche Zusammenfassung über die kommenden Meilensteine der Multiprozess-Architektur veröffentlicht und seit dem aktuell gehalten. Zwecks Übersichtlichkeit folgt an dieser Stelle eine neue Zusammenfassung mit den neusten Planungen, welche damit die alte Übersicht ablöst.

Grundsätzlich gilt, dass – wenn im Folgenden auch bei keiner bestimmten Firefox-Version explizit erwähnt – mit jeder neuen Version an Faktoren wie Performance und Stabilität gearbeitet wird und die Multiprozess-Architektur besser funktionieren sollte als mit der jeweiligen Version zuvor. Unter anderem das Wechseln von Tabs in Kombination mit e10s konnte zwischen Firefox 48 und Firefox 53 spürbar verbessert werden.

Firefox 51: Der aktuelle Stand der Dinge

Die Multiprozess-Architektur aktiviert in Firefox 51 neben einem Browser-Prozess standardmäßig einen einzelnen Content-Prozess, den sich alle Tabs teilen. NPAPI-Plugins laufen bereits seit lange vor dem e10s-Projekt in einem eigenen Prozess, dem sogenannten Plugin-Container. Die Aufteilung auf weitere Prozesse ist für eine spätere Version geplant.

Multiprozess-Firefox Phase 1

Damit die Multiprozess-Architektur in Firefox 51 aktiviert wird, müssen verschiedene Kriterien erfüllt werden. Ein Kriterium sind die aktivierten Add-ons. Folgende Erweiterungen qualifizieren für die Nutzung von e10s: ausnahmslos alle WebExtensions, alle Erweiterungen, welche von ihrem Entwickler explizit als kompatibel markiert worden sind (Ausnahme: Tab Mix Plus) sowie an die 770 weitere Erweiterungen, die auf dieser Liste stehen.

Es genügt ein einzelnes aktiviertes Add-on, welches diese Anforderung nicht erfüllt, damit die Multiprozess-Architektur deaktiviert bleibt. Weitere Ausschlusskriterien: die Verwendung von Microsoft Windows XP als Betriebssystem, von Screenreadern oder anderen a11y-Werkzeugen, von Geräten mit Touchscreen sowie von Firefox auf Linux in einer Sprache, in welcher von rechts nach links geschrieben wird.

Firefox 52: Linux + RTL-Sprachen

Mozilla hat die Unterstützung von e10s + Firefox in Sprachen, in denen von rechts nach links geschrieben wird, in Firefox 50 aktiviert – für Nutzer von Windows und macOS. In Firefox 52 kommt die entsprechende Linux-Unterstützung dazu.

Firefox 52: Unterstützung von userContent.css

Firefox besitzt ein mächtiges Werkzeug von Haus aus integriert, welches es ermöglicht, die Gestaltung von Webseiten nahezu beliebig zu beeinflussen, zumindest im Rahmen dessen, was mit CSS möglich ist. Eine Erweiterung wie Stylish ist also für Firefox-Nutzer häufig gar nicht notwendig, wenn die Optik einer Webseite geändert werden soll. Gemeinsam mit der Multiprozess-Architektur konnte dieses Feature bisher allerdings nicht genutzt werden. Ab Firefox 52 werden e10s + userContent.css unterstützt.

Firefox 52+: Kompatibilität mit weiteren Add-ons

Seit Veröffentlichung von Firefox 48 wurde die Kompatibilität von e10s + Add-ons mit jeder weiteren Version erweitert. Dies soll auch in Firefox 52 wieder der Fall sein. Unter anderem wird Tab Mix Plus von der Blacklist genommen, womit dessen Nutzung nicht mehr für die Nutzung von e10s disqualifiziert.

Die Ausrollung für Nutzer weiterer Add-ons basiert auf dem Verlauf der Betaphase und den Daten, die sich im Laufe der kommenden Wochen und Monate ergeben. Schlussendliches Ziel ist es, dass alle Erweiterungen für die Nutzung von e10s qualifizieren, welche von ihrem Entwickler nicht explizit als nicht kompatibel markiert worden sind. Im Idealfall sollte dies mit Firefox 53 der Fall sein.

Unabhängig von Änderungen durch Mozilla können natürlich auch weitere Add-ons von ihren jeweiligen Entwicklern im Laufe der kommenden Monate als e10s-kompatibel markiert werden.

Spezialfall: Firefox ESR 52

Firefox ESR steht für Extended Support Release und bezeichnet die Firefox-Version, die mit Langzeitunterstützung kommt. Das bedeutet, dass diese Version nur einmal im Jahr einen großen Versionssprung macht und dabei sehr viele Neuerungen erhält, dazwischen gibt es alle sechs bis acht Wochen lediglich Bugfix- und Sicherheitsupdates.

Für Firefox ESR gilt bei der Ausrollung von e10s eine Besonderheit: zum Einsatz kommen nicht die Kriterien der Mainstream-Version von Firefox 52, sondern die von Firefox 50. Das heißt, die in Firefox 51 rund 770 zusätzlich unterstützten Erweiterungen werden in Firefox ESR 52 genauso wenig unterstützt wie Tab Mix Plus und alle weiteren Erweiterungen, welche noch in der finalen Version von Firefox 52 für die Nutzung mit e10s erlaubt werden.

Ausnahme zu den Kriterien von Firefox 50: Nutzer der russischen Firefox-Version werden in Firefox ESR 52 nicht von der Nutzung der Multiprozess-Unterstützung ausgeschlossen (diese Restriktion wurde ursprünglich in Firefox 51 aufgehoben).

Kein e10s für Nutzer von Windows XP

Mozilla stellt die Unterstützung von Windows XP mit Firefox 52 ein. Entsprechende Nutzer werden dann automatisch auf Firefox ESR 52 migriert werden und noch zumindest bis September 2017 Sicherheitsupdates erhalten. Firefox 53 und neuer werden auf Systemen mit Windows XP gar nicht erst starten. Aber auch in Firefox ESR 52 erhalten Nutzer von Windows XP kein e10s. Mit anderen Worten: Nutzer von Windows XP werden nie Firefox mit Multiprozess-Architektur erhalten.

Firefox 53: GPU-Prozess für Windows-Nutzer

Der Quantum Compositor ist kein Teil der e10s-, sondern der Quantum-Initiative, nichtsdestominder sei dies hier erwähnt, weil der Quantum Compositor einen zusätzlichen Grafikkarten-Prozess einführt. Da Grafiktreiber eine der Hauptquellen für Firefox-Abstürze sind, wird durch die Auslagerung in einen eigenen Prozess erwartet, dass Firefox dadurch wesentlich stabiler wird. Der zusätzliche Prozess soll in Firefox 53 für Windows-Nutzer standardmäßig aktiviert sein.

Firefox 53: Neue Add-ons dürfen nur noch WebExtensions sein

Ab dem Tag des Erscheinens von Firefox 53 akzeptiert Mozilla auf addons.mozilla.org nur noch neue Erweiterungen, welche WebExtensions und damit automatisch e10s-kompatibel sind, nicht länger XUL- oder SDK-basierte Erweiterungen. Dies gilt auch für die Signierung von Erweiterungen, die auf anderen Seiten gehostet werden. Bereits existierende Erweiterungen alter Architekturen können weiterhin bis zum Erscheinen von Firefox 57 auf neue Versionen mit ebenfalls alter Architektur aktualisiert werden.

Firefox 53: Blockierung falsch markierter Add-ons

Hat der Nutzer Add-ons aktiviert, welche von ihrem Entwickler explizit als kompatibel markiert worden sind, ist damit eine wichtige Bedingung für die Aktivierung der Multiprozess-Architektur erfüllt. Genauso kann ein Entwickler eine Erweiterung als nicht kompatibel markieren, dann bleibt die Erweiterung aktiv und die Multiprozess-Architektur deaktiviert. Ist allerdings ein Add-on als kompatibel markiert und ist reproduzierbar nicht kompatibel, wird das jeweilige Add-on ab Firefox 53 deaktiviert und die Multiprozess-Architektur nicht wegen dieses Add-ons deaktiviert.

Firefox 54: Unterstützung von a11y-Werkzeugen

Ab Firefox 54 werden erstmals a11y-Werkzeuge gemeinsam mit e10s unterstützt. Darunter fallen Tools wie Screenreader, Bildschirmlupen, aber auch Geräte mit Touchscreen.

Firefox 54: Gestaltung von Optionsfeldern per CSS

Die Optionsfelder von <select>-Elementen waren schon immer schwierig browser- sowie betriebssystemübergreifend zu gestalten. Hatte Firefox dies in der Vergangenheit erlaubt, war das mit aktivierter Multiprozess-Architektur bislang nicht mehr möglich. Ab Firefox 54 können hier wieder die Hintergrund- sowie Textfarbe per CSS geändert werden. Andere Änderungen per CSS werden nicht unterstützt.

Firefox 54+: Sandboxing

Ebenfalls für Firefox 54 geplant ist die erstmalige standardmäßige Erweiterung von Firefox um sogenanntes Sandboxing der Content-Prozesse. Dies soll Firefox sicherer machen. Die Multiprozess-Architektur ist hierfür eine Voraussetzung. In weiteren Versionen können die Sandbox-Restriktionen weiter verschärft werden.

Sandboxing

Firefox 55: Mehrere Content-Prozesse

In der Nightly-Version von Firefox 54 sind bereits zwei Content-Prozesse statt nur einer standardmäßig aktiviert. Mozilla arbeitet daran, mehrere Content-Prozesse über Nightly-Versionen hinaus kompatibel zu machen und plant mit vier Content-Prozessen für den Anfang. Geplante Auslieferung in einer finalen Version: Firefox 55.

Multiprozess-Firefox Phase 2

Firefox 55: WebExtensions in eigenen Prozessen

Darüber hinaus arbeitet Mozilla bereits daran, WebExtensions in eigene Prozesse auszulagern. Auch hier wird mit Firefox 55 als Ziel für die Auslieferung in einer finalen Version geplant.

Multiprozess-Firefox Phase 3

Firefox 57: keine inkompatiblen Erweiterungen mehr

Ab Firefox 57 werden nur noch WebExtensions unterstützt, weder alte XUL-Erweiterungen noch SDK-basierte Erweiterungen. Damit gibt es ab Firefox 57 auch keine Erweiterungen mehr, welche nicht kompatibel mit e10s sind. In Firefox vorhandene Kompatibilitäts-Shims, welche die Umstellung von Erweiterungen alter Architekturen bei Verwendung auf Kosten der Performance erleichterten, werden ab Version 57 aus Firefox entfernt werden.

Hinweis für Nutzer der Beta-Version von Firefox: Es besteht die Möglichkeit, dass diese Einschränkung bereits während der Beta-Phase von Firefox 56 getestet werden wird.

Firefox 57 (Nightly): Entfernung der Option, e10s zu deaktivieren

Firefox 57 erreicht im Juni die Nightly-Phase. Geplant ist, dass ab dann e10s in der Nightly-Version auch nicht mehr deaktiviert werden kann. Ob dies bereits die finale Version von Firefox 57 betreffen wird, ist noch nicht bekannt.

Firefox.next: weitere Prozesse

Die Nightly-Version von Firefox hat bereits seit Version 53 einen eigenen Content-Prozess für den lokalen Dateizugriff per file://-URI standardmäßig aktiviert. Diese Maßnahme dient der Sicherheit. Sollte durch ein Sicherheitsproblem ein Content-Prozess kompromittiert werden, kann dieser dadurch trotzdem nicht genutzt werden, um auf lokale Dateien zuzugreifen. Dieser spezielle Content-Prozess besitzt ausschließlich Lese-Rechte auf dem System. Wann dieser zusätzliche Prozess in der finalen Version von Firefox standardmäßig aktiviert werden wird, ist noch nicht bekannt.

Auch die Aktivierung von mehr als vier Content-Prozessen ist langfristig denkbar. Konkrete Zielsetzungen oder Pläne gibt es diesbezüglich aber noch nicht.

(nach Inhalten von [1], [2] und [3])

Der Beitrag So geht es weiter mit dem Multiprozess-Firefox – 2. Edition erschien zuerst auf soeren-hentzschel.at.