Kompania Mozilla shpalli fillimin e testimit të implementimit të versionit të tretë të manifestit të Chrome në Firefox, i cili përcakton mundësitë dhe burimet e disponueshme për shtesa të shkruara duke përdorur API WebExtensions. Për të testuar versionin e tretë të manifestit në versionin beta të Firefox 101, duhet të vendosni parametrin «extensions.manifestV3.enabled» në vlerën true, dhe parametrin «xpinstall.signatures.required» në vlerën false në faqen about:config. Nëpërmjet ndërfaqes about:debugging mund të instaloni shtesa. Aktivizimi i versionit të tretë të manifestit si parazgjedhje është planifikuar për në fund të vitit.
Që nga versioni 57, Firefox kaloi plotësisht në përdorimin e API WebExtensions për zhvillimin e shtesave dhe ndërpreu mbështetje për teknologjinë XUL. Kalimi në WebExtensions lehtësoi standardizimin e zhvillimit të shtesave me platformat Chrome, Opera, Safari dhe Edge, bëri më të lehtë portimin e shtesave midis shfletuesve të ndryshëm dhe dha mundësinë për të përdorur plotësisht modin shumëprocesor të funksionimit (shtesat WebExtensions mund të ekzekutohen në procese të veçanta, të izoluar nga pjesët e tjera të shfletuesit). Për standardizimin e zhvillimit të shtesave me shfletuesit e tjerë, Firefox siguron pothuajse përputhshmëri të plotë me versionin e dytë të manifestit të Chrome.
Aktualisht, në Chrome po kryhen punime për kalimin në versionin e tretë të manifestit, ndërsa mbështetja për versionin e dytë do të ndalet në janar 2023. Duke qenë se versioni i tretë i manifestit ka marrë kritika dhe do të çojë në probleme për shumë shtesa për bllokimin e përmbajtjes së padëshiruar dhe sigurimin e sigurisë, kompania Mozilla vendosi të distancohet nga praktika e ofrimit të përputhshmërisë së plotë me manifestin në Firefox dhe të realizojë disa ndryshime ndryshe.
Critika kryesore mbi versionin e tretë të manifestit është lidhur me kalimin në një mod për vetëm lexim të API webRequest, i cili lejonte lidhjen e trajtuesve të personalizuar, të cilët kishin akses të plotë në kërkesat rrjet dhe ishin në gjendje të modifikonin trafikun në kohë reale. Ky API përdoret në uBlock Origin dhe shumë shtesa të tjera për bllokimin e përmbajtjeve të padëshiruara dhe sigurimin e sigurisë. Në vend të API webRequest, në versionin e tretë të manifestit është propozuar një API i kufizuar në funksionalitetin e tij, i quajtur declarativeNetRequest, që ofron qasje në një motor të integruar për filtrimin, i cili trajton vetë rregullat e bllokimit, pa lejuar përdorimin e algoritmeve të filtrimit të personalizuar dhe pa lejuar përcaktimin e rregullave të komplikuara që mbivendosen me njëra-tjetrën në varësi të kushteve.
Në implementimin e propozuar të versionit të tretë të manifestit në Firefox, është shtuar një API i ri deklarativ për filtrimin e përmbajtjes, por ndryshe nga Chrome, nuk është ndërprerë mbështetje për modin e vjetër të bllokimit të API webRequest. Disa nga karakteristikat e tjera të implementimit të ri të manifestit në Firefox janë:
- Në manifest është përcaktuar zëvendësimi i faqeve të prapme me një variant të Shërbimeve të Punës (Service Workers), të cilat punojnë si procese në sfond (Background Service Workers). Për të siguruar përputhshmërinë, Firefox do të implementojë këtë kërkesë, por për më tepër është propozuar një mekanizëm i ri i quajtur Event Pages, i cili është më i njohur për zhvilluesit web, nuk kërkon një ripunim të plotë të shtesave dhe eliminon kufizimet e lidhura me përdorimin e Shërbimeve të Punës. Event Pages do të lejojë që shtesat ekzistuese me faqe në sfond të përputhen me kërkesat e versionit të tretë të manifestit, duke ruajtur aksesin në të gjitha funksionalitetet e nevojshme për punën me DOM. Në implementimin e disponueshëm për testim në Firefox të manifestit, aktualisht mbështeten vetëm Event Pages, dhe mbështetje për zgjidhjen e bazuar në Shërbimet e Punës pritet të shtohet më vonë. Ky propozim është mbështetur nga kompania Apple dhe ka implementuar Event Pages në lëshimin Safari Technology Preview 136.
- Modeli i ri i kërkesës për autorizim me granuar — shtesa nuk do të aktivizohet menjëherë për të gjitha faqet (uli autorizimin «all_urls»), por do të punojë vetëm në kontekstin e skedës aktive, domethënë, përdoruesi do të duhet të konfirmojë funksionimin e shtesës për çdo faqe. Në Firefox, të gjitha kërkesat për qasje në të dhënat e faqes do të shqyrtohen si të panevojshme, dhe vendimi përfundimtar mbi dhënien e aksesit do të merret nga përdoruesi, i cili do të mund të vendosë në mënyrë selektive se cilës shtesë t'i jepet akses në të dhënat e tij në këtë ose atë faqe.
- Ndryshimi i trajtimit të kërkesave Cross-origin — sipas manifestit të ri, për skriptet e trajtimit të përmbajtjes do të aplikohen të njëjtat kufizime autorizimi si për faqen kryesore, në të cilën integrohen këto skripte (për shembull, nëse faqja nuk ka akses në API-në për përcaktimin e vendit, atëherë skripti i shtesës nuk do ta ketë këtë akses gjithashtu). Ky ndryshim është realizuar plotësisht në Firefox.
- API me bazë Promises. Firefox tashmë e mbështet këtë API dhe për versionin e tretë të manifestit do ta transferojë atë në hapësirën emërore «chrome.*».
- Ndalesa e ekzekutimit të kodit të ngarkuar nga burime të jashtme serverësh (në lidhje me situatat kur shtesa ngarkon dhe ekzekuton kod të jashtëm). Në Firefox tashmë aplikohet bllokimi i kodit të jashtëm dhe zhvilluesit e Mozilla kanë shtuar teknika të tjera për ndjekjen e ngarkimeve të kodit, të propozuara në versionin e tretë të manifestit. Për skriptet e trajtimit të përmbajtjes është paraqitur një politikë e veçantë për kufizimin e aksesit në përmbajtje (CSP, Politika e Sigurisë së Përmbajtjes).
Burimi: opennet.ru
