Firefox začal testovať tretiu verziu manifestu Chrome

Mozilla oznámila, že začala testovať implementáciu tretej verzie manifestu Chrome vo Firefoxe, ktorá definuje možnosti a zdroje dostupné pre doplnky napísané pomocou WebExtensions API. Ak chcete otestovať tretiu verziu manifestu vo Firefoxe 101 beta, mali by ste na stránke about:config nastaviť parameter „extensions.manifestV3.enabled“ na hodnotu true a parameter „xpinstall.signatures.required“ na hodnotu false. Na inštaláciu doplnkov môžete použiť rozhranie about:debugging. Tretia verzia manifestu má byť štandardne povolená do konca roka.

Počnúc verziou 57 Firefox úplne prešiel na používanie WebExtensions API na vývoj doplnkov a prestal podporovať technológiu XUL. Prechod na WebExtensions umožnil zjednotiť vývoj doplnkov s platformami Chrome, Opera, Safari a Edge, zjednodušil portovanie doplnkov medzi rôznymi webovými prehliadačmi a umožnil naplno využiť multiprocesný režim operácia (Doplnky WebExtensions môžu byť spustené v samostatných procesoch, ktoré sú izolované od zvyšku prehliadača). Pre zjednotenie vývoja doplnkov s inými prehliadačmi poskytuje Firefox takmer plnú kompatibilitu s druhou verziou manifestu Chrome.

Chrome momentálne pracuje na prechode na verziu 2023 manifestu a podpora verzie XNUMX bude ukončená v januári XNUMX. Keďže tretia verzia manifestu sa dostala pod paľbu a prelomí mnohé doplnky na blokovanie obsahu a zabezpečenie, Mozilla sa rozhodla upustiť od praxe zabezpečovania plnej kompatibility s manifestom vo Firefoxe a implementovať niektoré zmeny inak.

Hlavná nespokojnosť s treťou verziou manifestu súvisí s prekladom rozhrania webRequest API do režimu iba na čítanie, čo umožnilo pripojiť vaše vlastné handlery, ktoré majú plný prístup k sieťovým požiadavkám a môžu za behu upravovať prevádzku. Toto API sa používa v uBlock Origin a mnohých ďalších doplnkoch na blokovanie nevhodného obsahu a zabezpečenie. Namiesto rozhrania webRequest API ponúka tretia verzia manifestu deklaratívne NetRequest API s obmedzenými schopnosťami, ktoré poskytuje prístup k vstavanému filtrovaciemu mechanizmu, ktorý nezávisle spracováva pravidlá blokovania, neumožňuje použitie vlastných filtrovacích algoritmov a neumožňuje umožňujú nastavenie zložitých pravidiel, ktoré sa navzájom prekrývajú v závislosti od podmienok.

Pri implementácii tretej verzie manifestu navrhnutého vo Firefoxe bolo pridané nové deklaratívne API na filtrovanie obsahu, ale na rozdiel od Chrome neprestali podporovať starý blokovací režim fungovania webRequest API. Medzi ďalšie funkcie novej implementácie manifestu vo Firefoxe patria:

  • Manifest definuje nahradenie stránok na pozadí voľbou Service Workers, ktorá beží ako procesy na pozadí (Background Service Workers). Aby bola zaistená kompatibilita, Firefox implementuje túto požiadavku, no navyše ponúkne nový mechanizmus Event Pages, ktorý je viac známy pre vývojárov webu, nevyžaduje kompletné prepracovanie doplnkov a odstraňuje obmedzenia spojené s používaním Service Workers. Stránky udalostí umožnia, aby existujúce pridania stránky na pozadí vyhovovali požiadavkám tretej verzie manifestu, pričom si zachovajú prístup ku všetkým funkciám potrebným na prácu s DOM. V implementácii manifestu dostupnej na testovanie vo Firefoxe sú v súčasnosti podporované iba stránky udalostí a podpora pre riešenie založené na Service Workers sa sľubuje neskôr. Apple podporil návrh a implementoval stránky udalostí v Safari Technology Preview 136.
  • Nový model žiadosti o granulárne povolenia – doplnok nebude možné aktivovať pre všetky stránky naraz (povolenie „all_urls“ bolo odstránené), ale bude fungovať iba v kontexte aktívnej karty, t.j. používateľ bude musieť potvrdiť, že doplnok funguje pre každú lokalitu. Vo Firefoxe budú všetky žiadosti o prístup k údajom stránok považované za voliteľné a konečné rozhodnutie o udelení prístupu urobí používateľ, ktorý sa bude môcť selektívne rozhodnúť, ktorému doplnku udelí prístup k svojim údajom na konkrétnej stránke.
  • Zmena v spracovaní žiadostí typu Cross-origin – v súlade s novým manifestom budú skripty spracovania obsahu podliehať rovnakým obmedzeniam povolení ako pre hlavnú stránku, do ktorej sú tieto skripty vložené (ak stránka napríklad nemá prístup k Location API, potom tento prístup nezískajú ani doplnky skriptov). Táto zmena je plne implementovaná vo Firefoxe.
  • API založené na sľube. Firefox už toto API podporuje a presunie ho do priestoru názvov „chrome.*“ pre tretiu verziu manifestu.
  • Zákaz spustenia kódu stiahnutého z externých serverov (hovoríme o situáciách, keď sa doplnok načíta a spustí externý kód). Firefox už používa externé blokovanie kódu a vývojári Mozilly pridali ďalšie techniky sledovania sťahovania kódu ponúkané v tretej verzii manifestu. Pre skripty na spracovanie obsahu je poskytnutá samostatná politika obmedzenia prístupu k obsahu (CSP, Content Security Policy).

Zdroj: opennet.ru

Pridať komentár