Ceļvedis Wayland atbalsta uzlabošanai pārlūkprogrammā Firefox

Martins Stranskis, Firefox pakotņu uzturētājs Fedora un RHEL, kurš pārnēsā Firefox uz Wayland, publicēja ziņojumu, kurā aplūkoti jaunākie sasniegumi Firefox, kas darbojas Wayland protokolu vidēs.

Nākamajos Firefox laidienos ir plānots atrisināt problēmas, kas novērotas Wayland būvējumos ar starpliktuvi un uznirstošo logu apstrādi. Šīs funkcijas nevarēja nekavējoties ieviest, jo atšķiras pieeja to ieviešanai X11 un Wayland. Pirmajā gadījumā grūtības radās tāpēc, ka Wayland starpliktuve darbojās asinhroni, tādēļ bija nepieciešams izveidot atsevišķu slāni, lai abstrakti piekļūtu Wayland starpliktuvei. Norādītais slānis tiks pievienots pārlūkprogrammai Firefox 93 un pēc noklusējuma iespējots pārlūkprogrammā Firefox 94.

Attiecībā uz uznirstošajiem dialoglodziņiem galvenās grūtības radīja tas, ka Wayland pieprasa stingru uznirstošo logu hierarhiju, t.i. vecāklogs var izveidot pakārtotu logu ar uznirstošo logu, bet nākamajam no šī loga uzsāktajam uznirstošajam logam ir jāsaistas ar sākotnējo pakārtoto logu, veidojot ķēdi. Programmā Firefox katrs logs var radīt vairākus uznirstošos logus, kas neveido hierarhiju. Problēma bija tāda, ka, izmantojot Wayland, aizverot vienu no uznirstošajiem logiem, ir jāpārbūvē visa logu ķēde ar citiem uznirstošajiem logiem, neskatoties uz to, ka vairāku atvērtu uznirstošo logu klātbūtne nav nekas neparasts, jo izvēlnes un uznirstošie logi tiek ieviesti kā uznirstošo logu rīka padomi, pievienojumprogrammu dialoglodziņi, atļauju pieprasījumi utt. Situāciju sarežģīja arī Veilendas un GTK nepilnības, kuru dēļ nelielas izmaiņas varēja izraisīt dažādas regresijas. Tomēr Wayland uznirstošo logu apstrādes kods ir atkļūdots, un to plānots iekļaut pārlūkprogrammā Firefox 94.

Citi ar Wayland saistīti uzlabojumi ietver 93 mērogošanas izmaiņu pievienošanu Firefox dažādos DPI ekrānos, kas novērš mirgošanu, pārvietojot logu uz ekrāna malu vairāku monitoru konfigurācijās. Firefox 95 plāno risināt problēmas, kas rodas, izmantojot vilkšanas un nomešanas saskarni, piemēram, kopējot failus no ārējiem avotiem uz lokālajiem failiem un pārvietojot cilnes.

Līdz ar Firefox 96 izlaišanu ir plānots, ka Wayland Firefox porta funkcionalitāte būs vienāda ar X11 būvējumu, vismaz tad, ja tas darbojas Fedora GNOME vidē. Pēc tam izstrādātāju uzmanība tiks pievērsta GPU procesa Wayland vidēs darba uzlabošanai, kurā ir kods mijiedarbībai ar grafikas adapteriem un kas aizsargā galveno pārlūkprogrammas procesu no avārijām draivera kļūmju gadījumā. GPU procesā plānots iekļaut arī kodu video dekodēšanai, izmantojot VAAPI, kas pašlaik tiek darbināts satura apstrādes procesos.

Turklāt mēs varam atzīmēt, ka nelielai daļai Firefox stabilo atzaru lietotāju ir iekļauts stingrs vietņu izolācijas režīms, kas tika izstrādāts Fission projekta ietvaros. Pretstatā patvaļīgajam ciļņu apstrādes sadalījumam pa pieejamo procesu pūlu (pēc noklusējuma — 8), kas līdz šim izmantots, izolācijas līnijas režīms katras vietnes apstrādi ievieto atsevišķā procesā, kas tiek atdalīts nevis ar cilnēm, bet gan pēc domēna (publisks Sufikss), kas ļauj papildus izolēt ārējo skriptu un iframe bloku saturu. Fission režīma iespējošana tiek kontrolēta, izmantojot mainīgo “fission.autostart=true” failā about:config vai about:preferences#experimental lapā.

Stingrais izolācijas režīms palīdz aizsargāt pret sānu kanālu uzbrukumiem, piemēram, tiem, kas saistīti ar Spectre ievainojamību, kā arī samazina atmiņas sadrumstalotību, efektīvāk atgriež atmiņu operētājsistēmā, samazina atkritumu savākšanas un intensīvo aprēķinu ietekmi uz lapām citos procesos un palielina slodzes sadalījuma efektivitāti starp dažādiem CPU kodoliem un palielina stabilitāti (iframe apstrādes procesa avārija neietekmēs galveno vietni un citas cilnes).

Starp zināmajām problēmām, kas rodas, izmantojot stingrās izolācijas režīmu, ir ievērojams atmiņas un failu deskriptora patēriņa pieaugums, atverot lielu skaitu ciļņu, kā arī dažu papildinājumu darbības traucējumi, iframe satura pazušana, kad ekrānuzņēmumu ierakstīšanas funkcijas drukāšana un izsaukšana, samazināta iframe dokumentu kešatmiņas saglabāšanas efektivitāte, Aizpildītu, bet neiesniegtu veidlapu satura zudums, kad sesija tiek atjaunota pēc avārijas.

Citas Firefox izmaiņas ietver migrācijas pabeigšanu uz Fluent lokalizācijas sistēmu, augsta kontrasta režīma uzlabojumus, iespēju ar vienu klikšķi ierakstīt procesa veiktspējas profilu pievienošanu about:processes un iestatījuma noņemšanu, lai atgrieztu veco. Jaunās cilnes lapas stils, kas tika izmantots pirms Firefox 89.

Avots: opennet.ru

Pievieno komentāru