Mozilla heeft een implementatieplan gepubliceerd voor Firefox dat de derde versie van het Chrome-manifest beschrijft, waarin de mogelijkheden en middelen van add-ons worden gedefinieerd. De derde versie van het manifest is bekritiseerd vanwege de verstoring van de werking van veel add-ons die ongewenste inhoud blokkeren en voor veiligheid zorgen.
In Firefox zijn ze van plan om bijna alle mogelijkheden en beperkingen van het nieuwe manifest te implementeren, inclusief de declaratieve API voor inhoudsfiltering (declarativeNetRequest). Maar in tegenstelling tot Chrome zal Firefox de ondersteuning voor de oude blocker-modus van de webRequest API niet stopzetten, althans totdat de nieuwe API volledig voldoet aan de behoeften van de ontwikkelaars van add-ons die gebruikmaken van de webRequest API. Deze aanpak maakt compatibiliteit met Chrome-add-ons mogelijk zonder de compatibiliteit met add-ons te verstoren die afhankelijk zijn van de webRequest API.
Ter herinnering, de grootste onvrede over het nieuwe manifest heeft te maken met de overgang van de webRequest API naar een alleen-lezen modus, die het mogelijk maakte om eigen handlers aan te sluiten met volledige toegang tot netwerkverzoeken en die in staat waren om het verkeer on-the-fly te wijzigen. Deze API wordt gebruikt in uBlock Origin en vele andere add-ons voor het blokkeren van ongewenste inhoud en voor veiligheid. In plaats van de webRequest API is er een beperkte declarativeNetRequest API aangeboden, die toegang geeft tot een ingebouwde engine voor filtering, die zelf de blokkeringregels verwerkt, zonder het gebruik van eigen filteralgoritmen en die het niet toelaat om complexe overlappende regels op basis van voorwaarden in te stellen.
In Firefox is de ondersteuning van de derde versie van het Chrome-manifest gepland voor testen eind 2021, met de implementatie van het nieuwe manifest in het begin van 2022. Enkele kenmerken van de implementatie van het nieuwe manifest in Firefox zijn:
- Het aanbieden van de declaratieve API declarativeNetRequest, maar met behoud van de mogelijkheid om de oude webRequest API te blijven gebruiken.
- De wijziging van de verwerking van Cross-origin verzoeken – volgens het nieuwe manifest op scripts voor inhoudsverwerking zullen dezelfde machtigingsbeperkingen gelden als voor de hoofdpagina waarin deze scripts zijn geïntegreerd (bijvoorbeeld, als de pagina geen toegang heeft tot de API voor locatiebepaling, zal het uitbreidingsscript deze toegang ook niet krijgen). Een deel van de wijzigingen die verband houden met de beperkingen van cross-origin verzoeken is al beschikbaar voor test in de nachtbouwingen van Firefox (ontwikkeld als onderdeel van het Fission-project, dat kan worden ingeschakeld via about:preferences#experimental) en is gepland voor algemene uitrol in het derde kwartaal van 2021.
- Achtergrondpagina's zullen worden vervangen door Service workers, die werken in de vorm van achtergrondprocessen. Deze wijziging is nog niet klaar voor testfase.
- API gebaseerd op Promise. Firefox ondersteunt al dit type API in de ruimte van ‘browser.*’ en voor de derde versie van het manifest zal het worden overgezet naar de ruimte van ‘chrome.*’.
- Nieuw granular model van machtigingsverzoeken – een uitbreiding kan niet meteen worden geactiveerd voor alle pagina's (de machtiging ‘all_urls’ is verwijderd), maar zal alleen werken in de context van het actieve tabblad, dat wil zeggen dat de gebruiker moet bevestigen dat de uitbreiding werkt voor elke website. Mozilla werkt aan het versterken van de toegangscursus, maar is van plan om gebruikers de mogelijkheid te bieden om zelf te beslissen of ze uitbreidingen met verschillende tabbladen willen laten werken.
- Verbod op het uitvoeren van code die van externe bronnen is geladen servers (het gaat om situaties waarbij een uitbreiding externe code laadt en uitvoert). In Firefox is er al een blokkering van externe code en de ontwikkelaars van Mozilla zijn bereid om aanvullende technieken voor het volgen van code-downloads toe te voegen die worden voorgesteld in de derde versie van het manifest. Voor scripts voor inhoudsverwerking zal er een afzonderlijk beleid voor toegang tot inhoudbeperkingen (CSP, Content Security Policy) worden gepresenteerd, en de bestaande API's userScripts en contentScripts zullen worden herontworpen om uitbreidingen op basis van Service worker te ondersteunen.
Bron: opennet.ru
