Razvijatelji iz tvrtke Mozilla su ažurirali informacije o planovima vezanim uz podršku za drugu i treću verziju Chrome manifesta u Firefoxu. Tvrtka Google planira u lipnju ove godine prekinuti podršku za proširenja koja koriste drugu verziju manifesta u testnim izdanjima Chrome 127 (Dev, Canary i Beta). U stabilnoj verziji, podrška za drugu verziju manifesta neće biti prekinuta prije srpnja.
S druge strane, tvrtka Mozilla u bliskoj budućnosti neće prekinuti podršku za drugu verziju manifesta i zadržat će mogućnost pokretanja proširenja koja koriste mogućnosti koje nisu dostupne u trećoj verziji manifesta. Odlučeno je da Firefox neće pružiti potpunu kompatibilnost s trećom verzijom Chrome manifesta. U Firefoxu će biti ostavljen potpuni API webRequest, koji će u Chromeu biti prebačen u način rada samo za čitanje.
U Firefoxu će se također uz pomoć mehanizma Event Pages zadržati podrška za izvršavanje pozadinskih skripti temeljnih na DOM-u, dok se u trećoj verziji manifesta nalaže korištenje Service Workers. Pozadinske skripte temeljene na Service Workers za sada nisu podržane u Firefoxu, no programerima će biti omogućeno definiranje u proširenju kako obraditelja temeljenih na Event Pages, tako i skripti temeljenih na Service Workers, što će omogućiti stvaranje proširenja koja su u skladu s trećom verzijom manifesta i rade u Chromeu i Firefoxu.
Chrome manifest definira mogućnosti i resurse dostupne za proširenja napisana korištenjem API WebExtensions. Počevši od verzije 57, Firefox je potpuno prešao na korištenje API WebExtensions za razvoj proširenja i prekinuo podršku za tehnologiju XUL. Prijelaz na WebExtensions omogućio je unifikaciju razvoja proširenja s platformama Chrome, Opera, Safari i Edge, pojednostavio prijenos proširenja između različitih web preglednika i omogućio potpuno korištenje višekprocesnog načina rada (proširenja WebExtensions mogu se izvršavati u odvojenim procesima, izolirano od drugih dijelova preglednika). Kako bi se unificirao razvoj proširenja s ostalim preglednicima, u Firefoxu se osigurava gotovo potpuna kompatibilnost s drugom verzijom Chrome manifesta.
U okviru inicijative za pojednostavljenje stvaranja sigurnih i visokoučinkovitih dodataka, te otežavanje stvaranja nesigurnih i sporih dodataka, Google je razvio treću verziju manifesta. Glavno nezadovoljstvo trećom verzijom manifesta izazvano je prelaskom API webRequest u način rada samo za čitanje, što je omogućilo povezivanje vlastitih obrada te pružilo pun pristup mrežnim zahtjevima i mogućnost mijenjanja prometa u stvarnom vremenu. Umjesto API webRequest u trećoj verziji manifesta dodan je ograničeni API declarativeNetRequest, koji pruža pristup ugrađenom mehanizmu za filtriranje, samostalno obrađujući pravila blokiranja, bez dozvole za korištenje vlastitih algoritama filtriranja.
Među značajkama implementacije treće verzije manifesta u Firefoxu:
- Dodana je nova deklarativna API za filtriranje sadržaja, ali za razliku od Chromea, nije prekinuta podrška starom blokirajućem režimu rada API webRequest.
- Implementiran je mehanizam Event Pages, koji je bliži web-razvijačima, ne zahtijeva potpuni remake dodataka i uklanja ograničenja povezana s primjenom Service Workers. Event Pages omogućit će prilagođavanje postojećih dodataka s pozadinskim stranicama zahtjevima treće verzije manifesta, pritom zadržavajući pristup svim mogućnostima potrebnim za rad s DOM-om.
- Nova granulirana modela zahtjeva za ovlastima — dodatak se neće moći aktivirati odmah za sve stranice (uklonjena je ovlast „all_urls”), već će raditi samo u kontekstu aktivne kartice, tj. korisniku će biti potrebno potvrditi rad dodatka za svaku stranicu. U Firefoxu će svi zahtjevi za pristup podacima stranice biti tretirani kao neobavezni, a konačnu odluku o davanju pristupa donijet će korisnik, koji će moći selektivno odlučiti kojem dodatku omogućiti pristup svojim podacima na toj ili onoj stranici.
Za upravljanje ovlastima u sučelje dodana je tipka „Unified Extensions“ za izravno upravljanje pristupom svake ekstenzije na web-stranicama — korisnik može dodijeliti ili oduzeti pristup ekstenziji bilo kojoj web-stranici. Upravljanje ovlastima primjenjuje se samo na ekstenzije temeljene na trećoj verziji manifestacije, dok za ekstenzije na drugoj verziji manifestacije nije moguće granularno upravljanje pristupom web-stranicama.

- Promjene u obradi Cross-origin zahtjeva — prema novom manifestu, na skripte za obradu sadržaja primjenjivat će se ista ograničenja ovlasti kao i za glavni dokument u koji su te skripte ugrađene (na primjer, ako stranica nema pristup API-u za određivanje lokacije, tada ni skripta ekstenzije neće imati taj pristup). Ova promjena je u potpunosti implementirana u Firefoxu.
- API temeljen na Promise. Firefox podržava ovaj API za treću verziju manifestacije.
- Zabrana izvršavanja koda učitanog s vanjskih poslužitelja (govorimo o situacijama kada ekstenzija učitava i izvršava vanjski kod). U Firefoxu se blokira vanjski kod, a developeri Mozille dodali su dodatne tehnike za praćenje preuzimanja koda. Za skripte za obradu sadržaja uvedena je posebna politika ograničenja pristupa sadržaju (CSP, Content Security Policy).
Izvor: opennet.ru

