Bekende problemen bij het migreren naar Manifest V3

Deze pagina documenteert de platformlacunes die zijn opgelost tijdens de overgang naar Manifest V3 en beantwoordt veelgestelde vragen over de migratie.

Opgeloste platformtekortkomingen

De volgende functionaliteiten zijn toegevoegd om veelvoorkomende knelpunten bij migratie aan te pakken:

  1. Ondersteuning voor bestandsverwerking op ChromeOS als vervanging voor chrome.fileBrowserHandler (Chrome 120).
  2. Ondersteuning voor gebruikersscripts: Maak het mogelijk om contentscripts met willekeurige code te registreren met de nieuwe userScripts API (Chrome 120).
  3. Extra , krachtige servicemedewerkers kunnen ingezet worden voor bepaalde operaties 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. De functionaliteit voor documenten die niet op het scherm zichtbaar zijn, is uitgebreid om meer redenen te ondersteunen voor het gebruik ervan. GEOLOCATION is toegevoegd in Chrome 116.
  6. Verbeterde ondersteuning voor de chrome.tabCapture API (Chrome 116):
    • Ondersteuning voor het aanroepen van getMediaStreamId() vanuit een service worker.
    • Ondersteuning bieden voor het verkrijgen van een MediaStream op basis van een stream-ID in een document dat niet op het scherm zichtbaar is.
  7. De levensduur van service workers verlengen terwijl er actieve WebSocket verbindingen zijn (Chrome 116).

Veelgestelde vragen over Manifest V3

V: Zijn we van plan om langdurige dienstverlenende werknemers te ondersteunen?
A: Een van de belangrijkste redenen om over te stappen van achtergrondscripts naar service workers is het geheugenefficiëntere, gebeurtenisgestuurde programmeermodel dat voortkomt uit het tijdelijke karakter van service workers. Daarom zijn we niet van plan om persistente service workers te ondersteunen. Om echter tegemoet te komen aan de specifieke behoeften van extensieontwikkelaars, blijven we service workers verbeteren. In het bijzonder:

  • Alle extensiegebeurtenissen en API-aanroepen verlengen de levensduur van de service worker .
  • Bepaalde gebruiksscenario's, zoals native berichtenverkeer, zorgen ervoor dat de service workers van extensies langer dan 5 minuten actief blijven.

V: Is er een manier om toegang te krijgen tot het DOM vanuit service workers?
A: We volgen de aanpak van het webplatform om geen DOM-toegang op te nemen in webworkers (waaronder serviceworkers). Om gebruiksscenario's te ondersteunen die achtergrond-DOM-toegang vanuit serviceworkers vereisen, hebben we de mogelijkheid geïntroduceerd om achtergrondtaken te delegeren aan kortstondige Offscreen-documenten die volledige DOM-toegang bieden.

V: Zal ​​er een manier zijn om code op afstand 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:

V: 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 gevallen van request blocking kunnen worden opgelost met de nieuwe declarativeNetRequest API . Deze API heeft als bijkomend voordeel dat de prestatievermindering door interprocescommunicatie, het uitvoeren van code bij elk verzoek of de noodzaak van een actief extensieproces op het moment van het verzoek wordt vermeden. Voor complexe zakelijke (of onderwijs)gebruiksscenario's blijft dynamische request blocking echter wel ondersteund.

Hebben we iets over het hoofd gezien? Laat het ons weten .