Plán zlepšení podpory Wayland ve Firefoxu

Martin Stransky, udržovatel balíčků Firefox ve Fedoře a RHEL, který se zabývá portováním Firefoxu pro Wayland, zveřejnil zprávu shrnující poslední pokroky v oblasti fungování Firefoxu v prostředích založených na protokolu Wayland.

V nadcházejících verzích Firefoxu se plánuje vyřešit pozorované problémy se schránkou a zpracováním vyskakovacích oken (popup) ve verzích pro Wayland. Tyto funkce nebylo možné ihned implementovat kvůli rozdílům v přístupech k jejich realizaci v X11 a Waylandu. V prvním případě vznikly potíže kvůli asynchronnímu režimu práce schránky Wayland, což vyžadovalo vytvoření samostatné vrstvy pro zajištění přístupu ke schránce Wayland. Tato vrstva bude přidána do Firefoxu 93 a ve výchozím nastavení bude zahrnuta ve Firefoxu 94.

Pokud jde o vyskakovací dialogy, hlavní obtíž spočívala v tom, že Wayland vyžaduje dodržování přísné hierarchie vyskakovacích oken, tedy rodičovské okno může vytvořit dceřiné okno s popupem, ale vyskakovací okno iniciované z tohoto okna by mělo být spojeno s původním dceřiným oknem a tvořit řetězec. Ve Firefoxu mohlo každé okno generovat několik popupů, které netvořily hierarchii. Problém spočíval v tom, že při použití Waylandu vyžaduje zavření jednoho z popupů přestavbu celého řetězce oken s dalšími popupy, přičemž přítomnost několika otevřených popupů není neobvyklá, protože v podobě popupů jsou implementována menu, vyskakovací nápovědy, dialogy rozšíření, žádosti o oprávnění atd. Situaci také zkomplikovaly nedodělky v Waylandu a GTK, kvůli nimž i malé změny mohly vést k různým regresím. Přesto byl kód pro zpracování vyskakovacích oken pro Wayland vyladěn a plánuje se jeho zahrnutí do Firefoxu 94.

Mezi dalšími vylepšeními souvisejícími s Waylandem je zmíněna změna v Firefoxu 93 týkající se škálování na obrazovkách s různým DPI, což umožnilo zbavit se blikání při přesouvání okna k okraji obrazovky v konfiguracích s více monitory. V Firefoxu 95 se plánuje vyřešení problémů, které vznikají při používání rozhraní drag & drop, například při kopírování souborů z externích zdrojů do místních FS a při přesouvání karet.

Ve verzi Firefox 96 se plánuje, že port Firefox pro Wayland dosáhne shody ve funkčnosti se verzí pro X11, alespoň při práci v prostředí GNOME na Fedora. Po tomto kroku se pozornost vývojářů přesune na vylepšení fungování GPU procesu ve Waylandu, do kterého byl přesunut kód pro interakci s grafickými adaptéry a který chrání hlavní proces prohlížeče před pády v případě selhání ovladačů. Do GPU procesu se také plánuje přesunout kód pro dekódování videa pomocí VAAPI, který je v současnosti spuštěn v procesech zpracování obsahu.

Dále je třeba poznamenat, že pro malé procento uživatelů stabilních verzí Firefoxu byl aktivován režim striktní izolace stránek, vyvíjený v rámci projektu Fission. Na rozdíl od dosud používaného náhodného rozdělení zpracování karet mezi dostupné procesy (výchozí je 8) režim striktní izolace přesouvá zpracování každého webu do svého vlastního procesu, přičemž není rozděleno podle karet, ale podle domén (Public Suffix). To umožňuje další izolaci obsahu externích skriptů a iframe bloků. Ovládání aktivace režimu Fission se provádí prostřednictvím proměnné „fission.autostart=true“ v about:config nebo na stránce about:preferences#experimental.

Režim striktní izolace chrání před útoky prostřednictvím bočních kanálů, například těch, které se týkají zranitelností třídy Spectre, a také snižuje fragmentaci paměti, efektivněji vrací paměť operačnímu systému, minimalizuje vliv garbage collection a intenzivních výpočtů na stránky v jiných procesech, zvyšuje efektivitu zatížení různých jader CPU a zvyšuje stabilitu (pád procesu, který zpracovává iframe, nepovede k pádu hlavního webu a dalších karet).

Mezi známé problémy spojené s používáním režimu striktní izolace patří výrazné zvýšení spotřeby paměti a souborových descriptorů při otevření velkého počtu karet, stejně jako narušení fungování některých doplňků, zmizení obsahu iframe při tisku a volání funkce pro vytváření screenshotů, snížení efektivity kešování dokumentů s iframe a ztráta obsahu vyplněných, avšak neodeslaných formulářů při obnovení relace po pádu.

Mezi dalšími změnami ve Firefoxu se uvádí dokončení migrace na systém lokalizace Fluent, vylepšení režimu vysokého kontrastu (High Contrast Mode), přidání funkce pro jedno kliknutí pro nahrávání profilů výkonnosti procesů v about:processes a odstranění nastavení pro návrat k předchozímu stylu zobrazení stránky nových karet, který byl používán před Firefoxem 89.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster