Firefox je začel testirati tretjo različico Chromovega manifesta

Mozilla je objavila, da je začela testirati Firefoxovo implementacijo tretje različice manifesta za Chrome, ki opredeljuje zmožnosti in vire, ki so na voljo za dodatke, napisane z API-jem WebExtensions. Če želite preizkusiti tretjo različico manifesta v različici Firefox 101 beta, morate parameter »extensions.manifestV3.enabled« nastaviti na true in parameter »xpinstall.signatures.required« na false na strani about:config. Za namestitev dodatkov lahko uporabite vmesnik about:debugging. Tretja različica manifesta naj bi bila privzeto omogočena do konca leta.

Od različice 57 je Firefox popolnoma prešel na uporabo API-ja WebExtensions za razvoj dodatkov in prenehal podpirati tehnologijo XUL. Prehod na WebExtensions je omogočil poenotenje razvoja dodatkov s platformami Chrome, Opera, Safari in Edge, poenostavil prenos dodatkov med različnimi spletnimi brskalniki in omogočil polno uporabo večprocesnega načina delovanje (dodatki WebExtensions se lahko izvajajo v ločenih procesih, izoliranih od preostalega brskalnika). Za poenotenje razvoja dodatkov z drugimi brskalniki Firefox zagotavlja skoraj popolno združljivost z drugo različico Chromovega manifesta.

Chrome si trenutno prizadeva za prehod na različico 2023 manifesta, podpora za različico XNUMX pa bo januarja XNUMX ukinjena. Ker je tretja različica manifesta izpostavljena kritikam in bo prekinila številne dodatke za blokiranje vsebine in varnostne dodatke, se je Mozilla odločila, da se bo oddaljila od prakse zagotavljanja popolne združljivosti z manifestom v Firefoxu in nekatere spremembe implementirala drugače.

Glavno nezadovoljstvo s tretjo različico manifesta je povezano s prevodom webRequest API-ja v način samo za branje, ki je omogočil povezovanje lastnih upravljavcev, ki imajo popoln dostop do omrežnih zahtev in lahko sproti spreminjajo promet. Ta API se uporablja v uBlock Origin in številnih drugih dodatkih za blokiranje neprimerne vsebine in zagotavljanje varnosti. Namesto webRequest API tretja različica manifesta ponuja deklarativni NetRequest API z omejeno zmogljivostjo, ki omogoča dostop do vgrajenega mehanizma za filtriranje, ki neodvisno obdeluje pravila blokiranja, ne dovoljuje uporabe lastnih algoritmov za filtriranje in ne omogočajo nastavitev kompleksnih pravil, ki se med seboj prekrivajo glede na pogoje.

Pri implementaciji tretje različice manifesta, predlaganega v Firefoxu, so dodali nov deklarativni API za filtriranje vsebine, vendar za razliko od Chroma niso prenehali podpirati starega blokirnega načina delovanja webRequest API. Druge funkcije nove implementacije manifesta v Firefoxu vključujejo:

  • Manifest definira zamenjavo strani v ozadju z možnostjo Service Workers, ki se izvajajo kot procesi v ozadju (Background Service Workers). Da bi zagotovil združljivost, bo Firefox implementiral to zahtevo, vendar bo dodatno ponudil nov mehanizem Event Pages, ki je bolj znan spletnim razvijalcem, ne zahteva popolne predelave dodatkov in odpravlja omejitve, povezane z uporabo Service Workerjev. Strani dogodkov bodo obstoječim dodatkom strani v ozadju omogočile skladnost z zahtevami tretje različice manifesta, hkrati pa bodo ohranile dostop do vseh zmogljivosti, potrebnih za delo z DOM. V implementaciji manifesta, ki je na voljo za testiranje v Firefoxu, so trenutno podprte samo strani dogodkov, podpora za rešitev, ki temelji na servisnih delavcih, pa bo obljubljeno dodana pozneje. Apple je podprl predlog in implementiral strani dogodkov v Safari Technology Preview 136.
  • Nov granularni model zahteve za dovoljenje - dodatka ne bo mogoče aktivirati za vse strani hkrati (dovoljenje “all_urls” je odstranjeno), ampak bo deloval samo v kontekstu aktivnega zavihka, tj. uporabnik bo moral potrditi, da dodatek deluje za vsako spletno mesto. V Firefoxu bodo vse zahteve za dostop do podatkov spletnega mesta obravnavane kot neobvezne, končno odločitev o odobritvi dostopa pa bo sprejel uporabnik, ki se bo lahko selektivno odločil, kateremu dodatku bo omogočil dostop do svojih podatkov na posameznem spletnem mestu.
  • Sprememba pri obravnavanju zahtev navzkrižnega izvora – v skladu z novim manifestom bodo za skripte za obdelavo vsebine veljale enake omejitve dovoljenj kot za glavno stran, v katero so ti skripti vdelani (na primer, če stran nima dostopa do API za lokacijo, potem tudi dodatki skriptov ne bodo prejeli tega dostopa). Ta sprememba je v celoti implementirana v Firefoxu.
  • API, ki temelji na obljubah. Firefox že podpira ta API in ga bo premaknil v imenski prostor »chrome.*« za tretjo različico manifesta.
  • Prepoved izvajanja kode, naložene z zunanjih strežnikov (govorimo o situacijah, ko dodatek naloži in izvaja zunanjo kodo). Firefox že uporablja zunanje blokiranje kode, Mozilla razvijalci pa so dodali dodatne tehnike sledenja prenosu kode, ki so na voljo v tretji različici manifesta. Za skripte za obdelavo vsebine je na voljo ločen pravilnik o omejitvi dostopa do vsebine (CSP, Content Security Policy).

Vir: opennet.ru

Dodaj komentar