Společnost Mozilla zveřejnila plán realizace třetí verze manifestu Chrome ve Firefoxu, který určuje možnosti a zdroje pro poskytované doplňky. Třetí verze manifestu byla kritizována kvůli problémům s mnoha doplňky pro blokování nežádoucího obsahu a zajištění bezpečnosti.
Ve Firefoxu mají v úmyslu implementovat téměř všechny možnosti a omezení nového manifestu, včetně deklarativního API pro filtrování obsahu (declarativeNetRequest), ale na rozdíl od Chromu nebude ve Firefoxu ukončena podpora starého blokujícího režimu API webRequest, alespoň do doby, než nový API plně uspokojí potřeby vývojářů doplňků využívajících API webRequest. Tento přístup zajistí kompatibilitu s doplňky Chrome, aniž by došlo k narušení kompatibility s doplňky závislými na API webRequest.
Připomeňme, že hlavním důvodem nespokojenosti s novým manifestem je převedení API webRequest do režimu pouze pro čtení, které umožňovalo připojování vlastních zpracovatelů s plným přístupem k síťovým požadavkům a schopných na létě modifikovat provoz. Uvedené API je aplikováno v uBlock Origin a mnoha dalších doplňcích pro blokování nežádoucího obsahu a zajištění bezpečnosti. Místo API webRequest byl navržen omezený API declarativeNetRequest, který poskytuje přístup k vestavěnému motoru pro filtrování, který sám zpracovává pravidla blokování, nedovoluje používat vlastní filtrační algoritmy a neumožňuje zadávat složitá pravidla, která se vzájemně překrývají v závislosti na podmínkách.
Ve Firefoxu je plánováno poskytnout podporu třetí verzi manifestu Chrome k testování na konci roku 2021, zatímco zavedení nového manifestu je naplánováno na začátek roku 2022. Mezi zvláštnosti implementace nového manifestu ve Firefoxu patří:
- Poskytnutí API declarativeNetRequest, ale s zachováním možnosti používat starý API webRequest.
- Změna zpracování požadavků na Cross-origin — podle nového manifestu pro skripty pro zpracování obsahu se budou vztahovat stejná omezení pravomocí jako na hlavní stránku, do které jsou tyto skripty vloženy (například, pokud stránka nemá přístup k API pro určení polohy, ani skript doplňku tento přístup nezíská). Část změn souvisejících s omezeními cross-origin požadavků je již dostupná k testování v nočních sestaveních Firefoxu (vyvíjí se jako součást projektu Fission, který lze aktivovat v about:preferences#experimental) a plánuje se k širokému uplatnění ve třetím čtvrtletí 2021.
- Pozadí stránek budou nahrazena Service workers, pracujícími v podobě pozadí procesů. Změna zatím není připravena k testování.
- API založené na Promise. Firefox již tento typ API podporuje ve jmenném prostoru „browser.*“ a pro třetí verzi manifestu jej přesune do jmenného prostoru „chrome.*“.
- Nový granulární model žádosti o oprávnění — doplněk již nebude moci být aktivován pro všechny stránky (oprávnění „all_urls“ bylo odstraněno), ale bude fungovat pouze v kontextu aktivní karty, tj. uživatel bude muset potvrdit provoz doplňku pro každou webovou stránku. Společnost Mozilla pracuje na posílení kontroly přístupu, ale hodlá uživatelům poskytnout možnost rozhodovat, zda dovolit doplňkům fungovat na různých kartách.
- Zákaz provádění kódu načteného z externích servery (jedná se o situace, kdy doplněk načítá a vykonává externí kód). V Firefoxu se již blokuje externí kód a vývojáři Mozilly jsou připraveni přidat další techniky sledování načítání kódu, které jsou navrženy ve třetí verzi manifestu. Pro skripty zpracování obsahu bude představena samostatná politika omezení přístupu k obsahu (CSP, Content Security Policy), a stávající API userScripts a contentScripts budou přepracovány pro podporu rozšíření založených na Service worker.
Zdroj: opennet.ru
