Wat gebeurt er in Chrome-extensies?

Tot nu toe was 2023 een druk jaar in de wereld van Chrome-extensies. Dankzij uw waardevolle feedback hebben we het uitbreidingsplatform en onze documentatie kunnen verbeteren. We blijven ook samenwerken met andere browserleveranciers in de WebExtensions Community Group, zodat extensie-API's consistenter in alle browsers werken.

In dit bericht delen we enkele wijzigingen met u waar het Chrome-extensieteam in de eerste helft van dit jaar aan heeft gewerkt en welke aankomende functies later dit kwartaal zullen worden uitgebracht. Laten we beginnen!

Nieuwe extensie-API's en functies

In deze sectie wil ik enkele belangrijke API-lanceringen belichten, kort andere API-verbeteringen bespreken en aankomende API-releases delen.

Hoogtepunten

Documenten buiten het scherm

De Offscreen API is geïntroduceerd in Chrome 109. Hiermee kunnen Manifest V3-extensies gebruiksscenario's afhandelen waarvoor interactie met de DOM of het venster nodig is, wat niet kan worden uitgevoerd in de extensieservicemedewerker. Ook introduceerde Chrome 114 twee extra redenen buiten het scherm: 'WORKERS' voor gevallen waarin uw document een worker moet spawnen en 'LOCAL_STORAGE' om gegevens te helpen migreren van window.localStorage naar de chrome.storage API .

Vanaf Chrome 115 kunt u meerdere redenen opgeven wanneer u een document buiten het scherm maakt. Hierdoor kunt u twee gerelateerde taken in hetzelfde document uitvoeren.

Nieuwe zijpaneel-API 🎉

In het verleden was de enige manier om zijbalken in extensies te maken het injecteren van een nieuw element met inhoudsscripts op elke pagina. In Chrome 114 werd de Side Panel API gelanceerd. Nu kunt u op een veel eenvoudigere manier een begeleidende zijbalkervaring voor gebruikers ontwikkelen. Lees meer over hoe u met de Side Panel API een superieure gebruikerservaring kunt ontwerpen .

Een woordenboekextensie die de definitie van een geselecteerd woord toont
Woordenboekextensie op zijpaneel. Bekijk de code in de chrome-extensions-samples-repository.

Robuuste servicemedewerkers

Alle extensiegebeurtenissen herstarten nu de inactiviteitstimer van de extensieservicemedewerker. In Chrome 110 is de harde maximale levensduur van vijf minuten verwijderd voor medewerkers van de uitbreidingsservice. Ook starten berichten naar native applicaties en berichten binnen de extensie de inactiviteitstimer opnieuw. Lees er meer over in het artikel over de levenscyclus van de uitbreidingsservicemedewerker .

Meer API-lanceringen

  • Actie-API : vanaf Chrome 110 kunt u de badgetekst aanpassen met setBadgeTextColor () en getBadgeTextColor() . Met isEnabled() kunt u ook controleren of de actie is ingeschakeld voor het huidige tabblad.
  • Commands API : De bug waarbij snelkoppelingen naar extensies, gedeclareerd in het manifest onder "commands._execute_action" , niet bleven bestaan ​​tijdens de conversie naar MV3, is opgelost in Chrome 111 .
  • Downloads-API : de standaard download-UI in Chrome is verplaatst van een plank onderaan naar de rechterkant van de omnibox. Om dit gedrag uit te schakelen, kunt u downloads.setUiOptions() gebruiken die setShelfEnabled() vervangt.
  • Geschiedenis-API : chrome.history.getVisits() en chrome.history.search() retourneren ook gegevens van andere apparaten die zijn gesynchroniseerd met de lokale geschiedenisdatabase. Dit kan resulteren in meer geschiedenisvermeldingen en hogere bezoekersaantallen. isLocal is toegevoegd aan VisitItem in Chrome 115 (later deze maand verwacht in stable) om alleen op lokale bezoeken te kunnen filteren.
  • Identiteits-API : het authenticatievenster verschijnt nu als een pop-up, in plaats van een volledig toepassingsvenster in beslag te nemen. Om meer controle te geven tijdens het proces van JavaScript-omleidingen, hebben we twee nieuwe opties toegevoegd: abortOnLoadForNonInteractive en timeoutMsForNonInteractive .
  • Opslag-API : in Chrome 112 is de opslaggrootte chrome.session vergroot naar 10 MB. Vervolgens werd de opslaggrootte chrome.local aangepast zodat deze overeenkwam met Chrome 114.

Binnenkort beschikbaar...

