Plány na podporu Firefoxu pro verze 2 a 3 manifestu Chrome

Vývojáři Mozilly aktualizovali své plány pro Firefox, aby podporoval verze 2 a 3 manifestu Chrome. Google plánuje v červnu ukončit podporu doplňků, které používají verzi 2 manifestu ve verzích Chrome 127 Dev, Canary a Beta. Podpora verze 2 manifestu bude ve stabilní větvi ukončena nejdříve v červenci.

Mozilla ze své strany v dohledné budoucnosti nepřeruší podporu verze 2 manifestu a zachová si možnost spouštět doplňky, které využívají funkce nedostupné ve verzi 3 manifestu. Rozhodnutí nezajistit plnou kompatibilitu s verzí 3 manifestu Chrome ve Firefoxu zůstává v platnosti. Firefox si zachová plné rozhraní webRequest API, které bude v Chromu přesunuto do režimu pouze pro čtení.

Firefox si také zachová podporu pro skriptování na pozadí založené na DOM pomocí mechanismu Event Pages, který třetí verze manifestu nařizuje pomocí Service Workers. Skriptování na pozadí založené na Service Workers zatím není ve Firefoxu podporováno, ale vývojáři budou moci ve svých doplňcích definovat jak obslužné rutiny založené na Event Pages, tak skripty založené na Service Workers, což jim umožní vytvářet doplňky, které jsou v souladu s třetí verzí manifestu a fungují v Chrome a Firefoxu.

Manifest Chrome definuje možnosti a zdroje dostupné pro rozšíření napsaná pomocí rozhraní WebExtensions API. 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.

V rámci iniciativy na zjednodušení vytváření bezpečných a vysoce výkonných doplňků a zároveň na ztížení vytváření nezabezpečených a pomalých doplňků vyvinula společnost Google třetí verzi manifestu. Hlavní výtka vůči třetí verzi manifestu pramení z přechodu rozhraní webRequest API do režimu pouze pro čtení, který umožňoval vlastním obslužným rutinám plný přístup k síťovým požadavkům a možnost upravovat provoz za chodu. Místo webRequest API přidává třetí verze manifestu omezené deklarativní rozhraní NetRequest API, které poskytuje přístup k vestavěnému filtrovacímu enginu, jenž zpracovává blokovací pravidla nezávisle a neumožňuje použití vlastních filtrovacích algoritmů.

Mezi funkce implementace třetí verze manifestu ve Firefoxu patří:

  • Bylo přidáno nové deklarativní rozhraní API pro filtrování obsahu, ale na rozdíl od Chrome nebyla podpora starého režimu blokování rozhraní webRequest API ukončena.
  • Byl implementován mechanismus stránek událostí (Event Pages), díky kterému jsou weboví vývojáři lépe obeznámeni s ním, eliminuje se nutnost kompletně přepracovávat doplňky a odstraňují se omezení spojená se Service Workery. Stránky událostí umožní stávajícím doplňkům s pozadím splňovat třetí verzi manifestu a zároveň zachovat přístup ke všem funkcím potřebným pro práci s DOM.
  • 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.

    Pro správu oprávnění bylo do rozhraní přidáno tlačítko „Sjednocená rozšíření“, které umožňuje přímo ovládat, ke kterým webům má každé rozšíření přístup. Uživatel může rozšíření udělit a odebrat přístup k libovolnému webu. Správa oprávnění se vztahuje pouze na rozšíření založená na manifestu verze 3; podrobné řízení přístupu k webům není k dispozici pro rozšíření založená na manifestu verze 2.

     Plány na podporu Firefoxu pro verze 2 a 3 manifestu Chrome
  • 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 promisech. Firefox toto API podporuje pro třetí verzi manifestu.
  • Zabránit spuštění kódu staženého z externích zdrojů servery (To se týká situací, kdy doplněk načítá a spouští externí kód.) Firefox používá blokování externího kódu a vývojáři Mozilly přidali další techniky pro sledování stahování kódu. Pro skripty pro zpracování obsahu je k dispozici samostatná zásada zabezpečení obsahu (CSP).

Zdroj: opennet.ru

Přidat komentář