Martin Stransky, Wartungsbeauftragter fĂŒr Firefox-Pakete in Fedora und RHEL, der sich mit der Portierung von Firefox fĂŒr Wayland beschĂ€ftigt, hat einen Bericht veröffentlicht, der die neuesten Fortschritte bei der Nutzung von Firefox in Umgebungen auf Basis des Wayland-Protokolls zusammenfasst.
In den kommenden Versionen von Firefox wird geplant, die in den Wayland-Bauten beobachteten Probleme mit der Zwischenablage und der Handhabung von Popup-Fenstern zu beheben. Diese Funktionen konnten zunĂ€chst nicht realisiert werden, da es Unterschiede in der Implementierung zwischen X11 und Wayland gibt. Im ersten Fall entstanden Schwierigkeiten durch die asynchrone Arbeitsweise der Wayland-Zwischenablage, was die Schaffung einer separaten Schicht zur Abstraktion des Zugriffs auf die Wayland-Zwischenablage erforderlich machte. Diese Schicht wird in Firefox 93 hinzugefĂŒgt und standardmĂ€Ăig in Firefox 94 aktiviert.
Was die Pop-up-Fenster betrifft, so bestand die Hauptschwierigkeit darin, dass Wayland eine strenge Hierarchie von Pop-up-Fenstern erfordert. Das heiĂt, ein ĂŒbergeordnetes Fenster kann ein untergeordnetes Fenster mit einem Pop-up erstellen, aber das nĂ€chste Pop-up, das aus diesem Fenster initiiert wird, muss an das ursprĂŒngliche untergeordnete Fenster angebunden werden, wodurch eine Kette entsteht. In Firefox konnte jedes Fenster mehrere Pop-ups erzeugen, ohne eine Hierarchie zu bilden. Das Problem bestand darin, dass beim SchlieĂen eines der Pop-ups unter Wayland die gesamte Kette der Fenster mit den anderen Pop-ups neu aufgebaut werden muss, wobei mehrere offene Pop-ups keine Seltenheit sind, da in Form von Pop-ups MenĂŒs, Tooltips, Erweiterungsdialoge, Berechtigungsanfragen usw. realisiert sind. Die Situation wurde zusĂ€tzlich durch MĂ€ngel in Wayland und GTK kompliziert, aufgrund derer schon kleine Ănderungen zu verschiedenen Regressionen fĂŒhren konnten. Trotzdem wurde der Code zur Verarbeitung von Pop-up-Fenstern fĂŒr Wayland optimiert und soll in Firefox 94 integriert werden.
Zu den weiteren Verbesserungen in Bezug auf Wayland gehört die Integration von Ănderungen in Firefox 93, die sich mit dem Skalieren auf Bildschirmen mit unterschiedlicher DPI beschĂ€ftigen. Diese Anpassungen haben das Flimmern beim Verschieben von Fenstern zum Rand des Bildschirms in Multi-Monitor-Konfigurationen beseitigt. In Firefox 95 ist geplant, Probleme beim Drag-&-Drop-Interface anzugehen, insbesondere beim Kopieren von Dateien aus externen Quellen in lokale Dateisysteme sowie beim Verschieben von Tabs.
In der Version Firefox 96 wird der Wayland-Port von Firefox auf den Funktionsumfang der X11-Version angehoben, zumindest im GNOME-Umfeld von Fedora. Danach wird der Fokus der Entwickler darauf liegen, die GPU-Prozesse in Wayland zu optimieren. In diesen Prozess wird der Code zur Interaktion mit Grafik-Adaptern ausgelagert, was den Hauptprozess des Browsers vor AbstĂŒrzen durch Treiberfehler schĂŒtzt. AuĂerdem ist vorgesehen, den VAAPI-Code zur Video-Dekodierung in den GPU-Prozess auszulagern, der aktuell in den Content-Processing-Prozessen lĂ€uft.
ZusĂ€tzlich kann erwĂ€hnt werden, dass fĂŒr einen kleinen Prozentsatz der Benutzer stabile Firefox-Versionen den strengen Isolationmodus fĂŒr Webseiten aktivieren, der im Rahmen des Fission-Projekts entwickelt wurde. Im Gegensatz zur bisherigen zufĂ€lligen Verteilung der Bearbeitung von Tabs auf den verfĂŒgbaren Prozesspool (standardmĂ€Ăig 8) ordnet der Isolationmodus die Bearbeitung jeder Webseite einem eigenen Prozess zu, wobei die Trennung nicht nach Tabs, sondern nach Domains (Public Suffix) erfolgt. Dies ermöglicht eine zusĂ€tzliche Isolierung des Inhalts externer Skripte und iframe-Elemente. Die Aktivierung des Fission-Modus erfolgt ĂŒber die Variable "fission.autostart=true" in about:config oder auf der Seite about:preferences#experimental.
Der Modus der strengen Isolierung schĂŒtzt vor Angriffen ĂŒber externe KanĂ€le, wie sie mit Schwachstellen der Spectre-Klasse verbunden sind. Zudem reduziert er die Fragmentierung des Speichers, gibt den Speicher effizienter an das Betriebssystem zurĂŒck, minimiert die Auswirkungen von Garbage Collection und intensiven Berechnungen auf die Seiten anderer Prozesse, erhöht die Effizienz der Lastverteilung auf verschiedene CPU-Kerne und verbessert die StabilitĂ€t (ein Absturz des Prozesses, der das iframe verarbeitet, wirkt sich nicht auf die Hauptseite und andere Tabs aus).
Zu den bekannten Problemen beim Einsatz des strengen Isolationsmodus gehört ein deutlich erhöhter Speicher- und Dateideskriptorverbrauch beim Ăffnen vieler Tabs sowie die BeeintrĂ€chtigung der Funktion einiger Erweiterungen, das Verschwinden von iframe-Inhalten beim Drucken und beim Aufruf der Screenshot-Funktion, die Verringerung der Effizienz beim Caching von Dokumenten mit iframes und der Verlust des Inhalts ausgefĂŒllter, aber nicht gesendeter Formulare beim Wiederherstellen der Sitzung nach einem Absturz.
Zu den weiteren Ănderungen in Firefox gehört der Abschluss der Migration auf das Fluent-Localization-System, die Verbesserung des hochkontrastierenden Modus (High Contrast Mode), die Möglichkeit, im Bereich about:processes durch einen Klick Leistungsprofile des Prozesses aufzuzeichnen, sowie die Entfernung der Einstellung zur Wiederherstellung des alten Stils fĂŒr die Seite zum Ăffnen eines neuen Tabs, der bis Firefox 89 verwendet wurde.
Quelle: opennet.ru
