Firefox je započeo testiranje treće verzije Chrome manifesta

Mozilla je objavila da je započela testiranje Firefoxove implementacije treće verzije Chrome manifesta, koja definira mogućnosti i resurse dostupne dodacima napisanim pomoću WebExtensions API-ja. Da biste testirali treću verziju manifesta u Firefoxu 101 beta, trebali biste parametar "extensions.manifestV3.enabled" postaviti na true, a parametar "xpinstall.signatures.required" na false na stranici about:config. Da biste instalirali dodatke, možete koristiti sučelje about:debugging. Planirano je da treća verzija manifesta bude standardno omogućena do kraja godine.

Počevši od verzije 57, Firefox je u potpunosti prešao na korištenje WebExtensions API-ja za razvoj dodataka i prestao je podržavati XUL tehnologiju. Prelazak 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 potpuno korištenje višeprocesnog načina rada. rad (Dodaci WebExtensions mogu se izvršavati u zasebnim procesima, izolovani od ostatka pretraživača). Kako bi ujedinio razvoj dodataka s drugim pretraživačima, Firefox pruža gotovo potpunu kompatibilnost s drugom verzijom Chrome manifesta.

Chrome trenutno radi na prelasku na verziju 2023 manifesta, a podrška za verziju XNUMX će biti ukinuta u januaru XNUMX. Budući da se treća verzija manifesta našla na udaru kritike i da će prekinuti mnoge dodatke za blokiranje sadržaja i sigurnost, Mozilla je odlučila da se odmakne od prakse osiguravanja pune kompatibilnosti s manifestom u Firefoxu i implementira neke promjene na drugačiji način.

Glavno nezadovoljstvo trećom verzijom manifesta odnosi se na prevođenje webRequest API-ja u režim samo za čitanje, koji je omogućio povezivanje vlastitih rukovatelja koji imaju pun pristup mrežnim zahtjevima i mogu mijenjati promet u hodu. Ovaj API se koristi u uBlock Origin-u 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čene mogućnosti, koji omogućava pristup ugrađenom mehanizmu za filtriranje koji samostalno obrađuje pravila blokiranja, ne dozvoljava korištenje vlastitih algoritama za filtriranje i ne dozvoljava omogućavaju postavljanje složenih pravila koja se međusobno preklapaju u zavisnosti od uslova.

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

  • Manifest definira zamjenu pozadinskih stranica 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 Event Pages, koji je poznatiji web programerima, ne zahtijeva potpunu preradu dodataka i eliminiše ograničenja povezana s korištenjem Service Workers. Stranice događaja će omogućiti da postojeće pozadinske stranice dodaju u skladu sa zahtjevima treće verzije manifesta, uz zadržavanje pristupa svim mogućnostima potrebnim za rad sa DOM-om. U implementaciji manifesta dostupnoj za testiranje u Firefoxu, trenutno su podržane samo stranice događaja, a podrška za rješenje bazirano na Service Workers obećava se naknadno. Apple je podržao prijedlog i implementirao stranice događaja u Safari Technology Preview 136.
  • Novi model granularnog zahtjeva za dozvolu - dodatak se neće moći aktivirati za sve stranice odjednom (uklonjena je dozvola “all_urls”), već će raditi samo u kontekstu aktivne kartice, tj. korisnik će morati potvrditi da dodatak radi za svaku stranicu. U Firefoxu će se svi zahtjevi za pristup podacima stranice smatrati opcijskim, a konačnu odluku o odobravanju pristupa će donijeti korisnik, koji će moći selektivno odlučiti koji dodatak će odobriti pristup svojim podacima na određenoj stranici.
  • Promjena u rukovanju zahtjevima s više porijekla - u skladu s novim manifestom, skripte za obradu sadržaja bit će podvrgnute istim ograničenjima dozvola kao za glavnu stranicu u koju su ove skripte ugrađene (na primjer, ako stranica nema pristup API lokacije, tada dodaci skripte također neće dobiti ovaj pristup). Ova promjena je u potpunosti implementirana u Firefoxu.
  • API zasnovan na obećanju. Firefox već podržava ovaj API i premjestit će ga u imenski prostor “chrome.*” za treću verziju manifesta.
  • Zabrana izvršavanja koda preuzetog sa eksternih servera (govorimo o situacijama kada se dodatak učitava i izvršava eksterni kod). Firefox već koristi eksterno blokiranje koda, a Mozilla programeri su dodali dodatne tehnike praćenja preuzimanja koda koje se nude u trećoj verziji manifesta. Za skripte za obradu sadržaja, obezbeđena je posebna politika ograničenja pristupa sadržaju (CSP, Content Security Policy).

izvor: opennet.ru

Dodajte komentar