Putokaz za poboljšanje Wayland podrške u Firefoxu

Martin Stransky, održavač Firefox paketa za Fedoru i RHEL koji prenosi Firefox na Wayland, objavio je izvještaj u kojem se razmatraju najnoviji razvoji u Firefoxu koji radi u okruženjima baziranim na Wayland protokolu.

U narednim izdanjima Firefox-a, planirano je rješavanje problema uočenih u verzijama za Wayland sa međuspremnikom i rukovanjem iskačućim prozorima. Ove karakteristike nisu mogle biti odmah implementirane zbog razlika u pristupu njihovoj implementaciji u X11 i Waylandu. U prvom slučaju, poteškoće su nastale zbog asinhronog rada Wayland međuspremnika, što je zahtijevalo stvaranje posebnog sloja za apstraktni pristup Wayland međuspremniku. Navedeni sloj će biti dodan u Firefox 93 i omogućen prema zadanim postavkama u Firefoxu 94.

Što se tiče iskačućih dijaloga, glavna poteškoća je bila u tome što Wayland zahtijeva strogu hijerarhiju iskačućih prozora, tj. roditeljski prozor može kreirati podređeni prozor sa iskačućim prozorom, ali sljedeći iskačući prozor iniciran iz tog prozora mora se vezati za originalni podređeni prozor, formirajući lanac. U Firefoxu, svaki prozor bi mogao pokrenuti nekoliko iskačućih prozora koji nisu formirali hijerarhiju. Problem je bio u tome što kada se koristi Wayland, zatvaranje jednog od iskačućih prozora zahtijeva ponovnu izgradnju cijelog lanca prozora sa drugim iskačućim prozorima, uprkos činjenici da prisustvo nekoliko otvorenih iskačućih prozora nije neuobičajeno, jer su meniji i iskačući prozori implementirani u obliku iskačući opisi alata, dijalozi dodataka, zahtjevi za dozvolama, itd. Situaciju su zakomplikovali i nedostaci u Waylandu i GTK-u, zbog kojih su male promjene mogle dovesti do raznih regresija. Međutim, kod za rukovanje iskačućim prozorima za Wayland je otklonjen i planira se da bude uključen u Firefox 94.

Ostala poboljšanja vezana za Wayland uključuju dodavanje 93 promjene skaliranja Firefoxu na različitim DPI ekranima, koje eliminišu treperenje pri pomicanju prozora na ivicu ekrana u konfiguracijama sa više monitora. Firefox 95 planira rješavanje problema koji nastaju prilikom korištenja drag&drop interfejsa, na primjer, prilikom kopiranja datoteka iz vanjskih izvora u lokalne datoteke i prilikom pomicanja kartica.

Sa izdavanjem Firefoxa 96, Firefox port za Wayland je planiran da bude doveden do ukupnog pariteta funkcionalnosti sa X11 build-om, barem kada se radi u GNOME okruženju Fedora. Nakon toga, pažnja programera će se prebaciti na usavršavanje rada u Wayland okruženjima GPU procesa, koji sadrži kod za interakciju sa grafičkim adapterima i koji štiti glavni proces pretraživača od pada u slučaju kvara drajvera. GPU proces je također planiran da uključi kod za video dekodiranje pomoću VAAPI, koji se trenutno izvodi u procesima obrade sadržaja.

Osim toga, možemo primijetiti uključivanje strogog načina izolacije stranice, razvijenog kao dio projekta Fission, za mali postotak korisnika stabilnih grana Firefoxa. Za razliku od proizvoljne distribucije obrade kartica u dostupnom skupu procesa (8 prema zadanim postavkama), koji se do sada koristio, način izolacijske linije postavlja obradu svake stranice u svoj poseban proces, odvojen ne karticama, već domenom (javno Sufiks), koji omogućava dodatnu izolaciju sadržaja vanjskih skripti i iframe blokova. Omogućavanje režima Fission kontroliše se preko “fission.autostart=true” varijable u about:config ili na stranici about:preferences#experimental.

Režim stroge izolacije pomaže u zaštiti od napada sa strane kanala, kao što su oni povezani sa ranjivostima Spectre, a takođe smanjuje fragmentaciju memorije, efikasnije vraća memoriju u operativni sistem, minimizira uticaj sakupljanja smeća i intenzivnih kalkulacija na stranicama u drugim procesima i povećava efikasnost distribucije opterećenja kroz različite CPU jezgre i povećava stabilnost (krah procesa koji obrađuje iframe neće uticati na glavni sajt i druge kartice).

Među poznatim problemima koji nastaju pri korišćenju režima stroge izolacije, primetno je povećanje potrošnje memorije i deskriptora fajlova pri otvaranju velikog broja kartica, kao i poremećaj rada nekih dodataka, nestanak iframe sadržaja kada se štampanje i pozivanje funkcije snimanja screenshot-a, smanjena efikasnost keširanja dokumenata iz iframe-a, gubitak sadržaja popunjenih, ali nedostavljenih obrazaca kada se sesija vrati nakon pada.

Ostale promjene u Firefoxu uključuju završetak migracije na Fluent sistem lokalizacije, poboljšanja u načinu rada visokog kontrasta, dodavanje mogućnosti snimanja profila performansi procesa jednim klikom na about:processes i uklanjanje postavke za vraćanje starog stil stranice nove kartice koji se koristio prije Firefoxa 89.

izvor: opennet.ru

Dodajte komentar