Planul de îmbunătățire a suportului Wayland în Firefox

Martin Stransky, mentainer of Firefox packages in Fedora and RHEL, responsible for porting Firefox to Wayland, published a report reviewing the latest achievements in Firefox's functionality in Wayland-based environments.

In upcoming Firefox releases, it is planned to address the clipboard and popup handling issues observed in Wayland builds. These features could not be implemented right away due to the differences in their implementation approach in X11 and Wayland. In the former case, difficulties arose because of the asynchronous operation of the Wayland clipboard, which required the creation of a separate layer to abstract access to the Wayland clipboard. This layer will be added in Firefox 93 and enabled by default in Firefox 94.

Regarding popup dialogs, the main difficulty was that Wayland requires strict adherence to the hierarchy of popups, meaning that a parent window may create a child window with a popup, but the next popup initiated from that window must be tied to the original child window, forming a chain. In Firefox, each window could spawn multiple popups without forming a hierarchy. The problem was that using Wayland, closing one of the popups requires rebuilding the entire chain of windows with other popups, considering that having multiple open popups is not uncommon, as menus, tooltips, add-on dialogs, permission requests, etc., are implemented as popups. The situation was further complicated by shortcomings in Wayland and GTK, which meant that even minor changes could lead to various regressions. Nevertheless, the code for handling popups for Wayland has been debugged and is planned to be included in Firefox 94.

Other improvements related to Wayland include the addition in Firefox 93 of changes related to scaling on screens with different DPI, which eliminated flickering when moving a window to the edge of the screen in multi-monitor configurations. In Firefox 95, it is planned to address issues that arise when using the drag-and-drop interface, for instance, when copying files from external sources to local file systems and when moving tabs.

În versiunea Firefox 96, portul Firefox pentru Wayland se planifică să atingă o paritate funcțională cu versiunea pentru X11, cel puțin în utilizarea mediu GNOME pe Fedora. După aceasta, atenția dezvoltatorilor se va concentra pe optimizarea funcționării procesului GPU în medii Wayland, unde este mutat codul pentru interacțiunea cu adaptoarele grafice și care protejează procesul principal al browser-ului de blocare în caz de erori ale driverelor. De asemenea, se preconizează mutarea codului pentru decodarea video prin VAAPI în procesul GPU, cod care în prezent rulează în procese de manipulare a conținutului.

De asemenea, se remarcă includerea, pentru un procent mic de utilizatori ai ramurilor stabile Firefox, a modului de izolare strictă a site-urilor, dezvoltat în cadrul proiectului Fission. Spre deosebire de repartizarea aleatorie a procesării taburilor în prezent utilizată (în mod implicit 8), modul de izolare strictă transferă procesarea fiecărui site într-un proces separat, clasificându-le nu pe baza taburilor, ci pe baza domeniilor (Public Suffix), ceea ce permite izolarea suplimentară a conținutului scripturilor externe și iframe-urilor. Activarea modului Fission se face prin variabila „fission.autostart=true” în about:config sau pe pagina about:preferences#experimental.

Modul de izolare strictă ajută la protejarea împotriva atacurilor prin canale secundare, de exemplu, asociate cu vulnerabilitățile de tip Spectre, și reduce fragmentarea memoriei, returnând mai eficient memoria sistemului de operare, minimizând impactul colectării deșeurilor și al calcului intensiv asupra paginilor din alte procese, sporind eficiența repartizării sarcinii între diferitele nuclee CPU și îmbunătățind stabilitatea (blocarea procesului care gestionează iframe-ul nu va afecta site-ul principal și alte taburi).

Printre problemele cunoscute care apar în utilizarea modului de izolare strictă, se remarcă o creștere semnificativă a consumului de memorie și a descriptorilor de fișiere atunci când sunt deschise un număr mare de taburi, precum și disfuncții ale unor extensii, dispariția conținutului iframe în timpul imprimării și în apelurile funcției de captură de ecran, scăderea eficienței cache-ului documentelor cu iframe, pierderea conținutului formularelor completate, dar neexpediate, la restaurarea sesiunii după un blocaj.

Printre alte modificări în Firefox, se remarcă finalizarea migrației la sistemul de localizare Fluent, îmbunătățirea modului de contrast ridicat (High Contrast Mode), adăugarea în about:processes a posibilității de a înregistra profile de performanță ale procesului cu un singur clic și eliminarea setării pentru a reveni la stilul vechi de design al paginii de deschidere a unei foi, utilizat anterior în Firefox 89.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster