De levenscyclus van Chrome-extensie-updates

Deze handleiding beschrijft het volledige updateproces voor extensies, inclusief het standaard updateproces, handmatige aanpassingen, ontwikkelaars-API's en de aanzienlijke impact van bedrijfsbeleid.

De standaard updatecyclus

Chrome is zo ontworpen dat geïnstalleerde extensies automatisch worden bijgewerkt naar de nieuwste versies, zodat gebruikers toegang hebben tot nieuwe functies en beveiligingspatches. Standaard controleert Chrome bij het opstarten en vervolgens om de paar uur op updates voor extensies.

Een cruciaal aspect van het updateproces is dat een update alleen wordt geïnstalleerd wanneer de extensie als inactief wordt beschouwd. Een extensie is inactief als de componenten ervan niet actief worden gebruikt. In de context van Manifest V3 betekent dit voornamelijk dat de service worker van de extensie niet actief is. De service worker is ontworpen om gebeurtenisgestuurd te werken en wordt na een periode van inactiviteit beëindigd . Bovendien voorkomt het openen van extensiepagina's, zoals zijpanelen, pop-ups of optiepagina's, dat de extensie als inactief wordt beschouwd. Een actief contentscript heeft geen invloed op de vraag of een extensie als inactief wordt beschouwd.

Deze vereiste van een inactieve status kan leiden tot vertragingen bij updates voor veelgebruikte extensies. Als de service worker van een extensie constant wordt geactiveerd door gebeurtenissen, bereikt deze mogelijk nooit een inactieve status en wordt de update uitgesteld tot de browser opnieuw wordt opgestart.

De distributie van extensie-updates monitoren

Om te zien hoeveel van je gebruikers de nieuwste versie van je extensie gebruiken, kun je het analysedashboard van de Chrome Web Store raadplegen. Ga naar het ontwikkelaarsdashboard van de Chrome Web Store en selecteer een van je gepubliceerde extensies. Ga in de zijnavigatiebalk naar: Analyse -> Gebruikers en scroll naar beneden naar de grafiek 'Dagelijkse gebruikers per item' . Hier zie je hoeveel gebruikers al de nieuwste versie gebruiken.

Schermafbeelding met het aantal dagelijkse gebruikers per versie voor een voorbeeldextensie.

Extensies handmatig bijwerken

Als gebruikers de nieuwste updates direct willen ontvangen, biedt Chrome een handmatige updatefunctie. Dit is ook een handig hulpmiddel bij het testen van updates.

Individuele gebruikers kunnen een update voor al hun geïnstalleerde extensies afdwingen door de volgende stappen te volgen:

  1. Ga naar chrome://extensions.
  2. Schakel de ontwikkelaarsmodus in met de schakelaar in de rechterbovenhoek.
  3. Klik op de knop 'Bijwerken ' die verschijnt.

Deze actie zorgt ervoor dat Chrome onmiddellijk de nieuwste versies van alle geïnstalleerde extensies ophaalt uit de Chrome Web Store.

Controleer op updates van een extensie.

De chrome.runtime API biedt tools waarmee extensies kunnen communiceren met het update-mechanisme.

Controleer op aanvraag of er updates beschikbaar zijn.

Met de functie `chrome.runtime.requestUpdateCheck()` kan een extensie programmatisch een updatecontrole initiëren. Dit is met name handig voor extensies die sterk afhankelijk zijn van een backendservice en ervoor moeten zorgen dat ze de nieuwste compatibele versie gebruiken.

Wanneer deze functie wordt aangeroepen, controleert Chrome de Chrome Web Store op een nieuwe versie en downloadt deze indien beschikbaar. De callback van de functie ontvangt een status die het resultaat van de controle aangeeft.

Luister naar beschikbare updates.

De gebeurtenis `chrome.runtime.onUpdateAvailable` wordt geactiveerd wanneer een update is gedownload en klaar is om te worden geïnstalleerd. Deze gebeurtenis geeft het nieuwe versienummer weer in de details. Door naar deze gebeurtenis te luisteren, kan een extensie bepalen of er een update beschikbaar is en overwegen om inactief te worden of een herlaadactie uit te voeren met `chrome.runtime.reload()` wanneer dat nodig is.

De volgende code toont een basisimplementatiepatroon:

In uitzonderlijke gevallen is het mogelijk om de browser te dwingen te controleren op een extensie-update met behulp van chrome.runtime.requestUpdateCheck() :

Het is belangrijk om te weten dat frequente aanroepen van requestUpdateCheck() door de browser worden beperkt. Gebruik deze functie alleen wanneer u weet dat er een update beschikbaar is. Bijvoorbeeld wanneer een bijgewerkte backend een nieuwere versie van de extensie vereist.

Updates beheren via bedrijfsbeleid

In beheerde bedrijfsomgevingen is de standaardprocedure voor het bijwerken van extensies onderworpen aan beleidsregels die door systeembeheerders zijn vastgesteld. Deze beleidsregels kunnen het standaardgedrag overschrijven om de beveiliging en stabiliteit te waarborgen.

Geforceerde installatie

Met het beleid ExtensionInstallForcelist kunnen beheerders specifieke extensies stilzwijgend installeren voor hun gebruikers. Gebruikers kunnen extensies die met dit beleid zijn geïnstalleerd niet uitschakelen of verwijderen.

Pin-extensieversie

Bedrijven moeten echter vaak de exacte versie van een extensie die wordt gebruikt, beheren om compatibiliteit met andere software te garanderen. Om dit te bereiken, kunnen beheerders een extensie aan een specifieke versie 'vastzetten' . Dit gebeurt via de Google Admin-console, waar een beheerder de gewenste versie voor een organisatie-eenheid kan selecteren. Wanneer een extensie is vastgezet, zal Chrome deze niet bijwerken naar een latere versie dan de opgegeven versie.

De updatebron overschrijven

Bedrijven kunnen om veiligheids- of aanpassingsredenen hun eigen afgeleide versies van extensies hosten. Gebruik hiervoor het beleid ExtensionSettings met de eigenschap override_update_url ingesteld op true. Dit dwingt Chrome om de extensie en de bijbehorende updates op te halen van een opgegeven URL, in plaats van de Chrome Web Store.

Stel een minimale Chrome-versie in.

Je kunt een minimum_chrome_version opgeven in het manifestbestand van je extensie. Dit zorgt ervoor dat de extensie alleen wordt geïnstalleerd op Chrome-versies die de API's ondersteunen die de extensie gebruikt.

Bij nieuwe installaties voorkomt de Chrome Web Store dat gebruikers met oudere Chrome-versies de extensie installeren en geeft een bericht weer met de tekst "Niet compatibel". Voor bestaande gebruikers geldt dat als een update van een extensie de minimum_chrome_version verhoogt naar een versie die hoger is dan de geïnstalleerde Chrome-versie, zij stilzwijgend geen updates meer voor die extensie ontvangen. Ontwikkelaars moeten hiervan op de hoogte zijn en gebruikers informeren als een aanzienlijk deel van hun gebruikersbestand hierdoor mogelijk wordt getroffen.