Plán pro zlepšení podpory Wayland ve Firefoxu

Martin Stransky, správce balíčků Firefoxu pro Fedoru a RHEL, který přenáší Firefox na Wayland, zveřejnil zprávu o nejnovějším vývoji Firefoxu běžícího v prostředích založených na protokolu Wayland.

V nadcházejících verzích Firefoxu se plánuje vyřešit problémy pozorované u sestavení pro Wayland se schránkou a manipulací s vyskakovacími okny. Tyto funkce nemohly být okamžitě implementovány kvůli rozdílům v přístupu k jejich implementaci v X11 a Wayland. V prvním případě nastaly potíže kvůli asynchronnímu běhu schránky Wayland, což vyžadovalo vytvoření samostatné vrstvy pro abstraktní přístup do schránky Wayland. Zadaná vrstva bude přidána do Firefoxu 93 a ve výchozím nastavení povolena ve Firefoxu 94.

Co se týče vyskakovacích dialogů, hlavním problémem bylo, že Wayland vyžaduje přísnou hierarchii vyskakovacích oken, tzn. rodičovské okno může vytvořit podřízené okno s vyskakovacím oknem, ale další vyskakovací okno iniciované z tohoto okna se musí vázat na původní podřízené okno a vytvořit řetězec. Ve Firefoxu mohlo každé okno vytvořit několik vyskakovacích oken, která netvořila hierarchii. Problém byl v tom, že při použití Waylandu zavření jednoho z vyskakovacích oken vyžaduje přebudování celého řetězce oken s dalšími vyskakovacími okny, a to navzdory skutečnosti, že přítomnost několika otevřených vyskakovacích oken není neobvyklá, protože nabídky a vyskakovací okna jsou implementována ve formě vyskakovací nápověda, dialogová okna doplňků, žádosti o povolení atd. Situaci komplikovaly i nedostatky ve Waylandu a GTK, kvůli kterým mohly malé změny vést k různým regresím. Kód pro zpracování vyskakovacích oken pro Wayland byl však odladěn a plánuje se jeho zahrnutí do Firefoxu 94.

Mezi další vylepšení související s Wayland patří přidání 93 změn měřítka do Firefoxu na různých obrazovkách DPI, které eliminují blikání při přesunutí okna k okraji obrazovky v konfiguracích s více monitory. Firefox 95 plánuje řešit problémy, které vznikají při používání drag&drop rozhraní, například při kopírování souborů z externích zdrojů do lokálních souborů a při přesouvání karet.

S vydáním Firefoxu 96 se plánuje, že port Firefoxu pro Wayland bude ve funkčnosti celkově rovnocenný s sestavením X11, alespoň při běhu v prostředí GNOME Fedory. Poté se pozornost vývojářů přesune na zdokonalování práce v prostředí Wayland GPU procesu, který obsahuje kód pro interakci s grafickými adaptéry a který chrání hlavní proces prohlížeče před pádem v případě selhání ovladače. Proces GPU je také plánován tak, aby zahrnoval kód pro dekódování videa pomocí VAAPI, který je v současnosti spuštěn v procesech zpracování obsahu.

Navíc si můžeme všimnout zahrnutí přísného režimu izolace stránek, vyvinutého jako součást projektu Fission, pro malé procento uživatelů stabilních větví Firefoxu. Na rozdíl od dosud používaného libovolného rozložení zpracování karet v rámci dostupného fondu procesů (ve výchozím nastavení 8), režim izolační linky umisťuje zpracování každého webu do vlastního samostatného procesu, odděleného nikoli kartami, ale doménou (Public Suffix), která umožňuje další izolaci obsahu externích skriptů a bloků iframe. Povolení režimu štěpení se ovládá pomocí proměnné „fission.autostart=true“ v about:config nebo na stránce about:preferences#experimental.

Režim přísné izolace pomáhá chránit před útoky postranních kanálů, jako jsou útoky spojené se zranitelností Spectre, a také snižuje fragmentaci paměti, efektivněji vrací paměť operačnímu systému, minimalizuje dopad garbage collection a intenzivních výpočtů na stránky v jiných procesech a zvyšuje efektivitu rozložení zátěže mezi různá jádra CPU a zvyšuje stabilitu (selhání procesu zpracování iframe neovlivní hlavní web a další karty).

Mezi známé problémy, které vznikají při použití režimu přísné izolace, patří znatelné zvýšení spotřeby paměti a deskriptorů souborů při otevírání velkého množství karet, dále narušení práce některých doplňků, mizení obsahu iframe při tisk a volání funkce nahrávání screenshotů, snížená efektivita ukládání dokumentů do mezipaměti z iframe, Ztráta obsahu vyplněných, ale neodeslaných formulářů při obnovení relace po havárii.

Mezi další změny ve Firefoxu patří dokončení migrace na lokalizační systém Fluent, vylepšení režimu High Contrast Mode, přidání možnosti zaznamenávat profily výkonu procesu jedním kliknutím do about:processes a odstranění nastavení pro návrat starého styl stránky nové karty, který byl používán před Firefoxem 89.

Zdroj: opennet.ru

Přidat komentář