Bekende problemen bij het migreren naar Manifest V3

Onlangs hebben we wijzigingen aangekondigd in de tijdlijn voor de beëindiging van Manifest V2, en hoewel we ons vastberaden blijven inzetten voor Manifest V3, erkennen we dat er van onze kant nog meer werk aan de winkel is.

  • Voordat we een nieuwe tijdlijn voor beëindiging aankondigden, hebben we de geprioriteerde platformhiaten aangepakt en de kritieke bugs gesloten die op deze pagina zijn gedocumenteerd.
  • We hebben ontwikkelaars de tijd gegeven om te bouwen, door minimaal zes maanden te garanderen tussen een tijdlijnaankondiging en de lopende experimenten voor het verwijderen van de ondersteuning voor Manifest V2.

Het dichten van de platformkloof

We streven ernaar de volgende hiaten te dichten voordat we een nieuwe tijdlijn voor de beëindiging van Manifest V2 aankondigen:

Problemen werden verzameld op basis van feedback van partners, bugrapporten en ontwikkelaars. We zullen ons voortdurende werk voortzetten om de stabiliteit en de algehele prestaties van het uitbreidingsplatform te verbeteren.

Er zijn momenteel geen openstaande kwesties die als een kritieke platformkloof worden beschouwd.

De volgende problemen zijn recentelijk aangepakt:

  1. Ondersteuning voor bestandsverwerking op ChromeOS als vervanging voor chrome.fileBrowserHandler [Chrome 120].
  2. Ondersteuning voor gebruikersscripts: Sta het registreren van inhoudsscripts met willekeurige code toe met de nieuwe userScripts API [Chrome 120].
  3. Extra sterke servicemedewerkers houden zich in leven voor bepaalde werkzaamheden die langer dan vijf minuten duren.
    • Toegevoegd in Chrome 116 voor permissions.request() , desktopCapture.chooseDesktopMedia() , identity.launchWebAuthFlow() en management.uninstall() .
    • Toegevoegd in Chrome 118 voor chrome.debugger
  4. Verhoog het aantal statische en ingeschakelde regelsets voor Declarative Net Request (DNR). Het aantal ingeschakelde statische regelsets is verhoogd van 10 naar 50 en het totale aantal statische regelsets van 50 naar 100 [Chrome 120].
  5. Breid de Offscreen-documentfunctionaliteit uit om meer redenen te ondersteunen voor het gebruik van een offscreen-document. GEOLOCATION toegevoegd in Chrome 116.
  6. Verbetering van de ondersteuning voor de chrome.tabCapture API [Chrome 116]:
    • Ondersteuning voor het aanroepen getMediaStreamId() van een servicemedewerker.
    • Ondersteuning voor het verkrijgen van een MediaStream van een stream-ID in een offscreen-document.
  7. De levensduur van servicemedewerkers verlengen terwijl er actieve WebSocket verbindingen zijn [Chrome 116].

Manifest V3 veelgestelde vragen

Vraag: Zijn we van plan om vasthoudende servicemedewerkers te ondersteunen?
A: Een van de belangrijkste redenen om van achtergrondscripts naar servicewerkers te migreren is het geheugenefficiëntere, gebeurtenisgestuurde programmeermodel dat voortkomt uit de kortstondige aard van servicewerkers. Daarom zijn we niet van plan om hardnekkige servicemedewerkers te ondersteunen. Om echter tegemoet te komen aan de specifieke behoeften van extensie-ontwikkelaars, blijven we veel verbeteringen aanbrengen aan servicemedewerkers. In het bijzonder:

  • Alle uitbreidingsgebeurtenissen en API-oproepen verlengen de levensduur van de servicemedewerker .
  • Geselecteerde gebruiksscenario's, zoals native messaging, zorgen ervoor dat medewerkers van de extensieservice langer dan 5 minuten in leven blijven.

Vraag: Is er een manier om toegang te krijgen tot de DOM voor servicemedewerkers?
A: We volgen de aanpak van het webplatform om DOM-toegang niet op te nemen in webwerkers (waaronder servicewerkers). Ter ondersteuning van gebruiksscenario's waarbij achtergrond-DOM-toegang van servicemedewerkers vereist is, hebben we de mogelijkheid geïntroduceerd om achtergrondwerk te delegeren aan kortstondige Offscreen-documenten die volledige DOM-toegang bieden.

Vraag: Is er een manier om externe code te ondersteunen in Manifest V3?
A: Om Chrome-extensies veiliger te maken, blijven we het uitvoeren van willekeurige, op afstand gehoste code in Chrome-extensies verbieden. Dit betekent echter niet dat we alle vormen van dynamische code-uitvoering verbieden. We ondersteunen nog steeds verschillende opties voor het dynamisch uitvoeren van code in Chrome-extensies:

Vraag: Mijn Manifest V2-extensie is afhankelijk van webRequestBlocking, wat niet wordt ondersteund in Manifest V3. Hoe kan ik dezelfde functionaliteit blijven bieden in Manifest V3?
A: We zijn ervan overtuigd dat de meeste gebruiksscenario's voor het blokkeren van verzoeken kunnen worden opgelost met de nieuwe declarativeNetRequest API , die als bijkomend voordeel de prestatieoverhead van communicatie tussen processen vermijdt, code uitvoert op elk verzoek of een actief uitbreidingsproces vereist op het moment van de aanvraag. Voor complexe gebruiksscenario's in ondernemingen (of onderwijs) wordt dynamische verzoekblokkering echter nog steeds ondersteund.

Hebben wij iets gemist? Laat het ons weten .