Original-URL des Artikels: https://www.golem.de/news/firefox-57-viel-mehr-als-nur-ein-quaentchen-schneller-1711-131140.html    Veröffentlicht: 14.11.2017 15:43    Kurz-URL: https://glm.io/131140

Firefox 57

Viel mehr als nur ein Quäntchen schneller

Mit der aktuellen Version 57 des Firefox alias Quantum räumt Mozilla seinen Browser gehörig um. Alte Addons fliegen raus und die Oberfläche bekommt ein neues Aussehen. Schneller wird der Browser dank Rust und dem Ausbau der Multi-Prozess-Architektur, was Jahre an Vorarbeit erfordert hat.

Seit rund einem Jahr arbeitet das Entwicklerteam von Mozilla unter dem Projektnamen Quantum an einer Generalüberholung des Firefox-Browsers. Erklärtes Ziel ist eine "Webengine der nächsten Generation", die mit der aktuellen Version 57 erscheint. Mozilla bewirbt die Version mit dem Slogan "Neu. Schnell. Stark" und bezeichnet die Veröffentlichung schlicht als Firefox Quantum. Zusätzlich zu den grundlegenden Arbeiten an der Engine bekommt der Firefox mit Version 57 aber auch ein neues Aussehen.

Neues Design und neue Startseite

Das neue Oberflächendesign heißt Photon und soll eine "moderne, intuitive und angenehme Erfahrung" bei der Benutzung des Browsers ermöglichen. Auch hier hat das Team von Mozilla darauf geachtet, dass Interaktionen mit dem Browser möglichst schnell erledigt werden und das Design das auch widerspiegelt. Teil des Photon-Designs sind eine leicht überarbeitete Farbgebung, neue Icons und eine neues Firefox-Logo.

Offensichtliche Neuerungen von Photon sind dagegen direkte Änderungen der GUI wie etwa die jetzt eckigen Tabs und die Neugestaltung der Steuerungselemente. Der Browser besitzt nun wieder einen Button zum Vorspringen, der Reload-Button und ein Home-Button sind daneben angeordnet, also links oben im Fenster. Darüber hinaus gibt es nun Knöpfe für das Speichern in Pocket oder als Lesezeichen in der Adressleiste, ebenso wie ein Knopf zum Teilen der Seite.

Das über den sogenannten Hamburger-Button erreichbare Menü zeigt nun wieder Einträge als Text, weitere Menüfunktionen werden in einem Knopf für die Sidebar oder der sogenannten Bibliothek zusammengefasst. Die neue Anordnung der Elemente erinnert stark an die des Chrome-Browsers. Das neue Design gibt es als helles sowie als dunkles Theme. Für die Nutzer hat Mozilla auch eine kleine Einführung in das neue Design erstellt. Diese ist über das Firefox-Logo in der linken oberen Ecke der Neuer-Tab-Ansicht verfügbar.

Die Ansicht für einen neuen Tab und damit auch die Home- beziehungsweise Startseite nutzt in Firefox 57 den sogenannte Activity Stream. Dieser ist aus einem Experiment hervorgegangen und listet künftig etwa auch Empfehlungen von Pocket, das seit Anfang diesen Jahres zu Mozilla gehört. Nutzer können die Funktionsweise und die angezeigten Elemente natürlich ihren Bedürfnissen entsprechend konfigurieren. Mozilla sieht diesen Activity Stream als Anfang der Idee des Context Graph - einer Art universellem Vorschlagssystem für das Web.

Eine für viele Firefox-Nutzer spürbare Änderung in Version 57 ist außerdem das lang angekündigte endgültige Ende für Addons alten Typs.

Ende für alte Addons

Mit Firefox 57 sind nur noch Erweiterungen zugelassen, die die Webextension-APIs verwenden. Für Mozilla ergibt sich daraus der Vorteil, nicht standardisierte Eigenentwicklungen wie XPCOM, XUL und XBL nicht mehr für die Erweiterungen pflegen zu müssen. Damit kann auch Mozilla für den Firefox selbst mittelfristig auf diese Techniken verzichten.

