Firefox har begynt å teste den tredje versjonen av Chrome-manifestet

Mozilla har kunngjort at de har begynt å teste Firefoxs implementering av den tredje versjonen av Chrome-manifestet, som definerer mulighetene og ressursene som er tilgjengelige for tillegg skrevet ved hjelp av WebExtensions API. For å teste den tredje versjonen av manifestet i Firefox 101 beta, bør du sette «extensions.manifestV3.enabled»-parameteren til true og «xpinstall.signatures.required»-parameteren til false på about:config-siden. For å installere tillegg kan du bruke about:debugging-grensesnittet. Den tredje versjonen av manifestet er planlagt å være aktivert som standard innen slutten av året.

Fra og med versjon 57 gikk Firefox fullstendig over til å bruke WebExtensions API for å utvikle tillegg og sluttet å støtte XUL-teknologi. Overgangen til WebExtensions gjorde det mulig å forene utviklingen av tillegg med Chrome-, Opera-, Safari- og Edge-plattformene, forenklet portering av tillegg mellom ulike nettlesere og gjorde det mulig å fullt ut bruke multiprosessmodusen til operasjon (WebExtensions-tillegg kan kjøres i separate prosesser, isolert fra resten av nettleseren). For å forene utviklingen av tillegg med andre nettlesere, gir Firefox nesten full kompatibilitet med den andre versjonen av Chrome-manifestet.

Chrome jobber for tiden med å flytte til versjon 2023 av manifestet, og støtte for versjon XNUMX vil bli avviklet i januar XNUMX. Fordi den tredje versjonen av manifestet har kommet under ild og vil bryte mange innholdsblokkeringer og sikkerhetstillegg, har Mozilla besluttet å gå bort fra praksisen med å sikre full kompatibilitet med manifestet i Firefox og implementere noen endringer annerledes.

Den største misnøyen med den tredje versjonen av manifestet er relatert til oversettelsen til skrivebeskyttet modus av webRequest API, som gjorde det mulig å koble til dine egne behandlere som har full tilgang til nettverksforespørsler og kan endre trafikken i farten. Denne API-en brukes i uBlock Origin og mange andre tillegg for å blokkere upassende innhold og gi sikkerhet. I stedet for webRequest API tilbyr den tredje versjonen av manifestet en deklarativ NetRequest API med begrenset kapasitet, som gir tilgang til en innebygd filtreringsmotor som uavhengig behandler blokkeringsregler, ikke tillater bruk av egne filtreringsalgoritmer og ikke tillate å sette komplekse regler som overlapper hverandre avhengig av forholdene.

I implementeringen av den tredje versjonen av manifestet som ble foreslått i Firefox, ble en ny deklarativ API for innholdsfiltrering lagt til, men i motsetning til Chrome sluttet de ikke å støtte den gamle blokkeringsmodusen til webRequest API. Andre funksjoner i den nye manifestimplementeringen i Firefox inkluderer:

  • Manifestet definerer utskifting av bakgrunnssider med alternativet Service Workers, som kjører som bakgrunnsprosesser (Background Service Workers). For å sikre kompatibilitet vil Firefox implementere dette kravet, men vil i tillegg tilby en ny Event Pages-mekanisme, som er mer kjent for webutviklere, som ikke krever en fullstendig omarbeiding av tillegg og eliminerer begrensningene knyttet til bruken av Service Workers. Event Pages vil tillate eksisterende bakgrunnssidetilføyelser å samsvare med kravene til den tredje versjonen av manifestet, samtidig som de opprettholder tilgang til alle funksjonene som trengs for å jobbe med DOM. I manifestimplementeringen som er tilgjengelig for testing i Firefox, er det for øyeblikket kun hendelsessider som støttes, og støtte for en løsning basert på Service Workers er lovet å bli lagt til senere. Apple støttet forslaget og implementerte Event Pages i Safari Technology Preview 136.
  • Den nye granulære tillatelsesforespørselsmodellen - tillegget vil ikke kunne aktiveres for alle sider på en gang («all_urls»-tillatelsen er fjernet), men vil bare fungere i sammenheng med den aktive fanen, dvs. brukeren må bekrefte at tillegget fungerer for hvert nettsted. I Firefox vil alle forespørsler om å få tilgang til nettstedsdata betraktes som valgfrie, og den endelige avgjørelsen om å gi tilgang vil bli tatt av brukeren, som selektivt vil kunne bestemme hvilket tillegg som skal gi tilgang til dataene deres på et bestemt nettsted.
  • Endring i håndtering av kryssopprinnelsesforespørsler – i samsvar med det nye manifestet vil innholdsbehandlingsskript være underlagt de samme tillatelsesbegrensningene som for hovedsiden der disse skriptene er innebygd (for eksempel hvis siden ikke har tilgang til location API, vil heller ikke skripttilleggene motta denne tilgangen). Denne endringen er fullt implementert i Firefox.
  • Løftebasert API. Firefox støtter allerede denne API-en og vil flytte den til «chrome.*»-navneområdet for den tredje versjonen av manifestet.
  • Forbyr kjøring av kode lastet ned fra eksterne servere (vi snakker om situasjoner når tillegget laster inn og kjører ekstern kode). Firefox bruker allerede ekstern kodeblokkering, og Mozilla-utviklere har lagt til flere teknikker for nedlasting av kode som tilbys i den tredje versjonen av manifestet. For innholdsbehandlingsskript er det gitt en separat policy for innholdstilgangsbegrensning (CSP, Content Security Policy).

Kilde: opennet.ru

Legg til en kommentar