Roadmap para sa pagpapabuti ng suporta sa Wayland sa Firefox

Si Martin Stransky, isang Firefox package maintainer para sa Fedora at RHEL na nag-port ng Firefox sa Wayland, ay nag-publish ng isang ulat na sinusuri ang pinakabagong mga pag-unlad sa Firefox na tumatakbo sa Wayland protocol-based na mga kapaligiran.

Sa mga darating na release ng Firefox, pinlano itong lutasin ang mga problemang naobserbahan sa mga build para sa Wayland gamit ang clipboard at paghawak ng mga pop-up. Hindi agad maipatupad ang mga feature na ito dahil sa mga pagkakaiba sa diskarte sa kanilang pagpapatupad sa X11 at Wayland. Sa unang kaso, nagkaroon ng mga paghihirap dahil sa paggana ng Wayland clipboard nang asynchronous, na nangangailangan ng paglikha ng isang hiwalay na layer upang magkaroon ng abstract na access sa Wayland clipboard. Ang tinukoy na layer ay idaragdag sa Firefox 93 at paganahin bilang default sa Firefox 94.

Tungkol sa mga pop-up na dialog, ang pangunahing kahirapan ay ang Wayland ay nangangailangan ng isang mahigpit na hierarchy ng mga pop-up window, i.e. ang isang parent window ay maaaring lumikha ng isang child window na may popup, ngunit ang susunod na popup na sinimulan mula sa window na iyon ay dapat na sumailalim sa orihinal na child window, na bumubuo ng isang chain. Sa Firefox, ang bawat window ay maaaring magpalabas ng ilang mga popup na hindi bumubuo ng isang hierarchy. Ang problema ay kapag gumagamit ng Wayland, ang pagsasara ng isa sa mga popup ay nangangailangan ng muling pagtatayo ng buong hanay ng mga bintana gamit ang iba pang mga popup, sa kabila ng katotohanan na ang pagkakaroon ng maraming bukas na mga popup ay hindi pangkaraniwan, dahil ang mga menu at pop-up ay ipinatupad sa anyo ng mga tooltip ng popup, mga add-on na dialog, mga kahilingan sa pahintulot, atbp. Ang sitwasyon ay kumplikado din ng mga kapintasan sa Wayland at GTK, dahil sa kung saan ang mga maliliit na pagbabago ay maaaring humantong sa iba't ibang mga regression. Gayunpaman, ang code para sa paghawak ng mga pop-up para sa Wayland ay na-debug at binalak na isama sa Firefox 94.

Kasama sa iba pang mga pagpapahusay na nauugnay sa Wayland ang pagdaragdag ng 93 pagbabago sa pag-scale sa Firefox sa iba't ibang DPI screen, na nag-aalis ng pagkutitap kapag naglilipat ng window sa gilid ng screen sa mga multi-monitor na configuration. Plano ng Firefox 95 na tugunan ang mga problemang lumalabas kapag ginagamit ang interface ng drag&drop, halimbawa, kapag kumukopya ng mga file mula sa mga panlabas na mapagkukunan patungo sa mga lokal na file at kapag naglilipat ng mga tab.

Sa paglabas ng Firefox 96, ang Firefox port para sa Wayland ay binalak na dalhin sa pangkalahatang parity sa functionality sa X11 build, kahit na kapag tumatakbo sa GNOME environment ng Fedora. Pagkatapos nito, maililipat ang atensyon ng mga developer sa paghasa sa trabaho sa mga kapaligiran ng Wayland ng proseso ng GPU, na naglalaman ng code para sa pakikipag-ugnayan sa mga graphics adapter at pinoprotektahan ang pangunahing proseso ng browser mula sa pag-crash sa kaganapan ng mga pagkabigo ng driver. Ang proseso ng GPU ay pinlano din na isama ang code para sa pag-decode ng video gamit ang VAAPI, na kasalukuyang pinapatakbo sa mga proseso ng pagpoproseso ng nilalaman.

Bilang karagdagan, maaari naming tandaan ang pagsasama ng isang mahigpit na mode ng paghihiwalay ng site, na binuo bilang bahagi ng proyekto ng Fission, para sa isang maliit na porsyento ng mga gumagamit ng mga matatag na sangay ng Firefox. Kabaligtaran sa di-makatwirang pamamahagi ng pagpoproseso ng tab sa buong available na pool ng proseso (8 bilang default), na ginagamit sa ngayon, inilalagay ng isolation line mode ang pagproseso ng bawat site sa sarili nitong hiwalay na proseso, hindi pinaghihiwalay ng mga tab, ngunit ayon sa domain (Public Suffix), na nagbibigay-daan para sa karagdagang mga nilalaman ng paghihiwalay ng mga panlabas na script at mga bloke ng iframe. Ang pag-enable sa Fission mode ay kinokontrol sa pamamagitan ng variable na β€œfission.autostart=true” sa about:config o sa about:preferences#experimental page.

Nakakatulong ang mahigpit na isolation mode na maprotektahan laban sa mga pag-atake sa side-channel, tulad ng mga nauugnay sa mga kahinaan ng Spectre, at binabawasan din ang fragmentation ng memory, mas mahusay na ibinabalik ang memory sa operating system, pinapaliit ang epekto ng koleksyon ng basura at masinsinang pagkalkula sa mga pahina sa iba pang mga proseso, at pinatataas ang kahusayan ng pamamahagi ng load sa iba't ibang mga core ng CPU at pinatataas ang katatagan (ang pag-crash ng proseso sa pagproseso ng iframe ay hindi makakaapekto sa pangunahing site at iba pang mga tab).

Kabilang sa mga kilalang problema na lumitaw kapag gumagamit ng mahigpit na mode ng paghihiwalay, mayroong isang kapansin-pansin na pagtaas sa memorya at pagkonsumo ng descriptor ng file kapag binubuksan ang isang malaking bilang ng mga tab, pati na rin ang pagkagambala sa gawain ng ilang mga add-on, pagkawala ng nilalaman ng iframe kapag pag-print at pagtawag sa function ng pag-record ng screenshot, nabawasan ang kahusayan ng pag-cache ng mga dokumento mula sa iframe, Pagkawala ng mga nilalaman ng nakumpleto ngunit hindi naisumite na mga form kapag naibalik ang isang session pagkatapos ng pag-crash.

Kasama sa iba pang mga pagbabago sa Firefox ang pagkumpleto ng paglipat sa Fluent localization system, mga pagpapahusay sa High Contrast Mode, ang pagdaragdag ng kakayahang mag-record ng mga profile ng performance ng proseso sa isang pag-click sa about:processes, at ang pag-alis ng setting para ibalik ang luma estilo ng bagong pahina ng tab na ginamit bago ang Firefox 89.

Pinagmulan: opennet.ru

Magdagdag ng komento