Trotz fast zwei Jahren Übergangszeit wird es einige spezielle Addons geben, die nicht portiert worden sind. Teilweise auch, weil dies aus technischen Erwägungen heraus nicht möglich ist. Betroffen davon ist zum Beispiel auch Mozillas Firebug, das nicht mehr weiterentwickelt wird. Ersatz schaffen sollen hier die in den Browser eingebauten Web-Entwicklertools. Die meisten aktiv gepflegten Erweiterungen sollten jedoch mittlerweile portiert worden sein, wie bereits über 6.000 andere Erweiterungen auch. Für alle anderen bietet Mozilla im Addon-Menü an, Ersatz zu suchen.

Schnellerer Firefox

Die zumindest aus Sicht von Mozilla wichtigste Neuerung in Firefox 57 ist allerdings die allgemeine Geschwindigkeitsverbesserung, was vor allem für günstige und damit sehr weit verbreitete Laptops gelten soll. Für interne Tests der Arbeiten an Quantum hat Mozilla auf den bei Amazon in den USA meistverkauften Laptop gesetzt: Acers Aspire E15 für 350 US-Dollar, also rund 300 Euro. Der bietet immerhin einen Dual-Core-Prozessor, vier GByte RAM und eine HDD mit 5.400 Umdrehungen pro Minute.

Durch die vielen verschiedene Änderungen im Projekt Quantum verspricht sich Mozilla eine Verdopplung der Geschwindigkeit auf modernen Webseiten im Vergleich zu dem Firefox von vor einem Jahr. Dazu war aber mehr Arbeit notwendig als die des vergangenen Jahres. Die Verbesserungen sind vielmehr eine Kulmination verschiedener langjähriger Experimente und unterschiedlicher Projekte.

Smarte Multi-Prozesse und Servo-Anleihen

Die wohl wichtigste Grundlage für die Geschwindigkeitsverbesserung ist der intelligente Ausbau der Multi-Prozess-Architektur des Firefox, die mit dem Codenamen Electrolysis (E10s) erstellt worden ist. Die Aufspaltung des Mozilla-Browsers in mehrere Prozesse begann bereits im Jahr 2011. Damals bezog sich das aber noch auf die Abtrennung von Flash.

Erst Ende des Jahres 2014 konnten Firefox-Nutzer in den Nightly Builds erstmals einen sogenannten Content-Prozess neben dem Firefox-Prozess verwenden. Und erst seit diesem Sommer beginnt Mozilla damit, die standardmäßig vier Content-Prozesse in den Browsern der Nutzer zu aktivieren. Langfristig könnten auch Erweiterungen in eigene Prozesse ausgelagert werden, was einer der Gründe dafür ist, dass Mozilla die alte Addon-Architektur nicht mehr unterstützt und nur noch Webextensions erlaubt, die mit Unterstützung für E10s erstellt worden sind.

RAM-Schonende Inhalte und ein GPU-Prozess

Die wohl größte Konkurrenz des Firefox, Googles Chrome-Browser, nutzt ebenfalls eine Multi-Prozess-Architektur, und das auch schon sehr viel länger. Die Entwickler von Mozilla beschränken die maximale Anzahl der Prozesse im Gegensatz zu Chrome aber bewusst, vor allem um die Auslastung des Arbeitsspeichers gering zu halten. Wer möchte, kann die Anzahl der Prozesse in den Einstellungen des Browsers ändern.

Die Inhalte einzelner Tabs werden in Threads der Content-Prozesse abgearbeitet. Und die Bearbeitung der Threads, also die pure Rechenleistung der CPU ebenso wie weitere Ressourcen wie das Netzwerk, wird in Abhängigkeit der tatsächlich genutzten Tabs aufgeteilt. Dieses als Quantum DOM bezeichnete Projekt lagert den Javascript-Code verschiedener Tabs und künftig eventuell gar auch einzelner iFrames in eigene Threads aus und nutzt zunächst kooperatives Multitasking. Wie die Mozilla-Angestellte Lin Clark schreibt, seien die meisten dafür notwendigen Arbeiten zwar bereits in den Firefox integriert. Quantum DOM soll künftig aber um präemptives Multitasking erweitert werden. Damit können die Abarbeitung der Threads sowie deren Prioritäten noch besser gesteuert werden.

