Routekaart voor het verbeteren van Wayland-ondersteuning in Firefox

Martin Stransky, een Firefox-pakketbeheerder voor Fedora en RHEL die Firefox naar Wayland porteert, publiceerde een rapport waarin de nieuwste ontwikkelingen in Firefox in op het Wayland-protocol gebaseerde omgevingen werden besproken.

In de komende releases van Firefox is het de bedoeling om de problemen op te lossen die zijn waargenomen in builds voor Wayland met het klembord en het omgaan met pop-ups. Deze functies konden niet onmiddellijk worden geïmplementeerd vanwege verschillen in de aanpak van de implementatie ervan in X11 en Wayland. In het eerste geval ontstonden er problemen doordat het Wayland-klembord asynchroon draaide, waardoor een aparte laag moest worden gemaakt om de toegang tot het Wayland-klembord te abstraheren. De opgegeven laag wordt toegevoegd aan Firefox 93 en standaard ingeschakeld in Firefox 94.

Met betrekking tot pop-updialogen was de grootste moeilijkheid dat Wayland een strikte hiërarchie van pop-upvensters vereist, d.w.z. een bovenliggend venster kan een onderliggend venster met een pop-up maken, maar de volgende pop-up die vanuit dat venster wordt gestart, moet zich binden aan het oorspronkelijke onderliggende venster en een keten vormen. In Firefox kon elk venster verschillende pop-ups voortbrengen die geen hiërarchie vormden. Het probleem was dat bij het gebruik van Wayland het sluiten van een van de pop-ups vereist dat de hele reeks vensters opnieuw moet worden opgebouwd met andere pop-ups, ondanks het feit dat de aanwezigheid van verschillende open pop-ups niet ongewoon is, aangezien menu's en pop-ups zijn geïmplementeerd in de vorm van pop-ups tooltips, add-on-dialogen, toestemmingsverzoeken, enz. De situatie werd ook gecompliceerd door gebreken in Wayland en GTK, waardoor kleine veranderingen tot verschillende regressies konden leiden. Er zijn echter fouten in de code voor het omgaan met pop-ups voor Wayland opgelost en deze zal naar verwachting in Firefox 94 worden opgenomen.

Andere Wayland-gerelateerde verbeteringen zijn onder meer de toevoeging van 93 schaalwijzigingen aan Firefox op verschillende DPI-schermen, waardoor flikkeringen worden geëlimineerd wanneer een venster naar de rand van het scherm wordt verplaatst in configuraties met meerdere monitoren. Firefox 95 is van plan problemen aan te pakken die optreden bij het gebruik van de drag & drop-interface, bijvoorbeeld bij het kopiëren van bestanden van externe bronnen naar lokale bestanden en bij het verplaatsen van tabbladen.

Met de release van Firefox 96 is het de bedoeling dat de Firefox-poort voor Wayland op algemene pariteit in functionaliteit wordt gebracht met de X11-build, tenminste wanneer deze draait in de GNOME-omgeving van Fedora. Hierna zal de aandacht van de ontwikkelaars worden verlegd naar het aanscherpen van het werk in Wayland-omgevingen van het GPU-proces, dat code bevat voor interactie met grafische adapters en dat het hoofdbrowserproces beschermt tegen crashen in het geval van stuurprogrammafouten. Het is de bedoeling dat het GPU-proces ook code bevat voor videodecodering met behulp van VAAPI, dat momenteel wordt uitgevoerd in inhoudverwerkingsprocessen.

Bovendien kunnen we de toevoeging van een strikte site-isolatiemodus opmerken, ontwikkeld als onderdeel van het Fission-project, voor een klein percentage van de gebruikers van de stabiele takken van Firefox. In tegenstelling tot de willekeurige verdeling van tabbladverwerking over de beschikbare procespool (standaard 8), die tot nu toe werd gebruikt, plaatst de isolatielijnmodus de verwerking van elke site in zijn eigen afzonderlijke proces, niet gescheiden door tabbladen, maar door domein (openbaar Suffix), wat extra isolatie-inhoud van externe scripts en iframe-blokken mogelijk maakt. Het inschakelen van de Fission-modus wordt geregeld via de variabele “fission.autostart=true” in about:config of op de about:preferences#experimental pagina.

De strikte isolatiemodus helpt beschermen tegen side-channel-aanvallen, zoals die geassocieerd met Spectre-kwetsbaarheden, en vermindert ook geheugenfragmentatie, retourneert geheugen efficiënter naar het besturingssysteem, minimaliseert de impact van garbage collection en intensieve berekeningen op pagina's in andere processen, en verhoogt de efficiëntie van de belastingverdeling over verschillende CPU-kernen en verhoogt de stabiliteit (de crash van het proces dat het iframe verwerkt, heeft geen invloed op de hoofdsite en andere tabbladen).

Onder de bekende problemen die optreden bij het gebruik van de strikte isolatiemodus, is er een merkbare toename in het geheugen- en bestandsdescriptorverbruik bij het openen van een groot aantal tabbladen, evenals verstoring van het werk van sommige add-ons, het verdwijnen van iframe-inhoud bij het openen van een groot aantal tabbladen. afdrukken en oproepen van de screenshot-opnamefunctie, verminderde efficiëntie van het cachen van documenten uit iframe, verlies van inhoud van ingevulde maar niet ingediende formulieren wanneer een sessie wordt hersteld na een crash.

Andere veranderingen in Firefox zijn onder meer de voltooiing van de migratie naar het Fluent-lokalisatiesysteem, verbeteringen aan de High Contrast-modus, de toevoeging van de mogelijkheid om procesprestatieprofielen met één klik vast te leggen naar about:processes, en het verwijderen van een instelling om de oude stijl van de nieuwe tabbladpagina die vóór Firefox 89 werd gebruikt.

Bron: opennet.ru

Voeg een reactie