Firefox začal testovat třetí verzi manifestu Chrome

Mozilla oznámila, že začala testovat implementaci třetí verze manifestu Chrome ve Firefoxu, která definuje možnosti a zdroje dostupné pro doplňky napsané pomocí WebExtensions API. Chcete-li otestovat třetí verzi manifestu ve Firefoxu 101 beta, měli byste na stránce about:config nastavit parametr „extensions.manifestV3.enabled“ na hodnotu true a parametr „xpinstall.signatures.required“ na hodnotu false. K instalaci doplňků můžete použít rozhraní about:debugging. Třetí verze manifestu má být standardně povolena do konce roku.

Počínaje verzí 57 Firefox zcela přešel na používání WebExtensions API pro vývoj doplňků a přestal podporovat technologii XUL. Přechod na WebExtensions umožnil sjednotit vývoj doplňků s platformami Chrome, Opera, Safari a Edge, zjednodušil portování doplňků mezi různými webovými prohlížeči a umožnil plně využít multiprocesní režim operace (doplňky WebExtensions lze spouštět v samostatných procesech, izolovaných od zbytku prohlížeče). Pro sjednocení vývoje doplňků s ostatními prohlížeči poskytuje Firefox téměř plnou kompatibilitu s druhou verzí manifestu Chrome.

Chrome aktuálně pracuje na přechodu na verzi 2023 manifestu a podpora verze XNUMX bude ukončena v lednu XNUMX. Protože se třetí verze manifestu dostala pod palbu a prolomí mnoho doplňků pro blokování obsahu a zabezpečení, rozhodla se Mozilla opustit praxi zajišťování plné kompatibility s manifestem ve Firefoxu a implementovat některé změny jinak.

Hlavní nespokojenost s třetí verzí manifestu souvisí s překladem rozhraní webRequest API do režimu pouze pro čtení, což umožnilo připojit vaše vlastní handlery, které mají plný přístup k síťovým požadavkům a mohou za běhu upravovat provoz. Toto API se používá v uBlock Origin a mnoha dalších doplňcích k blokování nevhodného obsahu a zajištění bezpečnosti. Namísto rozhraní webRequest API nabízí třetí verze manifestu deklarativní NetRequest API s omezenými schopnostmi, které poskytuje přístup k vestavěnému filtrovacímu enginu, který nezávisle zpracovává pravidla blokování, neumožňuje použití vlastních filtrovacích algoritmů a neumožňuje umožňují nastavení složitých pravidel, která se vzájemně překrývají v závislosti na podmínkách.

V implementaci třetí verze manifestu navrženého ve Firefoxu bylo přidáno nové deklarativní API pro filtrování obsahu, ale na rozdíl od Chrome nepřestalo podporovat starý blokovací režim provozu webRequest API. Mezi další funkce nové implementace manifestu ve Firefoxu patří:

  • Manifest definuje nahrazení stránek na pozadí možností Service Workers, která běží jako procesy na pozadí (Background Service Workers). Aby byla zajištěna kompatibilita, Firefox implementuje tento požadavek, ale navíc nabídne nový mechanismus Event Pages, který je více známý webovým vývojářům, nevyžaduje kompletní přepracování doplňků a odstraňuje omezení spojená s používáním Service Workers. Stránky událostí umožní stávajícím přidáním stránek na pozadí vyhovět požadavkům třetí verze manifestu a zároveň zachovat přístup ke všem funkcím potřebným pro práci s DOM. V implementaci manifestu, která je k dispozici pro testování ve Firefoxu, jsou aktuálně podporovány pouze stránky událostí a podpora pro řešení založené na Service Workers bude přislíbena později. Apple podpořil návrh a implementoval stránky událostí v Safari Technology Preview 136.
  • Nový model žádosti o granulární oprávnění - doplněk nebude možné aktivovat pro všechny stránky najednou (oprávnění „all_urls“ bylo odebráno), ale bude fungovat pouze v kontextu aktivní karty, tzn. uživatel bude muset potvrdit, že doplněk funguje pro každý web. Ve Firefoxu budou všechny požadavky na přístup k datům webu považovány za volitelné a konečné rozhodnutí o udělení přístupu bude na uživateli, který se bude moci selektivně rozhodnout, kterému doplňku udělí přístup ke svým datům na konkrétním webu.
  • Změna ve zpracování požadavků Cross-origin – v souladu s novým manifestem budou skripty pro zpracování obsahu podléhat stejným omezením oprávnění jako pro hlavní stránku, do které jsou tyto skripty vloženy (například pokud stránka nemá přístup k Location API, pak tento přístup neobdrží ani doplňky skriptu). Tato změna je plně implementována ve Firefoxu.
  • API založené na slibech. Firefox již toto rozhraní API podporuje a přesune jej do jmenného prostoru „chrome.*“ pro třetí verzi manifestu.
  • Zákaz spuštění kódu staženého z externích serverů (hovoříme o situacích, kdy se doplněk načte a spustí externí kód). Firefox již používá externí blokování kódu a vývojáři Mozilly přidali další techniky sledování stahování kódu nabízené ve třetí verzi manifestu. Pro skripty pro zpracování obsahu je k dispozici samostatná zásada omezení přístupu k obsahu (CSP, Content Security Policy).

Zdroj: opennet.ru

Přidat komentář