Bezoek deze pagina regelmatig voor meer informatie over wijzigingen in Chrome-extensies, extensiedocumentatie, of gerelateerd beleid of andere wijzigingen. Andere mededelingen vindt u in de Google-groep Extensies . Het Chrome-schema vermeldt stabiele releasedatums en bèta-releasedatums.
Chrome 132: Nieuwe bevroren eigenschap in Tabs API
Vanaf Chrome 132 geeft de frozen
eigenschap in de Tabs API aan of een tabblad door de browser is bevroren. Berichten die naar bevroren tabbladen worden verzonden, worden in de wachtrij geplaatst en afgehandeld zodra het tabblad wordt gedeblokkeerd.
De Prompt API in Chrome-extensies
De Prompt API for Extensions is nu beschikbaar als origin-proefversie, zodat u Chrome-extensies kunt bouwen die Gemini Nano, ons meest efficiënte taalmodel, in de browser gebruiken.
Doe mee aan de Prompt API Origin-proefperiode, uitgevoerd in Chrome 131 tot 136, en deel uw feedback. Uw input kan rechtstreeks van invloed zijn op de manier waarop we toekomstige versies van deze API en alle ingebouwde AI API's bouwen en implementeren.
Blogpost: Wat gebeurt er in Chrome-extensies, oktober 2024
Het is tijd voor een nieuwe samenvatting van wat er gebeurt in Chrome-extensies: we hebben spannende updates over AI-integratie, nieuwe API's, evenementen en video's. Lees er alles over in Wat gebeurt er in de oktobereditie van Chrome Extensions !
Doe mee aan de ingebouwde AI-uitdaging
Chrome heeft de Built-in AI Challenge gelanceerd: u wordt uitgenodigd om innovatieve webapplicaties en Chrome-extensies te maken, met behulp van de geïntegreerde AI-modellen en API's van Chrome , en maakt kans op prijzen ter waarde van in totaal $ 65.000 USD.
Meld u aan en ontvang meer informatie op de website van de Built-in AI Challenge . We kunnen niet wachten om te zien wat je creëert als je het web van AI voorziet!
Chrome 130: action.onUserSettingsChanged
Vanaf Chrome 130 is de gebeurtenis action.onUserSettingsChanged beschikbaar. Dit volgt op een voorstel in de WebExtensions Community Group. Met dank aan Microsoft voor de bijdrage aan Chromium.
Chrome 130: StorageArea.getKeys()
Vanaf Chrome 130 is de methode getKeys() beschikbaar op de StorageArea-interface die wordt gebruikt door de chrome.storage
API. Dit volgt op een voorstel in de WebExtensions Community Group.
Chrome 128: Matching van antwoordheaders in Declarative Net Request
Vanaf Chrome 128 voegen we ondersteuning toe voor het matchen van responsheaders in de Declarative Net Request API. Dit was een veelvoorkomend verzoek, vooral voor het matchen van de Content-Type header, en we hebben samen met de WebExtensions Community Group een geschikte API ontworpen .
We hebben onze API-referentie bijgewerkt met de nieuwe velden responseHeaders
en excludedResponseHeaders
. U kunt deze gebruiken om het bestaan en de waarde van een bepaalde header te controleren.
Als onderdeel van deze update hebben we een nieuwe regelevaluatiesectie aan onze documentatie toegevoegd, waarin wordt uitgelegd hoe regels op elkaar worden afgestemd. Met name bij het matchen van headers kunnen regels pas worden uitgevoerd nadat responsheaders zijn ontvangen, zodat deze in een later stadium worden toegepast dan andere regels. Dit betekent dat het verzoek de server bereikt voordat het wordt geblokkeerd of omgeleid.
Video: Wat zijn inhoudsscripts?
Leer meer over inhoudsscripts in Chrome-extensies, inclusief hoe u CSS en JavaScript registreert voor uitvoering op een bepaalde pagina. Bekijk de volledige video .
Belangrijke beleidsupdates
Het Chrome Web Store-team heeft een reeks updates gepubliceerd op de pagina Programmabeleid voor ontwikkelaars, bedoeld om de ontwikkeling van producten van hoge kwaliteit aan te moedigen, misleidend gedrag te voorkomen en geïnformeerde toestemming van de gebruiker te garanderen. Rebecca Soares, de beleidsmanager van de Chrome Web Store, heeft alle updates in Chrome Extensies samengevat: Belangrijke beleidsupdates blogpost .
Blogpost: Wat gebeurt er in Chrome-extensies, juli 2024
In de afgelopen drie maanden hebben we verschillende belangrijke updates en nieuwe functies uitgerold, waaronder de start van de uitfasering van Manifest V2. Blijf op de hoogte van wat er gebeurt in de juli-editie van Chrome-extensies !
Video: Wat is een op afstand gehoste code?
Patrick van het Chrome Extensions-team legt het concept van Remotely Hosted Code (RHC) in Chrome Extensions uit. Ontdek waarom RHC niet langer is toegestaan, hoe u dit kunt detecteren en wat u moet doen als uw extensie moet worden bijgewerkt. Bekijk de volledige video .
Chrome 127: Nieuwe action.openPopup API
Vanaf Chrome 127 is de action.openPopup
API beschikbaar voor alle extensies. Voorheen was het alleen beschikbaar in Canary of voor extensies die door een beleid waren geïnstalleerd.
Video: Interview met het Trust & Safety-team
Het Chrome Extensions DevRel-team heeft een gesprek gehad met het Trust & Safety-team dat de beoordeling in de Chrome Web Store leidt om uw vragen te stellen. Bekijk de volledige video .
Blogpost: De manifeste uitfasering van V2 begint
Vanaf 3 juni zullen sommige gebruikers op de Chrome Bèta-, Dev- en Canary-kanalen, als ze nog Manifest V2-extensies hebben geïnstalleerd, een waarschuwingsbanner zien wanneer ze hun extensiebeheerpagina bezoeken - chrome://extensions - waarin ze worden geïnformeerd dat sommige (Manifest V2)-extensies die ze hebben geïnstalleerd, worden binnenkort niet langer ondersteund. Lees meer in de officiële aankondiging
Updates voor de gebruikersinterface op het zijpaneel
We hebben onlangs enkele wijzigingen aangebracht in de gebruikersinterface van het zijpaneel, waaronder het toevoegen van een punaisepictogram en het verwijderen van het algemene zijpaneelpictogram. Lees meer in de PSA en bekijk onze bijgewerkte documentatie en voorbeelden .
Blogpost: Chrome-extensies op Google I/O 2024
Er ligt weer een Google I/O achter de rug en we hebben alle spannende extensie-updates besproken! Ga naar YouTube om de volledige video te bekijken en lees onze blogpost voor enkele hoogtepunten.
Sla de beoordeling over voor in aanmerking komende Declarative Net Request-wijzigingen
In de Chrome Web Store kunt u nu de beoordeling van in aanmerking komende wijzigingen overslaan als u de Declarative Net Request API gebruikt. Lees meer over geschiktheid en hoe u zich kunt aanmelden in de Chrome Web Store-documentatie .
implementPercentage beschikbaar in de Chrome Web Store API
We hebben onlangs onze Chrome Web Store API-documentatie bijgewerkt met informatie over deployPercentage
, waarmee u een percentage van een gedeeltelijke implementatie-implementatie kunt toewijzen. Meer informatie over deployPercentage
.
Chrome 126: Origin-proefversies in extensies
Chrome 126 introduceert een nieuw veld manifest.json - trial_tokens
, waarmee u zich op alle extensie-oppervlakken kunt aanmelden voor Origin Trials en Deprecation Trials. Lees de handleiding voor meer informatie.
Blogpost: Wat gebeurt er in Chrome-extensies - april 2024
We hebben een nieuwe editie gepubliceerd van What's Happening in Chrome Extensions . In het bericht wordt besproken waar het uitbreidingsteam de afgelopen maanden aan heeft gewerkt. Dit omvat: versie terugdraaien in de Chrome Web Store, betere ondersteuning voor Firebase Auth en meer API-lanceringen en -updates.
Versie terugdraaien in het Chrome Web Store-ontwikkelaarsdashboard
Zet uw extensie terug naar de eerder gepubliceerde versie in de Chrome Web Store, zonder aanvullende beoordeling! Lees de blogpost en documentatie voor meer informatie.
Chrome 124: Geavanceerde documentScan-API
Er is nu een geavanceerde documentScan
API beschikbaar op ChromeOS om afbeeldingen van aangesloten documentscanners te ontdekken en op te halen.
Chrome 124: WebGPU-ondersteuning in servicemedewerkers
Sinds Chrome 124 ondersteunen servicemedewerkers WebGPU . Bekijk voor een snelle start het voorbeeld van de WebGPU-extensie .
Chrome 123: De Events API ondersteunt filteren op CIDR-blokken
De Events API ondersteunt nu filteren op CIDR-blokken (Classless Inter-Domain Routing). Een CIDR-blok is een verzameling IP-adressen die een netwerkvoorvoegsel en hetzelfde aantal bits delen. Voorheen moest een ontwikkelaar die meerdere IP-adressen moest filteren een filterregel configureren voor elk van de adressen in het blokbereik. Wanneer een extensie nu addListener()
aanroept, betekent een doorgegeven regel dat de gebeurtenishandler alleen wordt aangeroepen als het hostgedeelte van een URL een IP-adres is en zich bevindt in een van de CIDR-blokken die in een array zijn opgegeven.
Chrome Web Store: Updates van de vereisten voor de lengte van de extensienaam
In de Chrome Web Store geldt nu een universele limiet van 75 tekens voor het veld "name"
van een extensie in manifest.json. Voorheen was de limiet voor Engels 45 tekens en was er in andere landinstellingen geen beperking voor het veld "name"
.
Dit was oorspronkelijk bedoeld om culturele en taalverschillen mogelijk te maken die mogelijk niet in hetzelfde aantal karakters kunnen worden vastgelegd. Helaas werd deze functie door een klein aantal ontwikkelaars misbruikt om de winkel te spammen. Als gevolg hiervan introduceren we een nieuwe universele limiet, een verhoging naar 75 tekens. Deze limiet dekt momenteel bijna alle extensies in de winkel, dus het is waarschijnlijk dat u als gevolg van deze wijziging geen actie hoeft te ondernemen. Als u een extensie probeert te uploaden die een naam heeft die langer is dan de maximale limiet, wordt de upload geblokkeerd door de winkel.
Blogpost: eyeo's reis naar het testen van de schorsing van servicemedewerkers
In dit bericht van eyeo's Extension Engine-team onderzoeken we het probleem van het testen van extensieservicemedewerkers. In Manifest V2 stonden extensies op een achtergrondpagina, die gedurende de hele levenscyclus van de extensie actief waren. Manifest V3 maakt in plaats daarvan gebruik van servicemedewerkers, en servicemedewerkers besparen door hun ontwerp hulpbronnen door uit te schakelen wanneer ze niet nodig zijn. Dit brengt bepaalde testuitdagingen met zich mee. In dit bericht wordt uitgelegd hoe eyeo deze uitdagingen heeft aangepakt .
Chrome 123: Alarmen worden nu geactiveerd wanneer het apparaat slaapt
Alarmen die zijn ingesteld met de chrome.alarms
API worden niet langer vertraagd wanneer een apparaat in de sluimerstand gaat. Wanneer het apparaat wakker wordt, gaat het alarm één keer af, ongeacht hoeveel alarmen er zijn gemist. Stel bijvoorbeeld dat een alarm zo is ingesteld dat het één keer per uur afgaat en het apparaat waarop het alarm staat, slaapt van 12:55 uur tot 02:05 uur, dan activeert alleen het alarm van 02:00 uur de gebeurtenis onAlarm
. Het vuurt zo dicht mogelijk bij 02:00 uur af, en onmiddellijk wanneer een apparaat ontwaakt als het in slaap was.
Deze wijziging brengt Chrome in lijn met het afgesproken gedrag in de Web Extensions Community Group.
Blogpost: Wijzigingen in bfcache-gedrag met extensie-berichtpoorten
Back/forward cache (bfcache) is een browseroptimalisatie die directe terug- en vooruitnavigatie mogelijk maakt. Vanaf Chrome 123 wordt het berichtenkanaal gesloten wanneer een pagina met een open extensiepoort wordt opgeslagen in bfcache, wat betekent dat er geen berichten naar die pagina worden verzonden. Daarom moeten extensiescripts luisteren naar levenscyclusgebeurtenissen zoals onDisconnect
en een nieuwe verbinding opzetten wanneer de pagina wordt hersteld vanuit BFCache.
Zie Wijzigingen in BFCache-gedrag met extensie message ports voor meer informatie en voorbeeldcode.
Chrome 122: Beloof ondersteuning voor asynchrone extensie-API's
We zijn klaar met de implementatie van Promise-ondersteuning voor alle asynchrone extensie-API-methoden. Dit werd gedaan om API-methoden te moderniseren door de ergonomie van het omgaan met asynchrone bewerkingen te verbeteren. Een handvol methoden (bijvoorbeeld desktopCapture.chooseDesktopMedia()
) ondersteunt nog steeds alleen callbacks omdat hun huidige oppervlakken niet compatibel zijn met Promises. Voor achterwaartse compatibiliteit worden callbacks nog steeds ondersteund. Als u een belofte tegenkomt die mislukt, dient u een bug in .
Nieuwe richtlijnen voor realtime communicatie
We hebben zojuist handleidingen gepubliceerd over realtime opties in extensies. Realtime updates zorgen voor een direct communicatiepad van uw servers rechtstreeks naar uw extensie-installaties. Daarnaast hebben we nieuwe richtlijnen voor het gebruik van chrome.gcm en Web Push .
Nieuwe richtlijnen en voorbeeld: Beëindiging van servicemedewerkers testen
We hebben zojuist een handleiding gepubliceerd over het testen van de beëindiging van servicemedewerkers met Puppeteer . Het begeleidende voorbeeld demonstreert dit in Puppeteer en Selenium.
Bijgewerkt voorbeeld voor native messaging
We hebben zojuist een bijgewerkt voorbeeld voor native messaging gepubliceerd. Met deze API kan uw extensie een andere applicatie starten en ermee communiceren. Met dank aan GitHub-bijdrager Shubham-Rasal voor het werk hieraan.
Chrome 121: Nieuwe eigenschap lastAccessed op tabbladen.Tab
Er is een nieuwe eigenschap met de naam lastAccessed
toegevoegd aan het object tabs.Tab
. Deze eigenschap geeft aan wanneer het tabblad voor het laatst is geactiveerd. De geretourneerde waarde is in milliseconden sinds tijdperk.
Chrome 121: Niet-ondersteunde 'achtergrond'-toetsen geven nu een waarschuwing
Bij de wijziging van Manifest V2 naar Manifest V3 zijn onderliggende elementen van de manifestsleutel "background"
gewijzigd om vervanging van achtergrondscripts door extensieservicemedewerkers mogelijk te maken. Vroeger zou het toevoegen van de Manifest V2-sleutels "scripts"
, "page"
of "persistent"
aan de "background"
-sleutel van een Manifest V3-extensie een fout opleveren. De aanwezigheid van deze sleutels veroorzaakt nu een waarschuwing.
Dit wordt gedaan om het gebruik van één manifestbestand in extensies in meerdere browsers mogelijk te maken, volgens een voorstel in de communitygroep .
Chrome 120: Minimale alarmgranulariteit teruggebracht tot 30 seconden
Vanaf Chrome 120 kunnen Manifest V3-extensies de chrome.alarms
API gebruiken met vertragingen of perioden van 30 seconden, in plaats van waarden van 60 seconden of meer te vereisen.
Blogpost: Hervatting van de transitie naar Manifest V3
De Manifest V2-ondersteuningstijdlijn is bijgewerkt. Zie onze blogpost van november 2023 voor meer informatie.
Blogpost: Verbeteringen aan ondersteuning voor inhoudsfiltering in Manifest V3
Lees meer over hoe we de declarativeNetRequest API hebben verbeterd in onze nieuwe blogpost .
Blogpost: Wat is er nieuw in Chrome 120 voor extensies
Chrome 120 Bèta is onlangs uitgebracht. Voor een samenvatting van de belangrijke updates die relevant zijn voor extensie-ontwikkelaars, lees onze nieuwe blogpost: Wat is er nieuw in Chrome 120 voor extensies . Deze release markeert ook een belangrijke mijlpaal omdat de laatste twee items (userScripts, bestandshandler op ChromeOS) worden verwijderd uit de lijst met kritieke platformhiaten .
PSA: Wijziging in de verwerking van privacybeleid-URL's in het ontwikkelaarsdashboard
Het privacybeleid in het ontwikkelaarsdashboard is nu toegevoegd op itemniveau. Hierdoor kunt u per artikel een ander privacybeleid opgeven. Lees meer over deze wijziging in onze PSA .
Video: Een gesprek met Matt Frisbie
We hebben zojuist een nieuwe video gepubliceerd op het Chrome for Developers YouTube-kanaal waarin we chatten met Google Developer Expert en auteur Matt Frisbie. Bekijk het hier .
Nieuwe richtlijnen voor het testen van extensies
We hebben zojuist nieuwe richtlijnen gepubliceerd over het schrijven van geautomatiseerde tests voor extensies, inclusief het schrijven van unit-tests en zowel algemene richtlijnen als een tutorial over end-to-end testen.
Blogpost: Wat gebeurt er in Chrome-extensies - oktober 2023
We hebben zojuist de tweede editie van What's Happening in Chrome Extensions gepubliceerd. De post bespreekt waar het uitbreidingsteam de afgelopen maanden aan heeft gewerkt, waaronder het aanpakken van stabiliteitsproblemen met servicemedewerkers en het boeken van goede vooruitgang bij het dichten van alle gaten in het MV3-platform. We delen ook opwindende aankomende API-releases zoals de Reading List API en de User Scripts API.
Verhoogde limieten voor statische regelsets in Declarative Net Request API
Naar aanleiding van feedback in de Web Extensions Community Group verhogen we de limiet voor ingeschakelde statische regelsets aanzienlijk van 10 naar 50. Daarnaast verhogen we het totale aantal toegestane statische regelsets van 50 naar 100. Dit is momenteel beschikbaar in Canary.
Verbeterde begeleiding rond op afstand gehoste code
Een vereiste voor Manifest V3 is dat extensies niet langer op afstand gehoste code mogen gebruiken. Hoewel dit vanaf het begin deel uitmaakte van onze migratiegids , vonden we het de moeite waard om de richtlijnen rond dit probleem te verbeteren. Die pagina biedt nu meer informatie, beschrijft wat er nog steeds mogelijk is in Manifest V3 en biedt meer informatie over upgradestrategieën.
Er is een gerelateerde toevoeging aan het probleem van het oplossen van schendingen van de Chrome Web Store . In een nieuwe sectie worden veelvoorkomende redenen beschreven waarom extensies met op afstand gehoste code worden afgewezen.
Chrome 118: isUrlFilterCaseSensitive is nu standaard ingesteld op false
Vanaf Chrome 118 is de eigenschap isUrlFilterCaseSensitive
in de chrome.declarativeNetRequest API standaard gewijzigd in false
. Als u het oude gedrag wilt behouden, kunt u isUrlFilterCaseSensitive
expliciet instellen op true
in uw declarativeNetRequest-regels.
Dit volgt op discussies in de Web Extensions Community Group. Firefox en Safari hebben al een soortgelijke wijziging doorgevoerd.
Documentatie over cookies en webopslag-API's
We hebben een nieuwe handleiding gepubliceerd over hoe cookies en webopslag-API's werken in Chrome-extensies . Het bevat details over wijzigingen in de cookie- en opslagpartitionering in Privacy Sandbox , een lopend project om cookies van derden af te schaffen door de creatie van een reeks nieuwe webplatform-API's, en details over hoe ze werken in extensies.
Extensievoorbeelden zijn nu doorzoekbaar
We hebben onlangs een pagina gemaakt waarop u voorbeelden van Chrome-extensies kunt doorzoeken . De zoekpagina heeft meerdere opties. Met een zoekvak kunt u naar tekst in voorbeeldtitels zoeken. U kunt de zoekopdracht beperken op basis van toestemming of extensie-API. Met een extra filter kunt u de zoekopdracht beperken tot API- of functionele (use case) voorbeelden.
Deze nieuwe voorbeeldpagina is gebouwd door een Google Summer of Code-deelnemer, Xuezhou Dai, die ook verschillende nieuwe voorbeelden heeft bijgedragen. Hun ervaringen afgelopen zomer kun je lezen in hun post op onze blog .
Net als voorheen zijn onze codevoorbeelden nog steeds beschikbaar op GitHub voor klonen of forken.
Chrome 118: Wijzigingen in openingsbestand: schema-URL's
Vanaf Chrome 118 moeten extensies de instelling 'Toegang tot bestands-URL's toestaan' hebben ingeschakeld op de pagina chrome://extensions
om file://-schema-URL's te openen met behulp van de Tabs- of Windows -API's. U kunt deze toegang programmatisch controleren door chrome.extension.isAllowedFileSchemeAccess()
aan te roepen. Firefox beperkt al bestands-URL's en Safari ondersteunt de wijziging. Lees voor meer informatie het bericht in de extensies Google Group .
Chrome 117: Uitgebreide URL-beveiliging voor API-navigatie met extensies
Eerdere navigatie die werd geactiveerd door extensie-API-aanroepen voor tabs.update()
, tabs.create()
en windows.create()
gaf een foutmelding voor sommige chrome:// URL's. Bovendien was het aanroepen van tabs.update()
met een JavaScript-URL verboden. In 117 zijn deze beveiligingen op JavaScript-URL's uitgebreid naar de methode tabs.create()
en zijn er een aantal extra chrome://-URL's toegevoegd aan de lijst met verboden URL's die van toepassing zijn op alle eerder genoemde methoden.
Verbeterde richtlijnen voor de declarativeNetRequest API
De chrome.declarativeNetRequest
API blokkeert of wijzigt netwerkverzoeken door declaratieve regels op te geven. Hierdoor kunnen extensies netwerkverzoeken wijzigen zonder deze te onderscheppen en de inhoud ervan te bekijken, waardoor gebruikers meer privacy krijgen. Het is ook lastig te gebruiken. Met dat in gedachten hebben we de richtlijnen herschreven op een manier die volgens ons een duidelijker beeld schetst van hoe declaratieve regelsets geïmplementeerd kunnen worden. Lees het nieuwe gedeelte via de bovenstaande link.
Uw Google Analytics-account gebruiken met de Chrome Web Store
De Chrome Web Store biedt integratie met Google Analytics, waarmee u analyses voor uw Chrome Web Store-vermelding kunt bekijken naast de weergave die wordt aangeboden in het ontwikkelaarsdashboard. Voor meer informatie leest u Uw Google Analytics-account gebruiken met de Chrome Web Store .
Chrome 115: DevTools stapt standaard over contentscripts heen
Geïnjecteerde inhoudsscripts staan nu standaard in de negeerlijst van DevTools. Dit heeft geen invloed op breekpunten, maar het betekent wel dat inhoudsscripts tijdens het debuggen worden overgeslagen en dat uitzonderingen op deze scripts worden genegeerd. Wanneer een inhoudsscript geopend is op het tabblad Bronnen , wordt u via een banner gewaarschuwd of dit is ingeschakeld en wordt er een optie geboden om uw inhoudsscript uit de negeerlijst te verwijderen. Om dit gedrag uit te schakelen, opent u DevTools, gaat u naar Instellingen en vervolgens naar Negeerlijst . Zie Wat is er nieuw in DevTools voor meer informatie.
Chrome 116 bèta: meer dan we hier kunnen plaatsen
Chrome 116 is een grote release voor extensies. U kunt nu zijpanelen programmatisch openen. Met een nieuwe methode kunt u ontdekken of er een actief document buiten het scherm is. Servicemedewerkers kregen verschillende verbeteringen. Er zijn genoeg verbeteringen in 116 dat we er een blogpost over hebben geschreven. Chrome 116 is vanaf 19 juli in bèta.
Blogpost: Wat gebeurt er in Chrome-extensies
We hebben zojuist een overzicht gepubliceerd van de wijzigingen en verbeteringen aan extensies van dit jaar. Het bericht bespreekt de grote nieuwe functies van het jaar, waaronder de Side Panel API, verbeteringen voor servicemedewerkers en offscreen-documenten. U krijgt ook een voorproefje van waar we dit kwartaal aan werken. Het artikel bevat nog veel meer, met links naar alles.
Nieuwe richtlijnen en voorbeelden: leer hoe u Google Analytics 4 gebruikt in uw Chrome-extensie
We hebben nieuwe richtlijnen en voorbeelden voor Google Analytics en geolocatie gepubliceerd:
- Een bijgewerkte versie van onze Google Analytics-richtlijnen waarin wordt uitgelegd hoe u Google Analytics 4 kunt gebruiken in uw Chrome-extensie. We hebben ook een werkend Google Analytics 4-voorbeeld toegevoegd aan onze Github-voorbeeldopslagplaats. Kijk op
google-analytics.js
voor de relevante code gerelateerd aan Google Analytics. - Een nieuwe gids voor geolocatie en drie voorbeelden die laten zien hoe u toegang krijgt tot geolocatie in servicemedewerkers, inhoudsscripts, pop-ups en zijpanelen.
Chrome 115: geef meerdere redenen op in chrome.offscreen.createDocument()
U kunt nu meerdere reason
opgeven bij het aanroepen van chrome.offscreen.createDocument()
. Gebruik dit wanneer een document buiten het scherm voor meerdere doeleinden wordt gebruikt. De browser gebruikt de opgegeven redenen om de levensduur van het offscreen-document te bepalen.
Nieuwe tool: Testtool voor extensie-updates
We hebben zojuist de Extension Update Testing Tool uitgebracht, een lokale updateserver voor extensies die kan worden gebruikt voor het testen van updates voor Chrome-extensies tijdens lokale ontwikkeling, inclusief het verlenen van toestemming. De tool toont het updateproces van de gebruiker, inclusief het uitgeschakeld houden van een extensie totdat een gebruiker nieuw aangevraagde machtigingen verleent. Deze tool is met name handig voor het simuleren van de gevraagde toestemmingswijzigingen bij het updaten van een extensie van Manifest V2 naar Manifest V3.
Chrome 114: Nieuwe zijpaneel-API
Introductie van de nieuwe Side Panel API, een begeleidend oppervlak waarmee gebruikers toegang hebben tot tools naast de inhoud die ze bekijken. Ga voor meer informatie naar de Side Panel API-referentie . Daarnaast hebben we veel zijpaneelvoorbeelden toegevoegd aan onze GitHub-voorbeeldrepository . We delen ook meer over zijpanelen in de nieuwe blogpost Een superieure gebruikerservaring ontwerpen met de nieuwe zijpanelen-API . Ons beleid inzake kwaliteitsrichtlijnen en best practices zijn ook herzien om verdere richtlijnen te bieden voor het maken van hoogwaardige zijpaneelverlengingen.
Uw feedback is belangrijk bij het ontwikkelen van deze API; deel uw mening en functieverzoeken in de chroomgroepen . Houd ons in de gaten voor nieuwe updates terwijl we de Side Panel API blijven verbeteren.
Nieuwe voorbeelden: WASM in extensies
Er zijn twee nieuwe voorbeelden beschikbaar die laten zien hoe u WASM in een extensie kunt gebruiken:
- WASM gebruiken in Manifest V3 toont de algemene methode voor het opnemen van een WASM-module.
- Het gebruik van WASM als module in Manifest V3 laat zien hoe u het in een module kunt gebruiken.
Speciale dank aan GitHub-bijdrager @daidr voor deze voorbeelden.
Bijgewerkte richtlijnen voor Manifest V3-migratie
We hebben het gedeelte Bekende problemen van onze Manifest V3-migratierichtlijnen bijgewerkt met een bijgewerkte lijst met gaten in het uitbreidingsplatform die we willen dichten voordat we een nieuwe tijdlijn voor de beëindiging van Manifest V2 aankondigen.
Audio en video opnemen met Manifest V3
We hebben zojuist een nieuw artikel gepubliceerd met de titel Audio-opname en schermopname , waarin wordt beschreven hoe u audio of video kunt opnemen vanaf een tabblad, venster of scherm in Manifest V3. In dit artikel worden meerdere benaderingen voor het opnemen beschreven, waarbij gebruik wordt gemaakt van de chrome.tabCapture
API en de functie getDisplayMedia()
.
Chrome 114: verhoogd opslag- en lokaal quotum
We hebben het quotum voor de eigenschap storage.local
verhoogd tot ongeveer 10 MB. Dit is overeengekomen in de Web Extensions Community Group . Dit brengt storage.local
in lijn met storage.session
die is gewijzigd in Chrome 112.
Nieuwe handleiding en hulp voor extensieservicemedewerkers
Servicemedewerkers vormen een integraal onderdeel van Chrome-extensies. We hebben zojuist een tutorial gepubliceerd waarin de basisprincipes van registratie, foutopsporing en interactie met servicemedewerkers worden uitgelegd. We hebben ook een nieuwe handleiding voor servicemedewerkers toegevoegd waarin belangrijke concepten gedetailleerder worden uitgelegd. We zullen deze sectie de komende maanden uitbreiden.
Meer tips voor het oplossen van problemen bij schendingen van de webwinkel
Om te helpen bij het publiceren in de Chrome Web Store hebben we op twee gebieden nieuwe richtlijnen toegevoegd. Richtlijnen voor minimale functionaliteit zijn erop gericht gebruikers voordelen te bieden en hun browse-ervaring te verrijken. De richtlijnen voor partneradvertenties zijn bedoeld om gebruikers bewust te maken van extensies met behulp van partnerlinks of codes voor het genereren van inkomsten, en om hen enige controle te geven door actie van de gebruiker te vereisen voordat deze worden opgenomen.
Nieuwe instructies voor de Extension Manifest Converter
We hebben de README voor de Extension Manifest Converter herschreven, zodat u gemakkelijker kunt zien wat u moet doen nadat u de tool hebt uitgevoerd. De converter helpt bij het migreren van extensies die op Manifest V2 zijn gebouwd naar Manifest V3. De nieuwe README beschrijft wat de tool doet met woorden die nauw overeenkomen met die in de checklist van de migratiegids . De converter doet niet alles, maar elimineert wel veel taken waarvoor geen menselijk oordeel nodig is.
Chrome 113: nieuwe redenen voor documenten buiten het scherm
We hebben twee nieuwe redentypen toegevoegd aan de Offscreen Documents API. Gebruik LOCAL_STORAGE
om toegang te krijgen tot de localStorage API van het webplatform. Gebruik WORKER
bij het maken van webworkers.
Google Analytics 4 nu in het ontwikkelaarsdashboard
Het Chrome Web Store Developer Dashboard ondersteunt nu Google Analytics 4 (GA4). We hebben het instellen van Google Analytics vereenvoudigd en het toegangsbeheer voor groepsuitgevers eenvoudiger gemaakt. Als u eerder Google Universal Analytics heeft gebruikt om uw winkelvermeldingsactiviteit bij te houden, moet u vóór 1 juli 2023 actie ondernemen om ervoor te zorgen dat u gegevens over uw winkelvermelding blijft ontvangen. Zie het bericht over de Chromium Extensions Google Group voor meer informatie.
De File Handling API komt naar ChromeOS
De File Handler API is beschikbaar voor experimenten op ChromeOS in Canary voor versies 112 en 113. Hiermee kunnen extensies op ChromeOS bestanden openen met gespecificeerde MIME-typen en bestandsextensies. Om bestandsverwerking te implementeren, voegt u een set regels toe aan manifest.json
. Deze functie werkt hetzelfde als voor progressieve webapps. Voor meer informatie, zie het artikel elders op deze site.
Bestandsverwerking inschakelen:
- Start Chrome vanaf 112 met behulp van de vlag
--enable-features=ExtensionWebFileHandlers
, beginnend in 112 - Plak vanaf 113
os://flags/#extension-web-file-handlers
in de Chrome-omnibox en selecteer 'Ingeschakeld' in het vervolgkeuzemenu.
We hopen deze functie eind juni in Chrome 115 te lanceren. Houd deze ruimte in de gaten voor updates.
Nieuwe voorbeelden: dynamische declaraties en programmatische injectie
We hebben een nieuw voorbeeld gebouwd voor de chrome.scripting
API. Het demonstreert dynamische declaraties, waarbij een inhoudsscript tijdens runtime wordt geregistreerd, en programmatische injectie, waarbij een script wordt uitgevoerd op een tabblad dat al geopend is.
Nieuwe voorbeelden: gebruiksscenario's voor declaratieve Net Request
Er zijn drie nieuwe voorbeelden beschikbaar die de Declarative Net Request API demonstreren. Elk demonstreert de implementatie van een enkele use case. De eerste laat zien hoe u cookies kunt blokkeren. De overige twee demonstreren het blokkeren en omleiden van URL's.
Chrome 112: verhoogd opslag- en sessiequotum
Vanaf Chrome 112 is het quotum voor de eigenschap storage.session
verhoogd naar ongeveer 10 MB. Dit is overeengekomen in de Web Extensions Community Group: https://github.com/w3c/webextensions/issues/350
Chrome 109: Documenten buiten het scherm
Documenten buiten het scherm zijn nu beschikbaar in Manifest V3-extensies. Deze helpen bij de overgang van achtergrondpagina's naar extensieservicemedewerkers door ondersteuning te bieden voor DOM-gerelateerde functies en API's. Voor meer informatie, lees de blogpost .
Chrome 110: Is een extensie ingeschakeld
De methode chrome.action.isEnabled()
controleert programmatisch of een extensie is ingeschakeld voor een specifiek tabblad. Dit bespaart u het behouden van de ingeschakelde status van uw tabbladen. Deze nieuwe methode gebruikt een tabblad-ID en een verwijzing naar een callback en retourneert een Booleaanse waarde. Er is één beperking: tabbladen die zijn gemaakt met chrome.declarativeContent
retourneren altijd false.
(De naamruimte chrome.action
heeft onlangs nieuwe methoden gekregen om de weergave van extensiebadges te bepalen. Zie Badgekleuren instellen voor meer informatie.)
Chrome 110: Wijziging in time-out voor inactiviteit van servicemedewerkers
Voorheen stopte een medewerker van de uitbreidingsdienst vaak na vijf minuten. We hebben dit gedrag gewijzigd, zodat het meer lijkt op de levensduur van servicemedewerkers op internet. Een medewerker van de uitbreidingsservice wordt uitgeschakeld na dertig seconden inactiviteit of als de verwerking van een enkele activiteit langer dan vijf minuten duurt. Zie Langere levensduur van servicemedewerkers voor meer informatie.
Post: Uitfasering van Manifest V2 onderbreken
De tijdlijnen voor de beëindiging van Manifest V2 worden momenteel herzien en de experimenten die gepland staan voor begin 2023 worden uitgesteld. Lees voor meer informatie de update in de Chrome-extensies Google Group.
Chrome 110: badgekleuren instellen
De naamruimte chrome.action
heeft twee nieuwe methoden om u meer controle te geven over de badges voor uiterlijkextensies. Met de methoden setBadgeTextColor()
en getBadgeTextColor()
kan een extensie de badgetekstkleur van het werkbalkpictogram wijzigen en opvragen. Bij gebruik met setBadgeBackgroundColor
en getBadgeBackgroundColor
kunt u met deze nieuwe methoden ontwerp- en merkconsistentie afdwingen.
Blogpost: Meer details over de transitie naar Manifest V3
We hebben de tijdlijn voor de beëindiging van Manifest V2 verduidelijkt . De Manifest V2-ondersteuningstijdlijn is ook bijgewerkt om deze informatie weer te geven.
Documentenupdate: bekende problemen bij het migreren naar Manifest V3
We hebben een lijst samengesteld met de belangrijkste functies die momenteel in ontwikkeling zijn en met openstaande bugs . Ons doel met deze pagina is om ontwikkelaars te helpen de huidige status van het platform beter te begrijpen en welke functies ze kunnen targeten terwijl ze zich voorbereiden op de toekomst.
Chrome Web Store: upload van afbeelding 'grote promotietegel' verwijderd
Chrome Web Store heeft de "Large Promo Tile" -UI verwijderd van het tabblad Item Store Listing in het Dashboard van de ontwikkelaar. Deze wijziging heeft geen invloed op de eindgebruikerservaring omdat deze afbeeldingen niet in de gebruikersinterface van de consument werden gebruikt. Zie deze chromium-uitbreidingsbericht voor meer informatie.
Chrome 106: Sta pagina's toe in bestand: // URL's om toegang te krijgen tot webtoegankelijke bronnen
Ondoorzame oorsprong zoals sandboxed iframes en dynamische import moeten ook toegang hebben tot webtoegankelijke bronnen, volgens CRBUG.com/1219825#c11 .
Chrome 106: Bug opgelost met onjuiste definitieve argumenten over sommige async -API -functies
Eerder zou manifest V3 -oproepende ASYNC API's een ongeldig definitief argument kunnen bieden en zou Chrome niet fout. Met deze fix zal Chrome nu correct fout en meldt dat er geen bijpassende handtekening was. Ontwikkelaars worden aangemoedigd om hun extensies op Canary te controleren op eventuele fouten in het geval ze per ongeluk een onjuiste handtekening gebruiken voor een API -oproep die wordt verbroken door deze bugfix.
Blogbericht: Chrome Web Store Analytics Normen
Chrome Web Store heeft een vernieuwde ervaring van itemsanalyses voor het Chrome Web Store Developer Dashboard. Het nieuwe dashboard is in één oogopslag gemakkelijker te begrijpen en consolideert vooraf de meest nuttige informatie. Lees het blogbericht voor meer informatie.
Chrome 105: beloften voor de identiteit API
Functies op de identiteits -API ondersteunen nu op belofte gebaseerde oproepen. Dit komt met een lichte wijziging in de oppervlakte voor identity.getAuthToken()
, waarbij de asynchrone return is ingesteld op een belofte gebaseerde oproep "token" en "toegekende scopes" als parameters op een enkel object (in tegenstelling tot de callback -versie die ze ontvangt die ze ontvangt die ze ontvangt die ze ontvangt die ze ontvangt die ze ontvang als afzonderlijke argumenten voor de callback).
Chrome 104: Nieuwe Favicons API voor manifest V3
Manifest V3-extensies hebben nu toegang tot Favicons met behulp van een nieuw URL-patroon: chrome-extension://<id>/_favicon/
, waarchrome://favicons
API. Zie de Favicon API -documenten voor meer informatie.
Documentenupdate: Developer Trader/Non-Trader Openbaarmaking
De identificatie van de handelaar/niet-Trader-ontwikkelaars toegevoegd die ontwikkelaars informeert om hun handelaar/niet-trader status nauwkeurig te verklaren.
Chrome 103: Wasme in manifest V3 vereist wasm-unsafe-eval
Chrome verleent geen extensies script-src: wasm-unsafe-eval
standaard. Extensies die webassembly gebruiken, moeten nu deze richtlijn en waarde expliciet toevoegen aan extension_pages
in hun content_security_policy
-verklaringen.
Chrome 103: Veranderende MV3 -snelkoppelingen worden onmiddellijk van kracht
Bij het wijzigen van de sneltoets van een manifest V3 -extensie op chrome://extensions/shortcuts
, worden updates nu onmiddellijk toegepast. Eerder zou de extensie opnieuw moeten worden geladen voordat de wijziging van kracht zou worden.
Chrome 102: Dynamische inhoudscripts in de hoofdwereld
Dynamisch geregistreerde inhoudscripts kunnen nu de wereld opgeven waarin activa zullen worden geïnjecteerd. Zie scripting.registerContentScripts()
voor meer informatie.
Chrome 102: Nieuw manifest veld "Optional_Host_Permissions"
Manifest V3 -extensies kunnen nu de optional_host_permissions
-toets in manifest.json opgeven. Hierdoor kunnen manifeste V3 -extensies optionele matchpatronen voor hosts verklaren, net zoals manifest V2 -extensies kunnen gebruiken om de optional_permissions
te gebruiken.
Chrome 102: InjectiMMedage -eigenschap in scripting.executescript ()
chrome.scripting.executeScript()
accepteert nu een optionele injectImmediately
-eigenschap over het injection
. Indien aanwezig en ingesteld op true, zal het script zo snel mogelijk in het doel injecteren, in plaats van te wachten op document_idle
. Merk op dat dit geen garantie is dat het script zal injecteren voordat de pagina wordt geladen, omdat de pagina blijft laden terwijl de API -oproep wordt gedaan.
Chrome 102: Omnibox API -ondersteuning in manifest V3
De Omnibox API kan nu worden gebruikt in op servicemedewerkers gebaseerde extensies. Eerder zouden sommige van deze API's methoden aanroeping doen vanwege interne afhankelijkheden van DOM -mogelijkheden.
Chrome 102: wasm-unsafe-eval toegestaan in manifest V3 CSP
Manifest V3-extensies kunnen nu wasm-unsafe-eval
opnemen in hun content_security_policy
verklaringen. Met deze wijziging kunnen manifeste V3 -extensies WebAssembly gebruiken.
Chrome 102: Nieuwe opslag.sessie API
Manifest V3 -extensies kunnen nu gebruiken in opslag van geheugenopslag.
Documenten Update: Chrome Web Store Item Discovery
Discovery on Chrome Web Store geeft een overzicht van hoe gebruikers items vinden in de Chrome Web Store en hoe onze editors items selecteren om te worden weergegeven.
Chrome 101: Verbeterde DeclarativenTeRequest -domeinomstandigheden
DeclarativenTeRequest -regelvoorwaarden zijn bijgewerkt om uitbreidingen toe te staan om aanvragen beter te richten op basis van het "verzoek" van de aanvraag "en" initiator "-domeinen. De relevante voorwaarde -eigenschappen zijn initiatorDomains
, excludedInitiatorDomains
, requestDomains
en excludedRequestDomains
. Zie ook deze chromium-extensions-thread .
Chrome 100: opgelost probleem met scripting.executescript () op nieuw gemaakte tabbladen
Een langdurig probleem opgelost waarbij het aanroepen van scripting.executeScript()
op een nieuw gemaakt tabblad of venster zou kunnen mislukken.
Chrome 100: Native Messaging Port houdt servicerwerker levend
Verbinding maken met een native berichtenhost met behulp van chrome.runtime.connectNative()
in de servicearbeider van een verlenging moet de servicemedewerker levend houden zolang de poort open is.
Chrome 100: Omnibox.setDefaultSuggestion () ondersteunt beloften en callbacks
De methode omnibox.setDefaultSuggestion()
retourneert nu een belofte of accepteert een callback om ontwikkelaars in staat te stellen te bepalen wanneer de suggestie correct is ingesteld.
Chrome 100: i18n.getMessage () Ondersteuning bij extensieservice -werknemers
De API chrome.i18n.getMessage()
wordt nu ondersteund in contexten van extensieservice.
Chrome 99: match_origin_as_fallback in Canary
Content scripts kunnen nu de match_origin_as_fallback
-toets opgeven om te injecteren in frames die gerelateerd zijn aan een bijpassend frame, inclusief frames met about:
, data:
, blob:
en filesystem:
URL's. Zie de documentatie van de inhoudscripts voor meer informatie.
Chrome 99: Ondersteuning van de extensieservice voor bestand: schema's in Canary
Op servicemedewerker gebaseerde manifest V2 en manifest V3 -extensies kunnen nu de fetch API gebruiken om file:
-Scheme URL's. Toegang tot file:
-Scheme URL's vereist nog steeds dat de gebruiker 'toegang tot bestands -URL's toestaat' voor de extensie op de pagina chrome://extensions
.
Chrome 99: Promise Support for Messaging API's in Canary
Belofteondersteuning is toegevoegd aan tabs.sendMessage
, runtime.sendMessage
en runtime.sendNativeMessage
voor extensies gebouwd voor manifest V3.
Documentenupdate: documentatie van Chrome Web Store Review
Een nieuwe referentiepagina toegevoegd die een overzicht biedt van het Chrome Web Store Review -proces en legt uit hoe de handhaving van het ontwikkelaarsprogramma -beleid wordt afgehandeld.
Chrome 98: scripting.executescript () en scripting.insertcss () accepteren meerdere bestanden
De methoden executeScript()
en insertCSS()
van de Scripting API accepteren nu meerdere bestanden. Eerder vereisten deze methoden een array met een enkele bestandsvermelding.
Documentenupdate: updates van het oplossen van schending oplossen
De pagina Problemen oplossen Chrome Web Store -overtredingen is bijgewerkt om ontwikkelaars meer gedetailleerde richtlijnen te bieden om veel voorkomende redenen voor afwijzing.
Chrome 96: uitgebreide belofteondersteuning aan 27 meer API's
Deze release bevat aanzienlijk meer belofte -updates dan elke eerdere release. Updates omvatten zowel algemene als chromeos-specifieke extensies API's. Vouw de volgende secties uit voor details.
Extensions API's
Een aantal API's ondersteunen nu beloften in manifest V3.
-
chrome.browsingData
-
chrome.commands
-
chrome.contentSettings
-
chrome.debugger
-
chrome.downloads
-
chrome.enterprise.hardwarePlatform
-
chrome.fontSettings
-
chrome.history
-
chrome.instanceID
-
chrome.permissions
-
chrome.processes
-
chrome.search
-
chrome.sessions
-
chrome.topSites
Ook ondersteunen API's die het ChromeSetting
-prototype gebruiken nu ook beloften. De volgende API's worden beïnvloed door deze wijziging.
Chromeos API's
-
chrome.certificateProvider
-
chrome.documentScan
-
chrome.enterprise.deviceAttributes
-
chrome.enterprise.networkingAttributes
-
chrome.fileBrowserHandler
-
chrome.fileSystemProvider
-
chrome.loginState
-
chrome.printingMetrics
-
chrome.wallpaper
Chrome 96: Dynamische inhoudscripts
De chrome.scripting
API ondersteunt nu het registreren , bijwerken , niet -registreren en krijgen van een lijst met contentscripts tijdens runtime. Eerder konden inhoudscripts alleen statisch worden verklaard in de manifest van een extensie. JSON of programmatisch geïnjecteerd tijdens runtime met chrome.scripting.executeScript()
.
Documenten Update: Manifest V2 Support Timeline
De manifest V2 naar V3 -overgangstijdlijn werd aangekondigd in deze blogpost en een meer gedetailleerde tijdlijnpagina werd gepubliceerd.
Chrome 96: DeclarativenTrequestWithHostaccess -toestemming
Met de nieuwe declarativeNetRequestWithHostAccess
-toestemming kunnen extensies de chrome.declarativeNetRequest
gebruiken. DeclarativenTeRequest API op locaties waarvoor de extensie hostrechten heeft. Dit maakt ook bestaande manifest V2-extensies mogelijk die gebruik maken van webRequest
, webRequestBlocking
en site-specifieke hostvergunning om te migreren naar de chrome.declarativeNetRequest
API zonder dat de gebruiker nieuwe machtigingen goedkeurt.
Chrome 95: Injecteren scripts rechtstreeks in pagina's
De methode chrome.scripting
API's executeScript()
kan nu scripts rechtstreeks in de hoofdwereld van een pagina injecteren. Eerder konden extensies alleen rechtstreeks in de geïsoleerde wereld van de extensie injecteren. Zie de documentatie over content scripts voor meer informatie over geïsoleerde werelden.
Chrome 95: Promise Support for Storage API
Methoden op de manifest V3 -versie van de chrome.storage
API retourneren nu beloften.
Beleidsupdate: handhaving van twee stappenverificatie
Het Beleid Update -blogpost gepubliceerd op 29 juni 2021 is bijgewerkt om de tijdlijn van de twee stappenverificatie te corrigeren.
Chrome 94: Declarative Net Request Statische regelsetwijzigingen
De chrome.declarativeNetRequest
ondersteunt nu het opgeven van maximaal 50 statische regelsets ( max_number_of_static_rulesets ) en het inschakelen van maximaal 10 regelsets ( max_number_of_enabled_static_rulesets ).
Chrome 93: Ondersteuning van kruising isolatie
Zowel manifest V2- als manifest V3 -extensies kunnen nu kiezen voor kruising isolatie . Deze functie beperkt welke cross-origin bronnen de pagina's van een extensie kunnen laden en maakt het gebruik van lage webplatformfuncties zoals SharedArrayBuffer
mogelijk. Opt -in is vereist vanaf Chrome 95.
Beleidsupdate: beleid voor ontwikkelaarsprogramma's bijgewerkt
Het beleid van het Chrome Web Store Developer Program is bijgewerkt met verduidelijkingen voor de misleidende installatietactieken, spam en repetitieve inhoudsbeleid. Deze update bevat ook een nieuwe vereiste voor twee stappen om te publiceren in de Chrome Web Store. Lees het blogbericht voor meer informatie.
Blogbericht: uitbreidingsacties in manifest V3
Chrome -extensies hadden chrome.browserAction
en chrome.pageActions
API's al jaren, maar manifest V3 vervangen beide door een generiek chrome.actions
API. Dit bericht onderzoekt de geschiedenis van deze API's en wat is veranderd in manifest V3. Lees het bericht .
Blogbericht: Introductie van Chrome.Scripting
De chrome.scripting
API is een nieuwe manifest V3 API gericht op, nou ja, scripting. In dit bericht graven we in de motivaties voor deze verandering en bekijken we de nieuwe mogelijkheden van de nieuwe mogelijkheden. Lees het bericht .
Chrome 92: Module Service Worker Support
Chrome ondersteunt nu JavaScript -modules bij servicemedewerkers. Om een module een module in uw manifest op te geven:
"background": {
"service_worker": "script.js",
"type": "module"
}
Dit laadt het werkerscript als een ES -module, waarmee u het import
-trefwoord in het script van de werknemer kunt gebruiken om andere modules te importeren.
Chrome 91: Chrome.Action.GetUsersettings ()
Met de methode nieuwe chrome.action.getUserSettings()
kunnen extensies kunnen bepalen of de gebruiker de extensie op de hoofdwerkbalk heeft vastgemaakt.
Chrome 90: Chrome.Scripting.Removecss ()
Met de methode nieuwe chrome.scripting.removeCSS()
kunnen extensies CSS verwijderen die eerder is ingevoegd via chrome.scripting.insertCSS()
. Het vervangt chrome.tabs.removeCSS()
.
Chrome 90: Returning beloften van scripting.executescript ()
chrome.scripting.executeScript()
ondersteunt nu retournerende beloften. Als de resulterende waarde van de scriptuitvoering een belofte is, zal Chrome wachten tot de belofte zich vestigt en de resulterende waarde retourneert.
Chrome 90: chrome.scripting.executescript () Resultaten omvatten frameID
Resultaten geretourneerd van chrome.scripting.executeScript()
omvatten nu de frameID . De eigenschap frameId
geeft het frame aan dat het resultaat afkomstig is, waardoor extensies de resultaten eenvoudig kunnen associëren met de afzonderlijke frames bij het injecteren in meerdere frames.
Chrome 89: Nieuwe API voor het beheren van tab -groepen
The New chrome.tabGroups
API en nieuwe mogelijkheden in chrome.tabs
laten extensies Tab -groepen lezen en manipuleren. Vereist manifest V3.
Chrome 89: aanpasbare machtigingen voor webtoegankelijke bronnen
Definities van webtoegankelijke bronnen in manifest V3 zijn gewijzigd om extensies de toegang tot de resource te laten beperken op basis van de oorsprong of extensie -ID van de aanvrager.
Blogbericht: Extension Manifest Converter
Het Chrome Extensions -team heeft open "Extension Manifest Converter", een Python -tool dat enkele van de mechanische aspecten van het converteren van extensies automatiseert om V3 te manifesteren. Zie het blogbericht van de aankondiging en haal het van GitHub .
Chrome 88: Manifest V3 Algemene beschikbaarheid
Manifest V3 is een belangrijke update voor het extensiesplatform; Zie overzicht van manifest V3 voor een samenvatting van nieuwe en gewijzigde functies. Extensies kunnen voorlopig manifest V2 blijven gebruiken, maar dit zal in de nabije toekomst worden afgebouwd. We raden u ten zeerste aan om manifest V3 te gebruiken voor nieuwe extensies en begint met het migreren van bestaande extensies om V3 zo snel mogelijk te manifesteren.
,Controleer deze pagina vaak om meer te weten te komen over wijzigingen in Chrome Extensions, Extensions -documentatie of gerelateerd beleid of andere wijzigingen. U vindt andere kennisgevingen die zijn geplaatst op de extensies Google Group . Het Chrome -schema geeft een overzicht van stabiele en bèta -releasedata.
Chrome 132: Nieuwe bevroren eigenschap in Tabs API
Beginnend in Chrome 132, geeft de frozen
eigenschap in de tabs API aan of een tabblad is bevroren door de browser. Berichten die naar Frozen Tabs worden verzonden, worden in de wachtrij geplaatst en afgehandeld wanneer het tabblad niet wordt opgeveven.
De snelle API in chromen extensies
De snelle API voor extensies is nu beschikbaar in een oorsprongstroef, dus u kunt chrome extensies bouwen die Gemini Nano, ons meest efficiënte taalmodel, in de browser gebruiken.
Word lid van de prompt API Origin -proef, die wordt uitgevoerd in Chrome 131 tot 136 en deel uw feedback. Uw input kan direct invloed hebben op hoe we toekomstige versies van deze API en alle ingebouwde AI API's bouwen en implementeren.
Blogbericht: wat gebeurt er in Chrome Extensions, oktober 2024
Het is tijd voor een nieuwe omloop van wat er gebeurt in Chrome Extensions: we hebben spannende updates over AI -integratie, nieuwe API's, evenementen en video's. Lees er alles over in wat er gebeurt in Chrome Extensions oktober -editie !
Word lid van de ingebouwde AI-uitdaging
Chrome heeft de ingebouwde AI-uitdaging gelanceerd: u wordt uitgenodigd om innovatieve webtoepassingen en Chrome-extensies te maken, met behulp van Chrome's geïntegreerde AI-modellen en API's , en heeft kans om prijzen te winnen die in totaal $ 65.000 USD.
Meld u aan en ontvang meer informatie op de ingebouwde AI Challenge-website . We kunnen niet wachten om te zien wat u maakt wanneer u internet met AI infuseert!
Chrome 130: Action.OnusersettingsChanged
Beginnend in Chrome 130, is het Action.onusersettings -gechanged evenement beschikbaar. Dit volgt op een voorstel in de WebExtensions Community Group. Dank aan Microsoft voor de bijdrage aan Chromium.
Chrome 130: storagearea.getkeys ()
Beginnend in Chrome 130 is de methode getKeys () beschikbaar op de interface van de Storagearea die wordt gebruikt door de chrome.storage
API. Dit volgt op een voorstel in de WebExtensions Community Group.
Chrome 128: Antwoord header matching in declaratief netverzoek
Vanaf Chrome 128 voegen we ondersteuning toe voor het matchen van de responskop in de Declarative Net Request API. Dit was een veel voorkomend verzoek, met name voor het matchen van de koptekst van het inhoudstype, en we hebben een geschikte API ontworpen samen met de WebExtensions Community Group.
We hebben onze API -referentie bijgewerkt met de nieuwe responseHeaders
en excludedResponseHeaders
Fields. U kunt deze gebruiken om te controleren op het bestaan van en waarde van een bepaalde header.
Als onderdeel van deze update hebben we een nieuwe sectie Regelevaluatie toegevoegd aan onze documentatie waarin wordt uitgelegd hoe regels worden gematcht. Vooral voor het matchen van de koptekst kunnen regels pas worden uitgevoerd zodra responskoppen zijn ontvangen, dus worden ze in een later stadium toegepast dan andere regels. Dit betekent dat het verzoek de server bereikt voordat het wordt geblokkeerd of omgeleid.
Video: Wat zijn inhoudscripts?
Meer informatie over inhoudscripts in Chrome -extensies, inclusief hoe CSS en JavaScript te registreren om op een bepaalde pagina te worden uitgevoerd. Bekijk de volledige video .
Belangrijke beleidsupdates
Chrome Web Store Team heeft een reeks updates gepubliceerd voor de pagina met het ontwikkelaarsprogramma dat is ontworpen om de ontwikkeling van producten van hoge kwaliteit aan te moedigen, bedrieglijk gedrag te voorkomen en geïnformeerde toestemming van de gebruikers te waarborgen. Rebecca Soares, de Chrome Web Store Policy Manager, heeft alle updates in Chrome Extensions samengevat: belangrijke blogbericht voor beleidsupdates .
Blogbericht: wat gebeurt er in Chrome Extensions, juli 2024
In de afgelopen drie maanden hebben we verschillende belangrijke updates en nieuwe functies uitgerold, waaronder het begin van manifest V2 -fase -out. Ga op snelheid in wat er gebeurt in Chrome Extensions juli -editie !
Video: Wat is een op afstand gehoste code?
Patrick van het Chrome Extensions -team legt het concept uit van op afstand gehoste code (RHC) in chromen extensies. Leer waarom RHC niet langer is toegestaan, hoe het te detecteren en wat te doen als uw extensie moet worden bijgewerkt. Bekijk de volledige video .
Chrome 127: nieuwe actie. Openpopup API
Beginnend in Chrome 127 is de action.openPopup
API beschikbaar voor alle extensies. Eerder was het alleen beschikbaar in Canary of voor extensies geïnstalleerd door een beleid.
Video: Trust & Safety Team Interview
Het Chrome Extensions Devrel -team ging zitten bij het Trust & Safety Team dat beoordeling leidt in de Chrome Web Store om uw vragen te stellen. Bekijk de volledige video .
Blogbericht: Manifest V2-uitfasering begint
Vanaf 3 juni op de Chrome Beta-, Dev- en Canarische -kanalen, als gebruikers nog steeds manifeste V2 -extensies hebben geïnstalleerd, beginnen sommige een waarschuwingsbanner te zien bij een bezoek V2) extensies die ze hebben geïnstalleerd, worden binnenkort niet langer ondersteund. Lees meer in de officiële aankondiging
Updates naar zijpaneel UI
We hebben onlangs enkele wijzigingen aangebracht in de gebruikersinterface van het zijpaneel, inclusief het toevoegen van een pin -pictogram en het verwijderen van het globale zijpaneelpictogram. Lees meer in de PSA en bekijk onze bijgewerkte documentatie en voorbeelden .
Blogbericht: Chrome Extensions bij Google I/O 2024
Een andere Google I/O staat achter ons en we hebben alle opwindende extensies -updates behandeld! Ga naar YouTube om de volledige video te bekijken en onze blogpost te lezen voor enkele hoogtepunten.
Skip Review voor in aanmerking komende declaratieve netverzoekwijzigingen
Met de Chrome Web Store kunt u nu beoordeling overslaan voor in aanmerking komende wijzigingen bij het gebruik van de declaratieve NET -aanvraag -API. Meer informatie over geschiktheid en hoe u zich kunt aanmelden in de documentatie van Chrome Web Store .
DeployPerCentage beschikbaar in de Chrome Web Store API
We hebben onlangs onze Chrome Web Store API -documentatie bijgewerkt om informatie op te nemen over deployPercentage
, waarmee u een percentage van een gedeeltelijke uitrol -implementatie kunt toewijzen. Meer informatie over deployPercentage
.
Chrome 126: Origin Trials in Extensions
Chrome 126 introduceert een nieuw manifest.json -veld - trial_tokens
, zodat u zich kunt aanmelden voor oorsprongstroeven en afschrijvingen op alle uitbreidingsoppervlakken. Lees de gids voor meer informatie.
Blogbericht: wat gebeurt er in Chrome Extensions-april 2024
We hebben een nieuwe editie gepubliceerd van wat er gebeurt in Chrome Extensions . De post bespreekt waar het extensieteam de afgelopen maanden aan heeft gewerkt. Dit omvat: versie -terugdraaien in de Chrome Web Store, betere ondersteuning voor Firebase Auth en meer API -lanceringen en -updates.
Versie -terugdraaien in het Chrome Web Store Developer Dashboard
Rol uw uitbreiding terug naar de vorige gepubliceerde versie in de Chrome Web Store - zonder extra recensie! Lees de blogpost en documentatie voor meer informatie.
Chrome 124: Geavanceerde documentencan API
Een geavanceerde documentScan
API is nu beschikbaar op ChromeOS om afbeeldingen te ontdekken en op te halen van bijgevoegde documentscanners.
Chrome 124: WebGPU -ondersteuning bij servicemedewerkers
Sinds Chrome 124 ondersteunen servicemedewerkers WebGPU . Bekijk het WebGPU -extensie -voorbeeld voor een snelle start.
Chrome 123: De Events API ondersteunt filtering door CIDR -blokken
De Events API ondersteunt nu filtering door klasseloze interdomein routing (CIDR) blokken. Een CIDR -blok is een verzameling IP -adressen die een netwerkvoorvoegsel en hetzelfde aantal bits delen. Eerder moet een ontwikkelaar die meerdere IP -adressen filteren die nodig zijn om een filterregel te configureren voor elk van de adressen in het blokbereik. Wanneer een extensie addListener()
oproept, betekent een doorgegeven in regel dat de gebeurtenishandler alleen wordt opgeroepen wanneer het hostgedeelte van een URL een IP -adres is en is opgenomen in een van de CIDR -blokken die in een array zijn gespecificeerd.
Chrome Web Store: Updates voor verlengingsnaamlengte Vereisten
In de Chrome Web Store is er nu een universele limiet van 75 tekens voor het veld "name"
van een extensie in de manifest.json. Voorheen was de limiet voor het Engels 45 tekens en was er geen beperking op het veld "name"
op andere locaties.
Dit was oorspronkelijk bedoeld om culturele en taalverschillen mogelijk te maken die mogelijk niet in hetzelfde aantal tekens kunnen worden vastgelegd. Helaas werd deze functie misbruikt door een klein aantal ontwikkelaars om de winkel te spammen. Als gevolg hiervan introduceren we een nieuwe universele limiet, een toename tot 75 tekens. Deze limiet omvat vandaag bijna alle extensies in de winkel, dus het is waarschijnlijk dat u geen actie nodig heeft als gevolg van deze wijziging. Als u probeert een extensie te uploaden met een naam langer dan de maximale limiet, wordt de upload door de winkel geblokkeerd.
Blogbericht: Eyeo's Journey to Testing Service Worker Suspension
In dit bericht per Eyeo's Extension Engine Team onderzoeken we het probleem van het testen van extensieservice -werknemers. In manifest V2 leefden extensies op een achtergrondpagina, die tijdens de levenscyclus van de extensie wakker waren. Manifest V3 gebruikt in plaats daarvan servicewerkers, en servicemedewerkers, door ontwerp, behouden resource door af te sluiten wanneer ze niet nodig zijn. Dit biedt bepaalde testuitdagingen. Dit bericht legt uit hoe Eyeo deze uitdagingen heeft aangepakt .
Chrome 123: Alarmen worden nu uitgevoerd wanneer het apparaat slaapt
Alarmen ingesteld met behulp van de chrome.alarms
API worden niet langer vertraagd wanneer een apparaat in slaap gaat. Wanneer het apparaat wakker wordt, wordt het alarm afgezet, ongeacht hoeveel alarmen zijn gemist. Zeg bijvoorbeeld dat er een alarm is ingesteld om eenmaal per uur af te gaan en het apparaat dat het bevindt, slaapt van 12:55 uur tot 02.05 uur, dan alleen het alarm van 2:00 uur activeert het onAlarm
-evenement. Het zal zo dicht mogelijk bij 2:00 AM vuren, en onmiddellijk wanneer een apparaat wakker wordt als het sliep.
Deze verandering brengt Chrome Inline met het overeengekomen gedrag in de Web Extensions Community Group.
Blogbericht: wijzigingen in BFCache -gedrag met extensieberichtpoorten
Back/Forward Cache (BFCache) is een browseroptimalisatie die onmiddellijk terug en vooruit navigatie mogelijk maakt. Beginnend in Chrome 123, wanneer een pagina met een open extensiepoort wordt opgeslagen in BFCache, is het berichtkanaal gesloten, wat betekent dat er geen berichten naar die pagina worden verzonden. Bijgevolg moeten extensiescripts luisteren naar levenscyclusgebeurtenissen zoals onDisconnect
en een nieuwe verbinding instellen wanneer de pagina wordt hersteld vanuit BFCache.
Zie wijzigingen in BFCache -gedrag voor meer informatie en voorbeeldcode met extensieberichtpoorten .
Chrome 122: Promise Support on Asynchrone Extension API's
We zijn klaar met het implementeren van belofteondersteuning voor alle asynchrone extensie API -methoden. Dit werd gedaan om API -methoden te moderniseren door de ergonomie van het omgaan met asynchrone operaties te verbeteren. Een handvol methoden (bijvoorbeeld desktopCapture.chooseDesktopMedia()
) blijven alleen callbacks ondersteunen omdat hun huidige oppervlakken niet compatibel zijn met beloften. Voor achterwaartse compatibiliteit worden callbacks nog steeds ondersteund. Als u een belofte vindt die mislukt, dient u een bug in .
Nieuwe begeleiding voor realtime communicatie
We hebben zojuist gidsen gepubliceerd over realtime -opties in extensies. Real-time updates bieden een direct communicatiepad van uw servers rechtstreeks naar uw extensie-installaties. Bovendien hebben we nieuwe richtlijnen voor het gebruik van chrome.gcm , web push .
Nieuwe richtlijnen en steekproef: beëindiging van de servicemedewerker testen
We hebben zojuist een gids gepubliceerd over het testen van de beëindiging van de dienstverlener met poppenspeler . Het bijbehorende monster demonstreert dit in poppenspeler en selenium.
Bijgewerkt voorbeeld voor native berichten
We hebben zojuist een bijgewerkt voorbeeld gepubliceerd voor native berichten. Met deze API kan uw extensie beginnen en communiceren met een andere applicatie. Dankzij GitHub-medewerker Shubham-Rasal voor het werk hieraan.
Chrome 121: Nieuwe laatste eigenschap op tabs.tab
Een nieuwe eigenschap genaamd lastAccessed
is toegevoegd aan het tabs.Tab
-object. Deze eigenschap geeft aan wanneer het tabblad voor het laatst is geactiveerd. De geretourneerde waarde is in milliseconden sinds Epoch.
Chrome 121: Niet -ondersteunde "achtergrond" sleutels geven nu een waarschuwing uit
In de verandering van manifest V2 naar manifeste V3, werden kinderen van de "background"
manifeste sleutel gewijzigd om de vervanging van achtergrondscripts door extensieservice -werknemers aan te kunnen. Vroeger zou het toevoegen van de manifest V2 -toetsen "scripts"
, "page"
of "persistent"
aan de "background"
-sleutel van een manifest V3 -extensie een fout gooien. De aanwezigheid van deze toetsen veroorzaakt nu een waarschuwing.
Dit wordt gedaan om het gebruik van een enkel manifestbestand in extensies in meerdere browsers mogelijk te maken, volgens een voorstel in de gemeenschapsgroep .
Chrome 120: Minimale alarmkorreligheid verlaagd tot 30 seconden
Beginnend in Chrome 120, kunnen manifest V3 -extensies de chrome.alarms
API gebruiken met vertragingen of periodes van 30 seconden, in plaats van waarden van 60 seconden of meer te vereisen.
Blogbericht: de overgang hervatten naar manifest V3
De manifest V2 -ondersteuningstijdlijn is bijgewerkt. Zie onze blogbericht van november 2023 voor meer informatie.
Blogbericht: verbeteringen in ondersteuning voor inhoud filteren in manifest V3
Meer informatie over hoe we de DeclarativenTeRequest API hebben verbeterd in onze nieuwe blogpost .
Blogbericht: wat is er nieuw in Chrome 120 voor extensies
Chrome 120 Beta is onlangs uitgebracht. Lees onze nieuwe blogpost voor een samenvatting van de belangrijke updates die relevant zijn voor extensieontwikkelaars: wat is er nieuw in Chrome 120 voor extensies . Deze release markeert ook een belangrijke mijlpaal omdat het de laatste twee items (Userscripts, File Handler op ChromeOS) verwijdert uit de lijst met kritieke platformhiaten .
PSA: wijziging in de behandeling van het privacybeleid -URL's in Develer Dashboard
Het privacybeleid in het Develer -dashboard wordt nu toegevoegd op itemniveau. Hiermee kunt u een ander privacybeleid per item bieden. Lees meer over deze verandering in onze PSA .
Video: een chat met Matt Frisbie
We hebben zojuist een nieuwe video gepubliceerd op het Chrome voor ontwikkelaars YouTube -kanaal die chat met Google Developer Expert en auteur Matt Frisbie. Bekijk het hier .
Nieuwe richtlijnen bij het testen van extensies
We hebben zojuist nieuwe richtlijnen gepubliceerd over het schrijven van geautomatiseerde tests voor extensies, inclusief het schrijven van eenheidstests en zowel algemene begeleiding als een tutorial over end-to-end testen.
Blogbericht: wat gebeurt er in Chrome Extensions - oktober 2023
We hebben zojuist de tweede editie gepubliceerd van wat er gebeurt in Chrome Extensions . De post bespreekt waar het extensieteam de afgelopen maanden aan heeft gewerkt, waaronder het aanpakken van stabiliteitsproblemen van de servicemedewerkers en het goede vooruitgang boeken bij het sluiten van alle MV3 -platformlocaties. We delen ook spannende aankomende API -releases zoals de leeslijst API en de gebruikerscripts API.
Verhoogde statische regelsetlimieten in declaratief netto verzoek API
Na feedback in de communitygroep Web Extensions verhogen we de limiet op ingeschakelde statische regelsets aanzienlijk van 10 tot 50. Bovendien verhogen we het totale aantal toegestane statische regelsets van 50 tot 100. Dit is momenteel beschikbaar in Canary.
Verbeterde richtlijnen rond op afstand gehost code
Een vereiste voor manifest V3 is dat extensies mogelijk niet langer op afstand worden gebruikt. Hoewel dit vanaf het begin deel uitmaakte van onze migratiegids , dachten we dat het de moeite waard was om de begeleiding rond deze kwestie te verbeteren. Die pagina biedt nu meer informatie, die beschrijft wat nog steeds mogelijk is in Manifest V3 en meer informatie verstrekt over strategieën voor het upgraden.
Er is een gerelateerde toevoeging aan het oplossen van problemen met het oplossen van problemen met Chrome . Een nieuwe sectie beschrijft veel voorkomende redenen dat extensies met op afstand gehost code worden afgewezen.
Chrome 118: isurlfilterCaseSgevoelig nu standaard in False
Beginnend in Chrome 118 is de isUrlFilterCaseSensitive
eigenschap in de Chrome.DeclarativenTeRequest API gewijzigd in standaard in false
. Als u het oude gedrag wilt behouden, kunt u expliciet isUrlFilterCaseSensitive
instellen voor true
in uw DeclarativenTeTrequest -regels.
Dit volgt op discussies in de Web Extensions Community Group. Firefox en Safari hebben al een vergelijkbare wijziging geïmplementeerd.
Documentatie over cookies en webopslag API's
We hebben een nieuwe gids gepubliceerd over hoe cookies en webopslag -API's werken in Chrome Extensions . It includes details on cookie and storage partitioning changes in Privacy Sandbox , an ongoing project to deprecate third-party cookies through the creation of a series of new web platform APIs, and details on how they work in extensions.
Extension samples now searchable
We recently created a page that lets you search Chrome extension samples . The search page has multiple options. A search box lets you search for text in sample titles. You can restrict the search by permission or extension API. An additional filter lets you restrict search to either API or functional (use case) samples.
This new sample page was built by a Google Summer of Code participant, Xuezhou Dai, who also contributed several new samples. You can read about their experiences this past summer in their post on our blog .
As before, our code samples are still available on GitHub for cloning or forking.
Chrome 118: Changes to opening file: scheme URLs
Beginning in Chrome 118, extensions will need the "Allow access to file URLs" setting enabled from the chrome://extensions
page to open file:// scheme URLs using the Tabs or Windows APIs. You can programmatically check for this access by calling chrome.extension.isAllowedFileSchemeAccess()
. Firefox already restricts file URLs, and Safari supports the change. For more information, read the post in the extensions Google Group .
Chrome 117: Expanded URL protections on extension API navigations
Previously navigation triggered from extension API calls for tabs.update()
, tabs.create()
, and windows.create()
emitted an error for some chrome:// URLs. Additionally, calling tabs.update()
with a JavaScript URL was forbidden. In 117, these protections on JavaScript URLs have been expanded to the tabs.create()
method and a number of additional chrome:// URLs have been added to the list of forbidden URLs that applies to all of the previously mentioned methods.
Improved guidance for the declarativeNetRequest API
The chrome.declarativeNetRequest
API blocks or modifies network requests by specifying declarative rules. This lets extensions modify network requests without intercepting them and viewing their content, thus providing more privacy to users. It's also tricky to use. With that in mind, we've rewritten the guidance in a way that we think paints a clearer picture of how to implement declarative rulesets. Read the new section at the link above.
Using your Google Analytics account with the Chrome Web Store
The Chrome Web Store offers integration with Google Analytics, which allows you to see analytics for your Chrome Web Store listing in addition to the view offered in the Developer Dashboard. For more information, read Using your Google Analytics account with the Chrome Web Store .
Chrome 115: DevTools steps over content scripts by default
Injected content scripts are now in the DevTools ignore list by default. This doesn't affect breakpoints, but it does mean that content scripts will be stepped over during debugging and exceptions from these scripts will be ignored. When a content script is open in the Sources tab, a banner alerts you if this is on and provides an option to remove your content script from the ignore list. To turn this behavior off, open DevTools, go to Settings then Ignore list . To learn more, see What's new in DevTools .
Chrome 116 beta: More than we can fit here
Chrome 116 is a big release for extensions. You can now open side panels programmatically. A new method lets you learn if there's an active offscreen document. Service workers got serveral improvements. There's enough improvements in 116 that we've written a blog post to cover them . Chrome 116 is in beta as of July 19.
Blog post: What's happening in Chrome Extensions
We've just published an overview of this year's changes and improvements to extensions . The post discusses the year's big new features, including the Side Panel API, service worker enhancements, and offscreen documents. You'll also get a peek at what we're working on for this quarter. The article lists much more, with links to all.
New guidance and sample: Learn how to use Google Analytics 4 in your Chrome extension
We published new Google Analytics and geolocation guidance and samples:
- An updated version of our Google Analytics guidance explaining how you can use Google Analytics 4 in your Chrome extension. We've also added a working Google Analytics 4 sample to our Github sample repository. Check out
google-analytics.js
for the relevant code related to Google Analytics. - A new Geolocation guide and three samples demonstrating how to access geolocation in service workers, content scripts, popups and side panels.
Chrome 115: Specify multiple reasons in chrome.offscreen.createDocument()
You can now specify multiple reason
enums when calling chrome.offscreen.createDocument()
. Use this when an offscreen document will be used for multiple different purposes. The browser uses the supplied reasons to determine the lifetime of the offscreen document.
New tool: Extension Update Testing Tool
We've just released the Extension Update Testing Tool , a local extension update server that can be used for testing updates to Chrome Extensions during local development, including permission grants. The tool shows the user's update flow, including keeping an extension disabled until a user grants any newly requested permissions. This tool is particularly useful for simulating the permission changes requested when updating an extension from Manifest V2 to Manifest V3.
Chrome 114: New Side Panel API
Introducing the new Side Panel API, a companion surface that allows users to access tools alongside the content they are browsing. To learn more, visit the Side Panel API reference . Additionally, we've added many side panel samples to our GitHub sample repository . We also share more about side panels in the new blog post Designing a Superior User Experience with the New Side Panel API . Our quality guidelines policy and best practices have also been reviewed to provide further guidance on creating high-quality side panel extensions.
Your feedback is important in crafting this API; please share your thoughts and feature requests in the chromium-groups . Stay tuned for new updates as we continue to enhance the Side Panel API.
New Samples: WASM in extensions
There are two new samples available that demonstrate how to use WASM in an extension:
- Using WASM in Manifest V3 shows the general method for including a WASM module.
- Using WASM as a module in Manifest V3 shows how to use it in a module.
Special thanks to GitHub contributor @daidr for these samples.
Updated Manifest V3 migration guidance
We've updated the Known Issues section of our Manifest V3 migration guidance with an updated list of extension platform gaps that we intend to close before announcing a new Manifest V2 deprecation timeline.
Recording audio and video with Manifest V3
We've just published a new article called Audio recording and screen capture , which covers recording audio or video from a tab, window, or screen in Manifest V3. This article describes multiple approaches to recording involving the chrome.tabCapture
API and the getDisplayMedia()
function.
Chrome 114: Increased storage.local quota
We have increased the quota for the storage.local
property to approximately 10 MB. This was agreed to in the Web Extensions Community Group . This brings storage.local
in line with storage.session
which was changed in Chrome 112.
New extension service worker tutorial and help
Service Workers are an integral part of Chrome Extensions. We just published a tutorial explaining the basics of registering, debugging, and interacting with Service Workers. We've also added a new Service worker guide explaining important concepts in more detail. We'll be expanding this section in the coming months.
More troubleshooting tips for Web Store violations
To help with Chrome Web Store publishing, we added new guidance in two areas. Guidance for minimum functionality centers around providing users with benefits and enriching their browsing experience. Guidance for affiliate ads is about making users are aware of extensions using affiliate links or codes for monetization, and giving them some amount of control by requiring user action before inclusion.
New instructions for the Extension Manifest Converter
We've rewritten the README for the Extension Manifest Converter to make it easier to see what you need to do after running the tool. The converter helps helps migrate extensions built on Manifest V2 to Manifest V3. The new README describes what the tool does using words that closely match those in the migration guide's checklist . The converter doesn't do everything, but it does eliminate many tasks that don't require a human judgement call.
Chrome 113: New reasons for offscreen documents
We have added two new reason types to the Offscreen Documents API. Use LOCAL_STORAGE
to access the web platform's localStorage API. Use WORKER
when creating web workers.
Google Analytics 4 now in the Developer Dashboard
The Chrome Web Store Developer Dashboard now supports Google Analytics 4 (GA4). We've simplified setting up Google Analytics and made access management for group publishers more straightforward. If you previously used Google Universal Analytics to track your store listing activity, you will need to take action by July 1, 2023 to ensure that you continue receiving data about your store listing. For more information, see the post on the Chromium Extensions Google Group .
The File Handling API comes to ChromeOS
The File Handler API is available for experimentation on ChromeOS in Canary for versions 112 and 113. It lets extensions on ChromeOS open files with specified MIME types and file extensions. To implement file handling add a set of rules to the manifest.json
. This feature works the same as for Progressive web apps. For more information, see the article elsewhere on this site.
To enable file handling:
- Starting in 112, launch Chrome using the
--enable-features=ExtensionWebFileHandlers
flag, starting in 112 - Starting in 113, paste
os://flags/#extension-web-file-handlers
into the Chrome omnibox and select 'Enabled' from the dropdown menu.
We hope to launch this feature in Chrome 115, in late June. Watch this space for updates.
New Samples: dynamic declarations and programmatic injection
We've built a new sample for the chrome.scripting
API. It demonstrates dynamic declarations, where a content script is registered at runtime, and programmatic injection, where a script is executed in a tab that is already open.
New Samples: Declarative Net Request use cases
Three new samples are available demonstrating the Declarative Net Request API . Each demonstrates implementation of a single use case. The first shows how to block cookies. The remaining two demonstrate blocking and redirecting URLs.
Chrome 112: Increased storage.session quota
From Chrome 112, the quota for the storage.session
property has been increased to approximately 10 MB. This was agreed to in the Web Extensions Community Group: https://github.com/w3c/webextensions/issues/350
Chrome 109: Offscreen documents
Offscreen documents are now available in Manifest V3 extensions. These help with the transition from background pages to extension service workers by providing support for DOM-related features and APIs. For more information, read the blog post .
Chrome 110: Is an extension enabled
The chrome.action.isEnabled()
method programmatically checks whether an extension has been enabled for a specific tab. This saves you from maintaining the enabled state of your tabs. This new method takes a tab ID and a reference to a callback and returns a boolean. It has one limitation: tabs created using chrome.declarativeContent
always return false.
(The chrome.action
namespace recently got new methods for controlling the appearance of extension badges. For more information, see Setting badge colors .)
Chrome 110: Change in service worker idle timeout
Previously, an extension service worker would frequently shut down at the five minute mark. We've changed this behavior to more closely resemble service worker lifetime's on the web. An extension service worker will be shut down after either thirty seconds of inactivity or if a single activity takes longer than 5 minutes to process. For more information, see Longer extension service worker lifetimes .
Post: Pausing Manifest V2 phase-out
The Manifest V2 deprecation timelines are under review and the experiments scheduled for early 2023 are being postponed. For more information, read the update in the chromium-extensions Google Group.
Chrome 110: Setting badge colors
The chrome.action
namespace has two new methods to give you more control over the appearance extension badges. The setBadgeTextColor()
and getBadgeTextColor()
methods allow an extension to change and query its toolbar icon's badge text color. When used with setBadgeBackgroundColor
and getBadgeBackgroundColor
these new methods let you enforce design and brand consistency.
Blog post: More details on the transition to Manifest V3
We have clarified the Manifest V2 deprecation timeline . The Manifest V2 support timeline has also been updated to reflect this information.
Docs update: Known issues when migrating to Manifest V3
We've put together a list of major features currently in development and open bugs . Our goal with this page is to help developers better understand the current state of the platform and what features they can target as they prepare for the future.
Chrome Web Store: "large promo tile" image upload removed
Chrome Web Store has removed the "large promo tile" upload UI from the item Store Listing tab in the developer dashboard. This change does not affect the end user experience as these images were not used in the consumer UI. See this chromium-extensions post for additional details.
Chrome 106: Allow pages on file:// urls to access web accessible resources
Opaque origins such as sandboxed iframes and dynamic import should also be able to access web accessible resources, according to crbug.com/1219825#c11 .
Chrome 106: Fixed bug allowing incorrect final arguments on some async API functions
Previously, Manifest V3 calling async APIs could provide an invalid final argument and Chrome would not error. With this fix Chrome will now correctly error and report that there was no matching signature. Developers are encouraged to check their extensions on Canary for any errors in case they accidentally using incorrect signature for an API call that will be broken by this bug fix.
Blog post: Chrome Web Store analytics revamp
Chrome Web Store has a revamped item analytics experience for the Chrome Web Store Developer Dashboard. The new dashboard is easier to understand at a glance and consolidates the most useful information up front. Read the blog post for more information.
Chrome 105: promises for the Identity API
Functions on the Identity API now support promise based calls. This comes with a slight change to the surface for identity.getAuthToken()
, where the asynchronous return set to a promise based call will have "token" and "grantedScopes" as parameters on a single object (as opposed to the callback version receiving them as separate arguments to the callback).
Chrome 104: New favicons API for Manifest V3
Manifest V3 extensions can now access favicons using a new URL pattern: chrome-extension://<id>/_favicon/
, wherechrome://favicons
API. See the Favicon API docs for more information.
Docs update: Developer trader/non-trader disclosure
Added the trader/non-trader developer identification that informs developers to accurately self-declare their trader/non-trader status.
Chrome 103: Wasm in Manifest V3 requires wasm-unsafe-eval
Chrome no longer grants extensions script-src: wasm-unsafe-eval
by default. Extensions that use WebAssembly must now explicitly add this directive and value to extension_pages
in their content_security_policy
declarations.
Chrome 103: Changing MV3 shortcuts take effect immediately
When changing a Manifest V3 extension's keyboard shortcut on chrome://extensions/shortcuts
, updates are now applied immediately. Previously the extension would have to be reloaded before the change would take effect.
Chrome 102: Dynamic content scripts in main world
Dynamically registered content scripts can now specify the world that assets will be injected into. See scripting.registerContentScripts()
for details.
Chrome 102: New manifest field "optional_host_permissions"
Manifest V3 extensions can now specify the optional_host_permissions
key in manifest.json. This allows Manifest V3 extensions to declare optional match patterns for hosts just as Manifest V2 extensions could using the optional_permissions
key.
Chrome 102: injectImmediately property in scripting.executeScript()
chrome.scripting.executeScript()
now accepts an optional injectImmediately
property on it's injection
argument. If present and set to true, the script will inject into the target as soon as possible, rather than waiting for document_idle
. Note that this is not a guarantee the script will inject before the page is loaded since the page continues to load while the API call is being made.
Chrome 102: Omnibox API support in Manifest V3
The Omnibox API can now be used in service worker-based extensions. Previously, some of this API's methods would throw on invocation due to internal dependencies on DOM capabilities.
Chrome 102: wasm-unsafe-eval allowed in Manifest V3 CSP
Manifest V3 extensions can now include wasm-unsafe-eval
in their content_security_policy
declarations. This change allows Manifest V3 extensions to use WebAssembly.
Chrome 102: New storage.session API
Manifest V3 extensions can now use in memory storage storage.session .
Docs update: Chrome Web Store item discovery
Discovery on Chrome Web Store gives an overview of how users find items on the Chrome Web Store and how our editors select items to feature.
Chrome 101: Improved declarativeNetRequest domain conditions
declarativeNetRequest rule conditions have been updated to allow extensions to better target requests based on the request's "request" and "initiator" domains. The relevant condition properties are initiatorDomains
, excludedInitiatorDomains
, requestDomains
, and excludedRequestDomains
. See also this chromium-extensions thread .
Chrome 100: Resolved issue with scripting.executeScript() on newly created tabs
Fixed a longstanding issue where calling scripting.executeScript()
on a newly created tab or window could fail.
Chrome 100: native messaging port keeps service worker alive
Connecting to a native messaging host using chrome.runtime.connectNative()
in an extension's service worker should keep the service worker alive as long as the port is open.
Chrome 100: omnibox.setDefaultSuggestion() supports promises and callbacks
The omnibox.setDefaultSuggestion()
method now returns a promise or accepts a callback to allow developers to determine when the suggestion has been properly set.
Chrome 100: i18n.getMessage() support in extension service workers
The chrome.i18n.getMessage()
API is now supported in extension service worker contexts.
Chrome 99: match_origin_as_fallback in Canary
Content scripts can now specify the match_origin_as_fallback
key to inject into frames that are related to a matching frame, including frames with about:
, data:
, blob:
, and filesystem:
URLs. See the content scripts documentation for details.
Chrome 99: extension service worker support for file: schemes in Canary
Service worker-based Manifest V2 and Manifest V3 extensions can now use the Fetch API to request file:
-scheme URLs. Access to file:
-scheme URLs still requires that the user enable 'Allow access to File URLs' for the extension in the chrome://extensions
page.
Chrome 99: promise support for messaging APIs in Canary
Promise support has been added to tabs.sendMessage
, runtime.sendMessage
, and runtime.sendNativeMessage
for extensions built for Manifest V3.
Docs update: Chrome Web Store review documentation
Added a new reference page that provides an overview of the Chrome Web Store review process and explains how developer program policy enforcement is handled.
Chrome 98: scripting.executeScript() and scripting.insertCSS() accept multiple files
The Scripting API's executeScript()
and insertCSS()
methods now accept multiple files. Previously these methods required an array with a single file entry.
Docs update: review violation troubleshooting updates
The Troubleshooting Chrome Web Store violations page has been updated to provide developers with more detailed guidance for common reasons for rejection.
Chrome 96: expanded promise support to 27 more APIs
This release contains significantly more promise updates than any previous release. Updates include both general and ChromeOS-specific extensions APIs. Expand the following sections for details.
Extensions APIs
A number of APIs now support promises in Manifest V3.
-
chrome.browsingData
-
chrome.commands
-
chrome.contentSettings
-
chrome.debugger
-
chrome.downloads
-
chrome.enterprise.hardwarePlatform
-
chrome.fontSettings
-
chrome.history
-
chrome.instanceID
-
chrome.permissions
-
chrome.processes
-
chrome.search
-
chrome.sessions
-
chrome.topSites
Also, APIs that use the ChromeSetting
prototype now also support promises. The following APIs are affected by this change.
ChromeOS APIs
-
chrome.certificateProvider
-
chrome.documentScan
-
chrome.enterprise.deviceAttributes
-
chrome.enterprise.networkingAttributes
-
chrome.fileBrowserHandler
-
chrome.fileSystemProvider
-
chrome.loginState
-
chrome.printingMetrics
-
chrome.wallpaper
Chrome 96: dynamic content scripts
The chrome.scripting
API now supports registering , updating , unregistering , and getting a list of content scripts at runtime. Previously, content scripts could only be statically declared in an extension's manifest.json or programmatically injected at runtime with chrome.scripting.executeScript()
.
Docs update: Manifest V2 support timeline
The Manifest V2 to V3 transition timeline was announced in this blog post and a more detailed timeline page was published.
Chrome 96: declarativeNetRequestWithHostAccess permission
The new declarativeNetRequestWithHostAccess
permission allows extensions to use the chrome.declarativeNetRequest
API on sites the extension has host permissions for. This also enables existing Manifest V2 extensions that use webRequest
, webRequestBlocking
, and site-specific host permission to migrate to the chrome.declarativeNetRequest
API without requiring the user to approve new permissions.
Chrome 95: inject scripts directly into pages
The chrome.scripting
API's executeScript()
method can now inject scripts directly into a page's main world. Previously, extensions could only inject directly into the extension's isolated world. For more information on isolated worlds, see the documentation on content scripts .
Chrome 95: promise support for Storage API
Methods on the Manifest V3 version of the chrome.storage
API now return promises.
Policy update: two step verification enforcement
The policy update blog post published on June 29, 2021 has been updated to correct the two step verification deployment timeline.
Chrome 94: declarative net request static ruleset changes
The chrome.declarativeNetRequest
now supports specifying up to 50 static rulesets ( MAX_NUMBER_OF_STATIC_RULESETS ) and enabling up to 10 rulesets ( MAX_NUMBER_OF_ENABLED_STATIC_RULESETS ) at a time.
Chrome 93: cross origin isolation support
Both Manifest V2 and Manifest V3 extensions can now opt into cross origin isolation . This feature limits which cross-origin resources can load an extension's pages and enables the use of low level web platform features like SharedArrayBuffer
. Opt in will be required starting in Chrome 95.
Policy update: developer program policies updated
The Chrome Web Store Developer Program Policies have been updated with clarifications to the deceptive installation tactics, spam, and repetitive content policies. This update also includes a new two step verification requirement to publish on the Chrome Web Store. Read the blog post for more information.
Blog post: extension actions in Manifest V3
Chrome extensions had chrome.browserAction
and chrome.pageActions
APIs for years, but Manifest V3 replaced both with a generic chrome.actions
API. This post explores the history of these APIs and what has changed in Manifest V3. Read the post .
Blog post: introducing chrome.scripting
The chrome.scripting
API is a new Manifest V3 API focused on, well, scripting. In this post we dig into the motivations for this change and take a closer look at it's new capabilities. Read the post .
Chrome 92: module service worker support
Chrome now supports JavaScript modules in service workers. To specify a module a module in your manifest:
"background": {
"service_worker": "script.js",
"type": "module"
}
This loads the worker script as an ES module, which lets you use the import
keyword in the worker's script to import other modules.
Chrome 91: chrome.action.getUserSettings()
The new chrome.action.getUserSettings()
method allows extensions to determine if the user has pinned the extension to the main toolbar.
Chrome 90: chrome.scripting.removeCSS()
The new chrome.scripting.removeCSS()
method allows extensions to remove CSS that was previously inserted via chrome.scripting.insertCSS()
. It replaces chrome.tabs.removeCSS()
.
Chrome 90: returning promises from scripting.executeScript()
chrome.scripting.executeScript()
now supports returning promises. If the resulting value of the script execution is a promise, Chrome will wait for the promise to settle and return its resulting value.
Chrome 90: chrome.scripting.executeScript() results include frameId
Results returned from chrome.scripting.executeScript()
now include the frameId . The frameId
property indicates the frame that the result is from, letting extensions easily associate results with the individual frames when injecting in multiple frames.
Chrome 89: new API for managing tab groups
The new chrome.tabGroups
API and new capabilities in chrome.tabs
let extensions read and manipulate tab groups. Requires Manifest V3.
Chrome 89: customizable permissions for web accessible resources
Web accessible resources definitions in Manifest V3 have changed to let extensions restrict resource access based on the requester's origin or extension ID.
Blog post: Extension Manifest Converter
The Chrome Extensions team has open sourced "Extension Manifest Converter", a Python tool that automates some of the mechanical aspects of converting extensions to Manifest V3. See the announcement blog post and get it from GitHub .
Chrome 88: Manifest V3 general availability
Manifest V3 is a major update to the extensions platform; see Overview of Manifest V3 for a summary of new and changed features. Extensions may continue to use Manifest V2 for now, but this will be phased out in the near future. We strongly recommend that you use Manifest V3 for any new extensions, and begin migrating existing extensions to Manifest V3 as soon as possible.