Vývojáři ze společnosti Mozilla aktualizovali informace o plánech týkajících se podpory ve Firefoxu pro druhou a třetí verzi manifestu Chrome. Společnost Google v červnu tohoto roku má v úmyslu ukončit podporu doplňků využívajících druhou verzi manifestu v testovacích verzích Chrome 127 (Dev, Canary a Beta). V stabilní větvi podpora druhé verze manifestu bude ukončena nejdříve v červenci.
Na druhou stranu společnost Mozilla v dohledné době neukončí podporu druhé verze manifestu a zachová možnost spouštění doplňků, které využívají funkce, jež nejsou k dispozici ve třetí verzi manifestu. Opatření, které zajišťuje, že Firefox neposkytne plnou kompatibilitu s třetí verzí manifestu Chrome, zůstává v platnosti. V Firefoxu zůstane plnohodnotné API webRequest, které bude v Chrome převedeno do režimu pouze pro čtení.
V Firefoxu bude také prostřednictvím mechanismu Event Pages zachována podpora vykonávání pozadí skriptů založených na DOM, místo kterých se ve třetí verzi manifestu předepsalo používat Service Workers. Pozadí skripty na bázi Service Workers v Firefoxu zatím nejsou podporovány, ale vývojáři budou mít možnost definovat v doplňku jak zpracovatele na bázi Event Pages, tak skripty na bázi Service Workers, což umožní vytvářet doplňky, které odpovídají třetí verzi manifestu a fungují v Chrome i Firefoxu.
Manifest Chrome definuje možnosti a zdroje dostupné pro doplňky napsané pomocí API WebExtensions. Od verze 57 Firefox zcela přešel na používání API WebExtensions pro vývoj doplňků a ukončil podporu technologie XUL. Přechod na WebExtensions umožnil unifikovat vývoj doplňků s platformami Chrome, Opera, Safari a Edge, zjednodušil portaci doplňků mezi různými webovými prohlížeči a umožnil plné využívání víceprocesního režimu (doplňky WebExtensions mohou být vykonávány v samostatných procesech, izolovaných od ostatních částí prohlížeče). Pro unifikaci vývoje doplňků s ostatními prohlížeči v Firefoxu je zajištěna téměř plná kompatibilita se druhou verzí manifestu Chrome.
V rámci iniciativy zaměřené na zjednodušení vytváření bezpečných a vysoce výkonných doplňků a ztížení možnosti vytváření nebezpečných a pomalých doplňků společnost Google vyvinula třetí verzi manifestu. Hlavním bodem nevole vůči třetí verzi manifestu bylo převedení API webRequest do režimu pouze pro čtení, které umožňovalo připojit vlastní zpracovatele, mající plný přístup k síťovým požadavkům a schopní měnit provoz za běhu. Místo API webRequest byla ve třetí verzi manifestu přidána omezená API declarativeNetRequest, které poskytuje přístup k vestavěnému enginu pro filtrování, který samostatně zpracovává pravidla blokování a neumožňuje používat vlastní algoritmy filtrování.
Mezi charakteristiky implementace třetí verze manifestu ve Firefoxu patří:
- Bylo přidáno nové deklarativní API pro filtrování obsahu, ale na rozdíl od Chromu nebyla ukončena podpora starého blokovacího režimu API webRequest.
- Byl implementován mechanismus Event Pages, který je pro webové vývojáře obvyklý, nevyžaduje kompletní přepracování doplňků a odstraňuje omezení spojená s používáním Service Workers. Event Pages umožní přizpůsobit existující doplňky s pozadím stránkám požadavkům třetí verze manifestu, přičemž si zachovají přístup ke všem funkcím potřebným pro práci s DOM.
- Nový granulární model žádosti o oprávnění — doplněk nebude moci být aktivován okamžitě pro všechny stránky (odstraněno oprávnění „all_urls“), ale bude fungovat pouze v kontextu aktivní karty, tj. uživatel bude muset potvrdit činnost doplňku pro každou webovou stránku. Ve Firefoxu budou všechny žádosti o přístup k datům webu považovány za nepovinné a konečné rozhodnutí o poskytnutí přístupu učiní uživatel, který si může vybrat, kterému doplňku udělit přístup k jeho datům na daném webu.
Pro ovládání oprávnění byla do rozhraní přidána tlačítko „Unified Extensions“ pro přímé řízení, k jakým webům má každé rozšíření přístup – uživatel může poskytnout a odvolat přístup rozšíření k libovolnému webu. Ovládání oprávnění se uplatňuje pouze na rozšířeních založených na třetí verzi manifestu, u rozšíření na druhé verzi manifestu se granularizované řízení přístupu k webům neuplatňuje.

- Změna zpracování Cross-origin požadavků – v souladu s novým manifestem se na skripty zpracování obsahu vztahují stejné omezení oprávnění jako na hlavní stránku, do které jsou tyto skripty vloženy (například pokud stránka nemá přístup k API pro určování polohy, pak ani skript rozšíření tento přístup nezíská). Toto změna byla plně implementována v prohlížeči Firefox.
- API založené na Promise. Prohlížeč Firefox toto API podporuje i pro třetí verzi manifestu.
- Zákaz provádění kódu načteného z externích servery (jedná se o situace, kdy rozšíření načítá a provádí externí kód). V prohlížeči Firefox je blokování externího kódu a vývojáři Mozilly přidali další techniky sledování načítání kódu. Pro skripty zpracování obsahu byla představena samostatná politika omezení přístupu k obsahu (CSP, Content Security Policy).
Zdroj: opennet.ru