Aankomende Chrome-versies zullen veel functies introduceren om het voor extensies gemakkelijker te maken om naar Manifest V3 te migreren. Voor een lijst met aankomende MV3-migratiegerelateerde wijzigingen kunt u onze pagina met bekende problemen raadplegen. Daarnaast zijn we van plan de volgende functies toe te voegen:

  • DeclarativeNetRequest API : De standaardwaarde voor de eigenschap isUrlFilterCaseSensitive wordt gewijzigd in false . Zie de WECG- thread.
  • Met de File Handling API kunnen ChromeOS-extensies bestanden openen met gespecificeerde MIME-typen en bestandsextensies. Deze functie bevindt zich momenteel achter een vlag .
  • Runtime API : We brengen runtime.getContexts() uit ter vervanging van extension.getViews() , die verouderd is. Hierdoor kunnen extensies bepalen of een extensiepagina, zoals het zijpaneel of een document buiten het scherm, geopend is. Zie het WECG- voorstel.
  • Servicewerkers : we voegen krachtige keep-alives toe aan Chrome-API's die een gebruikersprompt weergeven: permissions.request() , desktopCapture.chooseDesktopMedia() , identity.launchWebAuthFlow() en management.uninstall() .
  • API voor zijpaneel : We lanceren sidepanel.open() , waarmee het zijpaneel van de extensie programmatisch wordt geopend als reactie op een gebruikersgebaar, zoals klikken op een contextmenu.
  • TabCapture API : We voegen de mogelijkheid toe om getMediaStreamId() aan te roepen vanaf de extensieservicemedewerker en een MediaStream te verkrijgen van een stream-ID in een document buiten het scherm. Zie Audio-opname en schermopname voor voorbeelden.

Houd de pagina Wat is er nieuw in extensies in de gaten voor deze aankondigingen zodra ze beschikbaar komen in Chrome Bèta .

Documentatie-upgrades en meer Manifest V3-richtlijnen

We hebben ook hard gewerkt om de leerervaring van de ontwikkelaar te verbeteren. Hartelijk dank aan iedereen die de tijd heeft genomen om vragen te stellen over de chroomgroep en documentatieproblemen te melden op developer.chrome.com .

Hoogtepunten

  • De nieuwe MV3-migratiesectie biedt praktische manieren om Manifest V2-extensies naar Manifest V3 te converteren.
  • De handleiding voor extensieservicemedewerkers biedt gedetailleerde informatie over onderwerpen voor extensieservicemedewerkers. Deze omvatten hoe ze worden geregistreerd en bijgewerkt, hoe de levenscyclus eruit ziet, hoe import werkt en meer.
  • In de handleiding Gebeurtenissen afhandelen met servicemedewerkers leert u de basisprincipes van extensieservicemedewerkers. Het bouwt een omnibox-extensie die u snel toegang geeft tot API-referentiepagina's voor extensies.

Meer updates

Binnenkort beschikbaar...

  • Hoe u op afstand gehoste code kunt migreren naar Manifest V3.
  • Hoe u geautomatiseerde tests kunt uitvoeren voor Chrome-extensies.
  • Verbeterde richtlijnen voor declaratieve nettoverzoeken.
  • Verbeteringen aan de uitleg van het inhoudsscript.

💡 Wist je dat?

Voordat we afsluiten, willen we een aantal nuttige hulpmiddelen en inzichten delen:

  • Chrome is begonnen met het ondersteunen van WebHID ; je kunt spelen met de API vanaf Chrome 115 (maar houd er rekening mee dat dit nog steeds een work in progress is).
  • Puppeteer ondersteunt nu testen in de headless-modus met behulp van --headless=new . Lees er meer over in de blogpost voor het upgraden van de headless-modus van Chrome .
  • Met de Extension Update Testing Tool kunt u controleren welke waarschuwingen worden geactiveerd wanneer machtigingen in het manifest veranderen. Op deze manier kunt u het updateproces ervaren zoals een gebruiker dat zou doen. Dit is belangrijk omdat sommige machtigingen de extensie kunnen uitschakelen totdat de gebruiker opnieuw toegang verleent.

Laten we verbinding maken! 🙌

Dit jaar was het uitbreidingsteam blij om extensie-ontwikkelaars persoonlijk te ontmoeten tijdens Google I/O Connect- evenementen. We werken aan het creëren van nieuwe ruimtes om met u in contact te komen, zoals het lanceren van focusgroepen en meetup-evenementen.

Blijf in de tussentijd vragen stellen over de chroomgroepen , overweeg deel te nemen aan de WECG en rapporteer eventuele documentatieproblemen op de developer.chrome.com GitHub-repository .

Nogmaals bedankt dat je deel uitmaakt van de gemeenschap van extensie-ontwikkelaars!