Martin Stránsky, správca balíkov Firefox v Fedore a RHEL, ktorý sa zaoberá portovaním Firefoxu pre Wayland, zverejnil správu s prehľadom posledných pokrokov v oblasti fungovania Firefoxu v prostrediach založených na protokole Wayland.
V najbližších vydaniach Firefoxa sa plánuje vyriešiť problémy s clipboardom a spracovaním vyskakovacích okien (popup) pozorované v zostavách pre Wayland. Tieto funkcie sa nedali okamžite implementovať kvôli rozdielom v prístupe k ich realizácii v X11 a Wayland. V prvom prípade nastali ťažkosti v dôsledku fungovania clipboardu Wayland v asynchrónnom režime, čo si vyžiadalo vytvorenie samostatnej vrstvy na abstrahovanie prístupu k clipboardu Wayland. Táto vrstva bude pridaná v zostave Firefox 93 a predvolene zapnutá vo Firefoxe 94.
Pokiaľ ide o vyskakovacie dialógy, hlavná ťažkosť spočívala v tom, že Wayland vyžaduje dodržiavanie prísnej hierarchie vyskakovacích okien, t.j. rodičovské okno môže vytvoriť podradené okno s popupom, ale ďalší popup iniciovaný z tohto okna musí byť viazaný k pôvodnému podradenému oknu, čím vytvára reťazec. Vo Firefoxe mohlo každé okno vytvárať niekoľko popupov, ktoré nevytvárali hierarchiu. Problém spočíval v tom, že pri používaní Waylandu uzatvorenie jedného z popupov si vyžaduje prestavbu celého reťazca okien s inými popupmi, pričom prítomnosť niekoľkých otvorených popupov nie je zriedkavá, keďže v podobe popupov sú realizované menu, vyskakovacie nápovedy, dialógy doplnkov, žiadosti o oprávnenia a pod. Situáciu tiež komplikovali nedostatky vo Waylande a GTK, kvôli ktorým mohli malé zmeny spôsobiť rôzne regresie. Napriek tomu bol kód na spracovanie vyskakovacích okien pre Wayland odladený a má byť zahrnutý v zostave Firefox 94.
Medzi ďalšie vylepšenia týkajúce sa Waylandu patrí pridanie zmien súvisiacich so škálovaním na obrazovkách s rôznym DPI vo Firefoxe 93, ktoré umožnili zbaviť sa blikania pri presúvaní okna k okraju obrazovky v konfiguráciách s viacerými monitorami. Vo Firefoxe 95 sa plánuje vyriešiť problémy, ktoré sa vyskytujú pri používaní rozhrania drag&drop, napríklad pri kopírovaní súborov z externých zdrojov do lokálnych FS a pri presúvaní kariet.
V vydaní Firefox 96 plánujú port Firefox pre Wayland doviesť do rovnakého štandardu funkčnosti ako verzia pre X11, minimálne pri práci v GNOME prostredí na Fedore. Po tomto sa pozornosť vývojárov presunie na zlepšenie výkonu procesov GPU v prostredí Wayland, do ktorého bol presunutý kód na interakciu s grafickými adaptérmi a ktorý chráni hlavný proces prehľadávača pred pádom v prípade porúch ovládačov. Do procesu GPU sa tiež plánuje presunúť kód na dekódovanie videa pomocou VAAPI, ktorý sa v súčasnosti spúšťa v procesoch spracovania obsahu.
Okrem toho možno spomenúť zavedenie režimu prísnej izolácie webových stránok pre malý percento používateľov stabilných vetiev Firefox, ktorý sa vyvíjal v rámci projektu Fission. Na rozdiel od doteraz používaného náhodného rozdelenia spracovania kariet medzi dostupný pool procesov (predvolene 8), režim prísnej izolácie vyčleňuje spracovanie každej webovej stránky do jej vlastného vyhradeného procesu s rozdelením nie podľa kariet, ale podľa domén (Public Suffix), čo umožňuje dodatočne izolovať obsah externých skriptov a blokov iframe. Správa aktivácie režimu Fission sa vykonáva cez premennú „fission.autostart=true“ v about:config alebo na stránke about:preferences#experimental.
Režim prísnej izolácie chráni pred útokmi cez vedľajšie kanály, ako sú zraniteľnosti typu Spectre, a tiež znižuje fragmentáciu pamäte, účinnejšie vracia pamäť operačnému systému, minimalizuje vplyv vykládania odpadu a intenzívne výpočty na stránky v iných procesoch, zvyšuje efektivitu rozdeľovania zaťaženia na rôzne jadrá CPU a zlepšuje stabilitu (pád procesu, ktorý spracováva iframe, neovplyvní hlavný web a iné karty).
Medzi známe problémy, ktoré sa objavujú pri používaní režimu prísnej izolácie, patrí výrazné zvýšenie spotreby pamäte a súborových deskriptorov pri otvorení veľkého počtu kariet, ako aj poruchy niektorých doplnkov, zmiznutie obsahu iframe pri tlači a vyvolávaní funkcie na snímanie obrazovky, znížená efektivita cache dokumentov s iframe, strata obsahu vyplnených, ale neposlaných formulárov pri obnovení relácie po páde.
Medzi ďalšími zmenami vo Firefoxe sa uvádza ukončenie migrácie na lokalizačný systém Fluent, zlepšenie vysokokontrastného režimu (High Contrast Mode), pridanie funkcie na stránke about:processes, ktorá umožňuje jedným kliknutím zaznamenať profily výkonu procesu, a odstránenie nastavenia na vrátenie starého štýlu dizajnu otvárania novej karty, ktorý sa používal pred verziou Firefox 89.
Zdroj: opennet.ru
