Firefox er begyndt at teste den tredje version af Chrome-manifestet

Mozilla har annonceret, at de er begyndt at teste Firefoxs implementering af den tredje version af Chrome-manifestet, som definerer de muligheder og ressourcer, der er tilgængelige for tilføjelser skrevet ved hjælp af WebExtensions API. For at teste den tredje version af manifestet i Firefox 101 beta, skal du sætte parameteren "extensions.manifestV3.enabled" til sand og parameteren "xpinstall.signatures.required" til false på about:config-siden. For at installere tilføjelser kan du bruge about:debugging-grænsefladen. Den tredje version af manifestet er planlagt til at blive aktiveret som standard ved udgangen af ​​året.

Fra og med version 57 gik Firefox fuldstændig over til at bruge WebExtensions API til udvikling af tilføjelser og holdt op med at understøtte XUL-teknologi. Overgangen til WebExtensions gjorde det muligt at forene udviklingen af ​​tilføjelser med Chrome-, Opera-, Safari- og Edge-platformene, forenklede porteringen af ​​tilføjelser mellem forskellige webbrowsere og gjorde det muligt fuldt ud at bruge multi-proces-tilstanden. operation (WebExtensions-tilføjelser kan udføres i separate processer, isoleret fra resten af ​​browseren). For at forene udviklingen af ​​tilføjelser med andre browsere giver Firefox næsten fuld kompatibilitet med den anden version af Chrome-manifestet.

Chrome arbejder i øjeblikket på at flytte til version 2023 af manifestet, og understøttelse af version XNUMX udgår i januar XNUMX. Fordi den tredje version af manifestet er kommet under beskydning og vil bryde mange indholdsblokeringer og sikkerhedstilføjelser, har Mozilla besluttet at gå væk fra praksis med at sikre fuld kompatibilitet med manifestet i Firefox og implementere nogle ændringer anderledes.

Den største utilfredshed med den tredje version af manifestet er relateret til oversættelsen til skrivebeskyttet tilstand af webRequest API, som gjorde det muligt at forbinde dine egne handlere, der har fuld adgang til netværksanmodninger og kan ændre trafikken på farten. Denne API bruges i uBlock Origin og mange andre tilføjelser til at blokere upassende indhold og give sikkerhed. I stedet for webRequest API'et tilbyder den tredje version af manifestet en deklarativ NetRequest API med begrænset kapacitet, som giver adgang til en indbygget filtreringsmotor, der uafhængigt behandler blokeringsregler, ikke tillader brugen af ​​sine egne filtreringsalgoritmer og ikke tillade at sætte komplekse regler, der overlapper hinanden afhængigt af forholdene.

I implementeringen af ​​den tredje version af manifestet foreslået i Firefox blev der tilføjet en ny deklarativ API til indholdsfiltrering, men i modsætning til Chrome stoppede de ikke med at understøtte den gamle blokeringstilstand for webRequest API. Andre funktioner i den nye manifestimplementering i Firefox inkluderer:

  • Manifestet definerer udskiftningen af ​​baggrundssider med indstillingen Service Workers, som kører som baggrundsprocesser (Background Service Workers). For at sikre kompatibilitet vil Firefox implementere dette krav, men vil derudover tilbyde en ny Event Pages-mekanisme, som er mere velkendt for webudviklere, ikke kræver en fuldstændig omarbejdelse af tilføjelser og eliminerer begrænsningerne forbundet med brugen af ​​Service Workers. Event Pages vil tillade eksisterende tilføjelser af baggrundssider at overholde kravene i den tredje version af manifestet, samtidig med at de bevarer adgangen til alle de funktioner, der er nødvendige for at arbejde med DOM. I den manifestimplementering, der er tilgængelig til test i Firefox, er det i øjeblikket kun Event Pages, der understøttes, og support til en løsning baseret på Service Workers er lovet at blive tilføjet senere. Apple støttede forslaget og implementerede Event Pages i Safari Technology Preview 136.
  • Den nye granulære tilladelsesanmodningsmodel - tilføjelsen vil ikke kunne aktiveres for alle sider på én gang (“all_urls”-tilladelsen er blevet fjernet), men vil kun fungere i sammenhæng med den aktive fane, dvs. brugeren skal bekræfte, at tilføjelsen fungerer for hvert websted. I Firefox vil alle anmodninger om at få adgang til webstedsdata blive betragtet som valgfrie, og den endelige beslutning om at give adgang vil blive truffet af brugeren, som selektivt vil være i stand til at bestemme, hvilken tilføjelse der skal give adgang til deres data på et bestemt websted.
  • Ændring i håndtering af krydsoprindelsesanmodninger - i overensstemmelse med det nye manifest vil indholdsbehandlingsscripts være underlagt de samme tilladelsesbegrænsninger som for hovedsiden, hvori disse scripts er indlejret (f.eks. hvis siden ikke har adgang til location API, så vil script-tilføjelserne heller ikke modtage denne adgang). Denne ændring er fuldt implementeret i Firefox.
  • Løfte baseret API. Firefox understøtter allerede denne API og vil flytte den til "chrome.*"-navneområdet for den tredje version af manifestet.
  • Forbud mod udførelse af kode downloadet fra eksterne servere (vi taler om situationer, hvor tilføjelsen indlæser og udfører ekstern kode). Firefox bruger allerede ekstern kodeblokering, og Mozilla-udviklere har tilføjet yderligere kodedownload-sporingsteknikker, der tilbydes i den tredje version af manifestet. For indholdsbehandlingsscripts leveres en separat politik for indholdsadgangsbegrænsning (CSP, Content Security Policy).

Kilde: opennet.ru

Tilføj en kommentar