Für E10s mussten die Entwickler von Mozilla auch darüber hinaus große Teile des Browsers umarbeiten und verschiedene Annahmen zur Funktionsweise revidieren, um den Code an die Gegebenheiten moderner Hardware anzupassen. Als erste Konsequenz hieraus entstand zusätzlich zu den Content-Prozessen ein ausgelagerter GPU-Prozess, der Quantum Compositor, der seit diesem Frühjahr unter Windows verfügbar ist. Das macht den Browser stabiler und steigert dessen Reaktionsfähigkeit. Vor allem wird damit aber die gute Parallelisierbarkeit von Anwendungen auf der GPU ausgenutzt. Das will Mozilla auch an anderer Stelle nutzen.

Massiv parallelisiert

Diese Art der Aufspaltung einzelner Aufgaben nennt Clark in ihrer Beschreibung der Quantum-Arbeiten "grobkörnig". Immerhin könne dies immer noch dazu führen, dass ein CPU-Kern voll ausgelastet ist, während andere keinerlei Aufgaben abarbeiten. Besser sei ein "feinkörniger Ansatz" bei dem die anstehenden Arbeiten in viele kleine Teile zerlegt werden und so immer auf freie Ressourcen verteilt werden könnten, schreibt Clark.

Diesen "feinkörnigen" Ansatz hat Mozilla mit Stylo, dem Quantum CSS, umgesetzt. Stylo stammt aus der experimentellen Rendering-Enginge Servo, die in der Programmiersprache Rust geschrieben ist. In Stylo werden Algorithmen eingesetzt, die es ermöglichen, die CSS-Style-Berechnung der DOM-Knoten linear zu parallelisieren. Dieses sogenannte Work Stealing sorgt dafür, dass sämtliche verfügbaren CPU-Ressourcen auch ausgelastet werden.

Da Rust selbst klar für die Verwendung in Mehrkern- und -Prozesssystemen ausgelegt ist und etwa auf Sprachebene sogenannte Race Conditions verhindert, werden typische Probleme bei dieser Art der Parallelisierung von vornherein vermieden. Damit wird die von Stylo durchgeführte Aufgabe ein Problem, das beliebig parallelisierbar ist. Zusätzlich dazu nutzt Stylo ein paar weitere Tricks zur Beschleunigung der Arbeiten wie einen Style-Sharing-Cache, der so ähnlich auch in Chrome und dem Safari-Browser verwendet wird.

Quantum Render kommt später

Der letzte große und alleinstehende Teil der Quantum-Arbeiten ist die Integration des GPU-Backends, Quantum Render, in den Firefox. Auch diese Technik stammt ursprünglich aus dem Servo-Projekt und ist in Rust geschrieben. Der Webrender soll dazu genutzt werden, das gesamte Rastern auf der GPU auszuführen. Das betrifft insbesondere die Darstellung von Animationen, welche durch Webrender im Vergleich zu bisheriger Technik deutlich beschleunigt werden. Letztlich wird damit die GPU genau für den Zweck genutzt, für den die Hardware eigentlich gedacht ist. Bisher machen Browser davon aber so gut wie keinen Gebrauch.

Im Prinzip nutzt der Browser den Webrender dann genauso, wie Videospiele ihre Game-Engine verwenden. Besonders sinnvoll ist die Verwendung entsprechend für grafisch sehr anspruchsvolle Inhalte, die etwa WebGL oder WebVR verwenden. Aber auch vermeintliche Kleinigkeiten wie das Blinken eines Cursors in einem Eingabefeld werden darüber beschleunigt. Auszahlen soll sich der Webrender aber nicht nur auf vergleichsweise leistungsschwachen Laptops, sondern insbesondere auf Smartphones, deren CPU-Leistung oft eher schlecht ist, wohingegen die GPUs eine relativ gute Leistung bieten. Noch ist der Quantum Render aber nicht in den Firefox eingepflegt. Das soll erst im kommenden Jahr geschehen.

