Roadmap zur Verbesserung der Wayland-Unterstützung in Firefox

Martin Stransky, ein Firefox-Paketbetreuer für Fedora und RHEL, der Firefox auf Wayland portiert, hat einen Bericht veröffentlicht, in dem er die neuesten Entwicklungen bei der Ausführung von Firefox in Wayland-Protokoll-basierten Umgebungen überprüft.

In den kommenden Versionen von Firefox ist geplant, die bei Builds für Wayland beobachteten Probleme mit der Zwischenablage und der Handhabung von Popups zu lösen. Diese Funktionen konnten aufgrund der unterschiedlichen Vorgehensweise bei der Implementierung in X11 und Wayland nicht sofort implementiert werden. Im ersten Fall traten Schwierigkeiten auf, weil die Wayland-Zwischenablage asynchron lief, was die Erstellung einer separaten Ebene erforderte, um den Zugriff auf die Wayland-Zwischenablage zu abstrahieren. Die angegebene Ebene wird zu Firefox 93 hinzugefügt und in Firefox 94 standardmäßig aktiviert.

Bei den Popup-Dialogen bestand die Hauptschwierigkeit darin, dass Wayland eine strikte Hierarchie der Popup-Fenster erfordert, d. h. Ein übergeordnetes Fenster kann ein untergeordnetes Fenster mit einem Popup erstellen, aber das nächste von diesem Fenster initiierte Popup muss an das ursprüngliche untergeordnete Fenster gebunden sein und eine Kette bilden. In Firefox konnte jedes Fenster mehrere Popups erzeugen, die keine Hierarchie bildeten. Das Problem bestand darin, dass bei der Verwendung von Wayland das Schließen eines der Popups den Neuaufbau der gesamten Fensterkette mit anderen Popups erfordert, obwohl das Vorhandensein mehrerer geöffneter Popups keine Seltenheit ist, da Menüs und Popups in Form von implementiert sind Popups, Tooltips, Add-on-Dialoge, Berechtigungsanfragen usw. Die Situation wurde auch durch Fehler in Wayland und GTK erschwert, aufgrund derer kleine Änderungen zu verschiedenen Rückschritten führen konnten. Der Code zur Behandlung von Popups für Wayland wurde jedoch debuggt und soll in Firefox 94 integriert werden.

Zu den weiteren Wayland-bezogenen Verbesserungen gehört die Hinzufügung von 93 Skalierungsänderungen zu Firefox auf verschiedenen DPI-Bildschirmen, die das Flackern beseitigen, wenn ein Fenster in Konfigurationen mit mehreren Monitoren an den Rand des Bildschirms verschoben wird. Firefox 95 plant, Probleme zu beheben, die bei der Verwendung der Drag&Drop-Schnittstelle auftreten, beispielsweise beim Kopieren von Dateien aus externen Quellen in lokale Dateien und beim Verschieben von Tabs.

Mit der Veröffentlichung von Firefox 96 soll die Firefox-Portierung für Wayland in ihrer Funktionalität insgesamt mit dem X11-Build gleichgesetzt werden, zumindest wenn sie in der GNOME-Umgebung von Fedora läuft. Danach wird sich die Aufmerksamkeit der Entwickler auf die Verbesserung der Arbeit des GPU-Prozesses in Wayland-Umgebungen richten, der Code für die Interaktion mit Grafikkarten enthält und den Hauptbrowserprozess vor einem Absturz bei Treiberfehlern schützt. Der GPU-Prozess soll auch Code für die Videodekodierung mithilfe von VAAPI umfassen, der derzeit in Inhaltsverarbeitungsprozessen ausgeführt wird.

Darüber hinaus können wir die Aufnahme eines strikten Site-Isolationsmodus feststellen, der im Rahmen des Fission-Projekts für einen kleinen Prozentsatz der Benutzer der stabilen Zweige von Firefox entwickelt wurde. Im Gegensatz zur bisher verwendeten willkürlichen Verteilung der Tab-Verarbeitung über den verfügbaren Prozesspool (standardmäßig 8) platziert der Isolationslinienmodus die Verarbeitung jeder Site in einem eigenen separaten Prozess, der nicht durch Tabs, sondern nach Domäne (Öffentlich) getrennt ist Suffix), das zusätzliche Isolationsinhalte externer Skripte und Iframe-Blöcke ermöglicht. Die Aktivierung des Fission-Modus wird über die Variable „fission.autostart=true“ in about:config oder auf der Seite about:preferences#experimental gesteuert.

Der strikte Isolationsmodus trägt zum Schutz vor Seitenkanalangriffen bei, wie sie beispielsweise mit Spectre-Schwachstellen in Zusammenhang stehen, und reduziert außerdem die Speicherfragmentierung, gibt Speicher effizienter an das Betriebssystem zurück, minimiert die Auswirkungen der Speicherbereinigung und intensiver Berechnungen auf Seiten in anderen Prozessen usw Erhöht die Effizienz der Lastverteilung auf verschiedene CPU-Kerne und erhöht die Stabilität (der Absturz des Prozesses, der den Iframe verarbeitet, hat keine Auswirkungen auf die Hauptseite und andere Registerkarten).

Zu den bekannten Problemen, die bei Verwendung des strikten Isolationsmodus auftreten, gehört ein spürbarer Anstieg des Speicher- und Dateideskriptorverbrauchs beim Öffnen einer großen Anzahl von Registerkarten sowie eine Unterbrechung der Arbeit einiger Add-Ons und das Verschwinden von Iframe-Inhalten, wenn Drucken und Aufrufen der Screenshot-Aufzeichnungsfunktion, verringerte Effizienz beim Zwischenspeichern von Dokumenten aus dem IFrame, Verlust von Inhalten ausgefüllter, aber nicht übermittelter Formulare, wenn eine Sitzung nach einem Absturz wiederhergestellt wird.

Zu den weiteren Änderungen in Firefox gehören der Abschluss der Migration zum Fluent-Lokalisierungssystem, Verbesserungen am Hochkontrastmodus, die Hinzufügung der Möglichkeit, Prozessleistungsprofile mit einem Klick zu about:processes aufzuzeichnen, und die Entfernung einer Einstellung, um das Alte wiederherzustellen Stil der neuen Registerkarte, die vor Firefox 89 verwendet wurde.

Source: opennet.ru

Kommentar hinzufügen