In deze handleiding wordt de volledige updatestroom voor extensies beschreven, waarbij wordt ingegaan op het standaardupdateproces, handmatige overschrijvingen, API's voor ontwikkelaars en de aanzienlijke impact van bedrijfsbeleid.
De standaard updatecyclus
Chrome is ontworpen om geïnstalleerde extensies automatisch bij te werken naar de nieuwste versies, zodat gebruikers toegang hebben tot nieuwe functies en beveiligingsoplossingen. Standaard controleert Chrome bij het opstarten en 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 in gebruik zijn. 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 zijn en wordt beëindigd na een periode van inactiviteit . Bovendien voorkomen geopende extensiepagina's, zoals een zijpaneel, pop-up of een optiepagina, dat de extensie als inactief wordt beschouwd. Een actief contentscript heeft geen invloed op de vraag of een extensie als inactief wordt beschouwd of niet.
Deze inactieve vereiste kan vertragingen veroorzaken in updates voor extensies die vaak actief zijn. Als de service worker van een extensie constant wordt geactiveerd door gebeurtenissen, bereikt deze mogelijk nooit een inactieve status en wordt de update uitgesteld totdat de browser opnieuw wordt opgestart.
Monitor extensie update distributie
Om te zien hoeveel gebruikers de nieuwste versie van uw extensie gebruiken, gebruikt u het Analytics-dashboard van de Chrome Web Store. Ga naar het ontwikkelaarsdashboard van de Chrome Web Store en selecteer een van uw gepubliceerde extensies. Ga in de navigatiebalk aan de zijkant naar: Analytics -> Gebruikers en scrol omlaag naar de grafiek Dagelijkse gebruikers per item . Hier ziet u hoeveel gebruikers uw nieuwste versie al gebruiken.
Extensies handmatig bijwerken
Als gebruikers direct de nieuwste updates willen ontvangen, biedt Chrome een handmatig updatemechanisme. Dit is ook een handige tool bij het testen van updates.
Individuele gebruikers kunnen een update voor al hun geïnstalleerde extensies afdwingen door de volgende stappen te volgen:
- Ga naar chrome://extensions.
- Schakel de ontwikkelaarsmodus in met de schakelaar in de rechterbovenhoek.
- Klik op de knop Bijwerken die verschijnt.
Met deze actie haalt Chrome direct de nieuwste versies van alle geïnstalleerde extensies op uit de Chrome Web Store.
Controleren op updates van een extensie
De chrome.runtime API biedt hulpmiddelen waarmee extensies kunnen communiceren met het updatemechanisme.
Controleer op updates op aanvraag
Met de functie chrome.runtime.requestUpdateCheck() kan een extensie programmatisch een updatecontrole starten. Dit is vooral handig voor extensies die een kritieke afhankelijkheid hebben van een backendservice en ervoor moeten zorgen dat ze de nieuwste compatibele versie gebruiken.
Wanneer deze functie wordt aangeroepen, raadpleegt Chrome de Chrome Web Store voor 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 in de details weer. 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 behulp van chrome.runtime.reload() wanneer dit van toepassing 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() :
Houd er rekening mee dat frequente aanroepen van requestUpdateCheck() door de browser worden beperkt. Gebruik deze functie alleen als 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 standaard extensie-updateflow onderworpen aan beleid dat is ingesteld door systeembeheerders. Dit beleid kan het standaardgedrag overschrijven om de beveiliging en stabiliteit te waarborgen.
Installatie forceren
Met het beleid ExtensionInstallForcelist kunnen beheerders op de achtergrond specifieke extensies voor hun gebruikers installeren. 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 beheren om compatibiliteit met andere software te garanderen. Om dit te bereiken, kunnen beheerders een extensie "vastzetten" op een specifieke versie . Dit kan via de Google Admin Console, waar een beheerder de vereiste versie voor een organisatie-eenheid kan selecteren. Wanneer een extensie is vastgezet, zal Chrome deze niet verder bijwerken dan de opgegeven versie.
De updatebron overschrijven
Bedrijven kunnen hun eigen gevorkte versies van extensies hosten om beveiligings- of aanpassingsredenen. 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 via een opgegeven URL in plaats van via de Chrome Web Store.
Stel een minimale Chrome-versie in
U kunt een minimum_chrome_version opgeven in het manifestbestand van uw 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 versies van Chrome de extensie installeren en verschijnt de melding 'Niet compatibel'. Bestaande gebruikers ontvangen automatisch geen updates meer voor die extensie als een update van een extensie de minimum_chrome_version
verhoogt naar een versie die hoger is dan de geïnstalleerde Chrome-versie van de gebruiker. Ontwikkelaars dienen zich hiervan bewust te zijn en gebruikers te informeren als een aanzienlijk deel van hun gebruikersbestand hierdoor mogelijk wordt getroffen.