Spoločnosť Mozilla zverejnila plán implementácie tretej verzie manifestu Chrome vo Firefoxe, ktorý definuje možnosti a zdroje poskytované doplnkom. Tretia verzia manifestu čelila kritike kvôli narušeniu funkčnosti mnohých doplnkov na blokovanie nežiadúceho obsahu a zabezpečenie.
Vo Firefoxe majú v úmysle implementovať takmer všetky možnosti a obmedzenia nového manifestu, vrátane deklaratívneho API na filtráciu obsahu (declarativeNetRequest), ale na rozdiel od Chrome vo Firefoxe nebude ukončená podpora starého blokujúceho režimu API webRequest, aspoň kým nový API úplne neuspokojí potreby vývojárov doplnkov, ktorí používajú API webRequest. Tento prístup zabezpečí kompatibilitu s doplnkami Chrome bez porušenia kompatibility s doplnkami založenými na API webRequest.
Pripomíname, že hlavné nespokojnosti s novým manifestom sú spojené s prechodom API webRequest do režimu iba na čítanie, čo umožnilo pripojiť vlastné spracovateľské moduly s plným prístupom k sieťovým požiadavkám a schopnosťou modifikovať prevádzku za behu. Spomínané API sa využíva v uBlock Origin a mnohých ďalších doplnkoch na blokovanie nežiadúceho obsahu a zabezpečenie. Namiesto API webRequest je navrhnuté obmedzené API declarativeNetRequest, ktoré poskytuje prístup k zabudovanému enginu na filtráciu, samostatne spracovávajúcemu pravidlá blokovania, ktoré neumožňuje používať vlastné filtračné algoritmy a neumožňuje stanoviť zložené pravidlá, ktoré sa navzájom prekrývajú v závislosti od podmienok.
Vo Firefoxe sa plánuje poskytnúť podporu tretej verzie manifestu Chrome na testovanie koncom roka 2021, pričom implementácia nového manifestu je naplánovaná na začiatok roka 2022. Zaujímavé vlastnosti implementácie nového manifestu vo Firefoxe sú:
- Poskytovanie API declarativeNetRequest, ale so zachovaním možnosti používať starý API webRequest.
- Zmeny v spracovaní požiadaviek s Cross-origin - v súlade s novým manifestom pre skripty spracovania obsahu sa budú uplatňovať tie isté obmedzenia oprávnení, aké sú použité pre hlavnú stránku, do ktorej sú tieto skripty integrované (napríklad, ak stránka nemá prístup k API určenia polohy, skript doplnku tiež nezíska tento prístup). Časť súvisiacich zmien s obmedzeniami Cross-origin požiadaviek je už k dispozícii na testovanie v nočných zostavách Firefoxu (rozvíja sa ako súčasť projektu Fission, ktorý možno aktivovať v about:preferences#experimental) a jeho celoplošné zavedenie je naplánované na tretí kvartál roku 2021.
- Pozadové stránky budú nahradené Service workers, ktoré budú fungovať v podobe pozadových procesov. Zmena zatiaľ nie je pripravená na začatie testovania.
- API založené na Promise. Firefox už podporuje tento typ API v priestore menovaní „browser.*“ a pre tretiu verziu manifestu ho presunie do priestoru menovaní „chrome.*“.
- Nový granularizovaný model požiadaviek na oprávnenia - doplnok už nebude môcť byť aktivovaný pre všetky stránky naraz (oprávnenie „all_urls“ bolo odstránené), ale bude fungovať len v kontexte aktívnej karty, t.j. používateľ bude musieť potvrdiť aktiváciu doplnku pre každú stránku. Spoločnosť Mozilla pracuje na posilnení kontroly prístupu, ale plánuje poskytnúť používateľom možnosť rozhodovať, či dovolia doplnkom pracovať s rôznymi kartami.
- Zákaz vykonávania kódu načítaného z vonkajších serverov (ide o situácie, keď doplnok načítava a vykonáva externý kód). V Firefoxe už platí blokovanie externého kódu a vývojári Mozilly sú pripravení pridať ďalšie techniky sledovania načítania kódu, ktoré sú navrhnuté v tretej verzii manifestu. Pre skripty spracovania obsahu bude predstavená samostatná politika obmedzenia prístupu k obsahu (CSP, Content Security Policy), a existujúce API userScripts a contentScripts budú prepracované na podporu rozšírení založených na Service worker.
Zdroj: opennet.ru
