Firefox je počeo testirati treću verziju Chrome manifesta

Mozilla je objavila da je počela testirati Firefoxovu implementaciju treće verzije Chrome manifesta, koji definira mogućnosti i resurse dostupne za dodatke napisane korištenjem WebExtensions API-ja. Za testiranje treće verzije manifesta u Firefoxu 101 beta, trebate postaviti parametar "extensions.manifestV3.enabled" na true i parametar "xpinstall.signatures.required" na false na stranici about:config. Za instaliranje dodataka možete koristiti sučelje about:debugging. Treća verzija manifesta trebala bi biti omogućena prema zadanim postavkama do kraja godine.

Počevši od verzije 57, Firefox se potpuno prebacio na korištenje WebExtensions API-ja za razvoj dodataka i prestao podržavati XUL tehnologiju. Prijelaz na WebExtensions omogućio je objedinjavanje razvoja dodataka s platformama Chrome, Opera, Safari i Edge, pojednostavio prijenos dodataka između različitih web preglednika i omogućio potpunu upotrebu višeprocesnog načina rada rad (dodaci WebExtensions mogu se izvoditi u zasebnim procesima, izoliranim od ostatka preglednika). Kako bi unificirao razvoj dodataka s drugim preglednicima, Firefox pruža gotovo potpunu kompatibilnost s drugom verzijom Chrome manifesta.

Chrome trenutačno radi na prelasku na verziju 2023 manifesta, a podrška za verziju XNUMX bit će prekinuta u siječnju XNUMX. Budući da se treća verzija manifesta našla na udaru kritika i da će razbiti mnoge dodatke za blokiranje sadržaja i sigurnost, Mozilla je odlučila odstupiti od prakse osiguravanja potpune kompatibilnosti s manifestom u Firefoxu i implementirati neke promjene drugačije.

Glavno nezadovoljstvo trećom verzijom manifesta odnosi se na prevođenje webRequest API-ja u mod samo za čitanje, što je omogućilo povezivanje vlastitih rukovatelja koji imaju puni pristup mrežnim zahtjevima i mogu modificirati promet u hodu. Ovaj API koristi se u uBlock Origin i mnogim drugim dodacima za blokiranje neprikladnog sadržaja i pružanje sigurnosti. Umjesto webRequest API-ja, treća verzija manifesta nudi deklarativniNetRequest API ograničenih mogućnosti, koji omogućuje pristup ugrađenom mehanizmu za filtriranje koji neovisno obrađuje pravila blokiranja, ne dopušta upotrebu vlastitih algoritama za filtriranje i ne omogućuju postavljanje složenih pravila koja se međusobno preklapaju ovisno o uvjetima.

U implementaciji treće verzije manifesta predloženog u Firefoxu dodan je novi deklarativni API za filtriranje sadržaja, no za razliku od Chromea, nisu prestali podržavati stari blokirajući način rada webRequest API-ja. Ostale značajke nove implementacije manifesta u Firefoxu uključuju:

  • Manifest definira zamjenu pozadinskih stranica s opcijom Service Workers, koja se izvodi kao pozadinski procesi (Background Service Workers). Kako bi osigurao kompatibilnost, Firefox će implementirati ovaj zahtjev, ali će dodatno ponuditi novi mehanizam stranica događaja, koji je poznatiji web programerima, ne zahtijeva potpunu preradu dodataka i eliminira ograničenja povezana s upotrebom servisnih radnika. Stranice događaja omogućit će postojećim dodacima pozadinskih stranica da budu u skladu sa zahtjevima treće verzije manifesta, uz zadržavanje pristupa svim mogućnostima potrebnim za rad s DOM-om. U implementaciji manifesta dostupnoj za testiranje u Firefoxu, trenutno su podržane samo stranice događaja, a obećano je da će podrška za rješenje temeljeno na servisnim radnicima biti dodana kasnije. Apple je podržao prijedlog i implementirao stranice događaja u Safari Technology Preview 136.
  • Novi granularni model zahtjeva za dopuštenje - dodatak se neće moći aktivirati za sve stranice odjednom (dopuštenje “all_urls” je uklonjeno), već će raditi samo u kontekstu aktivne kartice, tj. korisnik će morati potvrditi da dodatak radi za svako mjesto. U Firefoxu će se svi zahtjevi za pristup podacima stranica smatrati opcijskim, a konačnu odluku o odobravanju pristupa donijet će korisnik koji će moći selektivno odlučiti kojem će dodatku odobriti pristup svojim podacima na pojedinoj stranici.
  • Promjena u rukovanju zahtjevima iz drugog izvora - u skladu s novim manifestom, skripte za obradu sadržaja podliježu istim ograničenjima dopuštenja kao i za glavnu stranicu u koju su te skripte ugrađene (na primjer, ako stranica nema pristup location API, tada dodaci skripti također neće dobiti ovaj pristup). Ova je promjena u potpunosti implementirana u Firefoxu.
  • API temeljen na obećanjima. Firefox već podržava ovaj API i premjestit će ga u prostor imena "chrome.*" za treću verziju manifesta.
  • Zabrana izvršavanja koda preuzetog s vanjskih poslužitelja (govorimo o situacijama kada dodatak učitava i izvršava vanjski kod). Firefox već koristi vanjsko blokiranje koda, a Mozilla programeri dodali su dodatne tehnike praćenja preuzimanja koda ponuđene u trećoj verziji manifesta. Za skripte za obradu sadržaja dostupna je posebna politika ograničenja pristupa sadržaju (CSP, Content Security Policy).

Izvor: opennet.ru

Dodajte komentar