Foaie de parcurs pentru îmbunătățirea suportului Wayland în Firefox

Martin Stransky, un întreținător de pachete Firefox pentru Fedora și RHEL, care este portarea Firefox către Wayland, a publicat un raport care trece în revistă cele mai recente evoluții în Firefox care rulează în medii bazate pe protocol Wayland.

În viitoarele versiuni ale Firefox, este planificat să rezolve problemele observate în versiunile pentru Wayland cu clipboard și gestionarea ferestrelor pop-up. Aceste caracteristici nu au putut fi implementate imediat din cauza diferențelor în abordarea implementării lor în X11 și Wayland. În primul caz, au apărut dificultăți din cauza clipboard-ului Wayland care rulează asincron, ceea ce a necesitat crearea unui strat separat pentru a abstra accesul la clipboard-ul Wayland. Stratul specificat va fi adăugat la Firefox 93 și activat implicit în Firefox 94.

În ceea ce privește dialogurile pop-up, principala dificultate a fost că Wayland necesită o ierarhie strictă a ferestrelor pop-up, adică. o fereastră părinte poate crea o fereastră copil cu un pop-up, dar următorul pop-up inițiat din acea fereastră trebuie să se lege de fereastra copil originală, formând un lanț. În Firefox, fiecare fereastră poate genera mai multe ferestre pop-up care nu formau o ierarhie. Problema a fost că atunci când utilizați Wayland, închiderea unuia dintre ferestre pop-up necesită reconstruirea întregului lanț de ferestre cu alte ferestre pop-up, în ciuda faptului că prezența mai multor ferestre pop-up deschise nu este neobișnuită, deoarece meniurile și ferestrele pop-up sunt implementate sub formă de pop-ups sfaturi, casete de dialog pentru suplimente, solicitări de permisiune etc. Situația a fost complicată și de defecte în Wayland și GTK, din cauza cărora mici modificări ar putea duce la diverse regresii. Cu toate acestea, codul pentru gestionarea ferestrelor pop-up pentru Wayland a fost depanat și este planificat să fie inclus în Firefox 94.

Alte îmbunătățiri legate de Wayland includ adăugarea a 93 de modificări de scalare la Firefox pe diferite ecrane DPI, care elimină pâlpâirea atunci când mutați o fereastră la marginea ecranului în configurații cu mai multe monitoare. Firefox 95 intenționează să rezolve problemele care apar atunci când se utilizează interfața drag&drop, de exemplu, la copierea fișierelor din surse externe în fișiere locale și la mutarea filelor.

Odată cu lansarea Firefox 96, portul Firefox pentru Wayland este planificat să fie adus la paritatea generală în funcționalitate cu versiunea X11, cel puțin atunci când rulează în mediul GNOME Fedora. După aceasta, atenția dezvoltatorilor se va îndrepta către perfecționarea procesului GPU în mediile Wayland, care conține cod pentru interacțiunea cu adaptoarele grafice și care protejează procesul principal al browserului împotriva blocării în cazul defecțiunilor driverului. Procesul GPU este, de asemenea, planificat să includă cod pentru decodarea video folosind VAAPI, care este rulat în prezent în procesele de procesare a conținutului.

În plus, putem observa includerea unui mod strict de izolare a site-ului, dezvoltat ca parte a proiectului Fission, pentru un mic procent de utilizatori ai ramurilor stabile ale Firefox. Spre deosebire de distribuția arbitrară utilizată în prezent a prelucrării filelor în întregul pool disponibil de procese (8 în mod implicit), modul de linie de izolare plasează procesarea fiecărui site în propriul proces separat, separat nu prin file, ci prin domeniu (Sufixul public). ), care permite conținut suplimentar de izolare a scripturilor externe și a blocurilor iframe. Activarea modului Fission este controlată prin variabila „fission.autostart=true” din about:config sau pe pagina about:preferences#experimental.

Modul de izolare strictă ajută la protejarea împotriva atacurilor pe canale laterale, cum ar fi cele asociate cu vulnerabilități Spectre și, de asemenea, reduce fragmentarea memoriei, returnează mai eficient memoria sistemului de operare, minimizează impactul colectării deșeurilor și al calculelor intensive asupra paginilor din alte procese și crește eficiența distribuției încărcăturii pe diferite nuclee ale procesorului și crește stabilitatea (crashul procesului de procesare a iframe-ului nu va afecta site-ul principal și alte file).

Printre problemele cunoscute care apar la utilizarea modului de izolare strictă, există o creștere vizibilă a consumului de memorie și descriptor de fișiere la deschiderea unui număr mare de file, precum și întreruperea activității unor suplimente, dispariția conținutului iframe atunci când imprimarea și apelarea funcției de înregistrare a capturii de ecran, eficiența redusă a stocării în cache a documentelor din iframe, pierderea conținutului formularelor completate, dar nedepuse, atunci când o sesiune este restabilită după o blocare.

Alte modificări în Firefox includ finalizarea migrării la sistemul de localizare Fluent, îmbunătățiri ale modului de contrast ridicat, adăugarea capacității de a înregistra profiluri de performanță a procesului cu un singur clic la about:proceses și eliminarea unei setări pentru a returna vechiul stilul paginii noi cu file care a fost folosit înainte de Firefox 89.

Sursa: opennet.ru

Adauga un comentariu