Alles im Fluss

Neben den erwähnten teils riesigen Umbauarbeiten am Code haben die unterschiedlichen Abteilungen von Mozilla auch noch im Rahmen der Initiative Quantum Flow viele kleine Fehler und Probleme identifiziert, die die Geschwindigkeit des Browsers negativ beeinflussen. Dabei sind ungefähr 500 dieser Aufgaben abgearbeitet worden. Eine der Neuerungen ist etwa Async Pan and Zoom, was ein weiches Scrollen ermöglicht, da die Funktion von dem Haupt-Javascript-Thread abgetrennt ist.

Die Quantum-Flow-Initiative will Mozilla langfristig als Teil des regulären Arbeitsablaufes aufrechterhalten. Dafür sollen nicht nur die intern genutzten Werkzeuge verbessert, sondern auch die automatischen Tests weiter ausgebaut werden, damit sich nicht unerwartet durch das Beheben von Problemen an einer Stelle wieder Fehler an anderer Stelle einschleichen.

Hilfreiche Kleinigkeiten

Für die aktuelle Version 57 des Firefox setzt Mozilla wie üblich aber auch viele weitere kleine Änderungen abseits der Quantum-Initiative um. So kann der Browser etwa das Hardware-Decoding für VP9 in GPUs von AMD verwenden, was hilfreich für Seiten wie Youtube ist, die diesen Codec bevorzugt verwenden.

Der Browser unterstützt außerdem die HTML-Eingabeelemente für das Datum sowie die Uhrzeit. Ein Datum können Nutzer künftig über einen integrierten Kalender auswählen. Für die Uhrzeit hat das Team auf eine extra GUI zur Auswahl verzichtet, da die Eingabe per Tastatur für die meisten Nutzer wohl einfach schneller ist.

Der vor rund zwei Jahren für den privaten Modus eingeführte Trackingschutz lässt sich künftig sehr leicht über die Optionen dauerhaft auch für den normalen Browsing-Modus aktivieren. Unter Linux nutzt der Browser künftig ähnliche Sandbox-Methoden wie bereits unter Windows und MacOS, um Lese- und Schreibzugriffe auf das Dateisystem zu filtern und notfalls zu verhindern.

Für die im Firefox genutzte Krypto-Bibliothek NSS hat das Team eine formal verifizierte Implementierung des Diffie-Hellman-Schlüsselaustausches auf Curve25519 integriert. Der Code dazu stammt aus einem Forschungsprojekt des französischen Instituts Inria in Kooperation mit Microsoft Research. Der Code ist damit nicht nur wesentlich sicherer, sondern im Vergleich zur vorher genutzten Implementierung auch rund 20 Prozent schneller auf 64-Bit-Plattformen. Das Team plant eigenen Angaben zufolge, künftig weitere dieser formal verifizierten Algorithmen in NSS zu integrieren. Die für Angriffe anfällige TLS-Kompression wird ebenfalls deaktiviert.

Weitere Neuerungen zu der aktuellen Version 57 des Firefox-Browsers finden sich in den Release Notes. Der Browser steht zum Download über die Archive-Server von Mozilla bereit und soll demnächst als Update verteilt werden.  (sg)


Verwandte Artikel:
Juli 2018: Chrome bestraft Webseiten ohne HTTPS   
(09.02.2018, https://glm.io/132689 )
Mozilla: Firefox soll mit Werbung in Pocket experimentieren   
(29.01.2018, https://glm.io/132450 )
Browser: Firefox-Klon Cyberfox wird eingestellt   
(08.03.2017, https://glm.io/126594 )
Mozilla: Web-Engine Servo bekommt GPU-beschleunigtes WebVR   
(30.11.2016, https://glm.io/124778 )
Verschlüsselung: TLS 1.3 ist so gut wie fertig   
(16.02.2018, https://glm.io/132828 )

© 1997–2019 Golem.de, https://www.golem.de/