Chrome-extensies installeren

Extensies in Google Chrome zijn kleine programma's waarmee de functionaliteit van Google Chrome kan worden aangepast en verbeterd.

U kunt Google Chrome-extensies downloaden via de extensiegalerij. U kunt ook leren hoe u uw eigen extensies kunt maken. Zie hiervoor Google Chrome Extensions.

U kunt een extensie op drie manieren vooraf installeren: via groepsbeleid, via het register of via master_preferences.

Vooraf installeren via groepsbeleid

Implementatie van een extensie of Chrome-webapp via groepsbeleid is de eenvoudigste en meest schaalbare methode. Dit is de aanbevolen methode voor het distribueren van extensies, omdat het CRX-bestand niet op de computer beschikbaar hoeft te zijn. Het hoeft alleen maar beschikbaar te zijn via een opgegeven URL.

Als u deze methode wilt gebruiken, stelt u het beleid in op "gedwongen installatie" voor de extensie. Dit wordt hier beschreven.

Vooraf installeren via master_preferences

Vooraf geïnstalleerde extensies worden toegevoegd aan het bestand master_preferences dat in dezelfde map staat als chrome.exe. Dit betekent dat het CRX-bestand zich overal kan bevinden en de bits niet aanwezig hoeven te zijn op de computer van de doelgebruiker of te worden geïntegreerd in installatiescripts.

Als u niet bekend bent met het bestand master_preferences of met de werkwijze, leest u de configuratievoorkeuren.

Er zijn enkele vereisten voor het gebruik van deze methode:

  • Deze methode werkt alleen als de gebruiker toegang heeft tot de openbare extensiegalerij of een andere URL waarop het CRX-bestand wordt gehost. Deze methode werkt daardoor mogelijk niet voor gebruikers achter een bedrijfsfirewall of proxy die toegang tot de galerij beperkt.

  • Deze methode werkt doorgaans alleen voor nieuwe installaties. Het kost veel moeite en opschoonacties om deze methode voor een bestaande installatie mogelijk te maken.

Ga als volgt te werk om een extensie vooraf te installeren via master_preferences:

  1. Zoek het CRX-bestand dat u wilt installeren. Download het bestand via de galerij of maak een eigen bestand dat u zelf heeft voorbereid.

  2. Open het CRX-bestand met een zipprogramma en zoek het bestand manifest.json (dit is gewoon een tekstbestand). Dit bestand bevat veel waarden die u nodig heeft.

  3. Stel uw master_preferences in met waarden uit het bestand manifest.json.

Hier volgt een voorbeeld van een bestand master_preferences, waarmee de Google Reader-extensie vooraf wordt geïnstalleerd:


{
 "homepage" : "http://dev.chromium.org",
 "homepage_is_newtabpage" : true,
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {
          "location": 1,
          "manifest": {
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
              oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+
              X97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYx
              saPVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Google Reader Notifier (Installing...)",
             "permissions": [ "tabs", "http://www.google.com/" ],
             "update_url": "http://clients2.google.com/service/update2/crx",
             "version": "0.0"
          },
          "path": "apflmjolhbonpkbkooiamcnenbmbjcbf\\0.0",
          "state": 1
       }
    }
  }
}

Hier volgt een uitleg van de regels in dit master_preferences-bestand:

  • Onder "settings" is de eerste waarde de hash van de extensie ("apflmjolhbonpkbkooiamcnenbmbjcbf"). U krijgt dit door het CRX-bestand in te pakken en het is tevens de ID van de extensie in de galerij.
  • "location" moet altijd 1 zijn.
  • Het gedeelte "manifest" moet "key", "name", "permissions", "update_url" en "version" bevatten. Deze opties kunnen uit het manifest van de extensie worden gehaald.
  • De waarde "key" wordt uit de ingepakte extensie gehaald, net als de hash. Als u naar een uitgepakt CRX-bestand kijkt, vindt u de "key" in manifest.json.
  • "name" kan alles zijn, hoewel u met een tijdelijke tag (bijv. "(Bezig met installatie...)") zorgt dat gebruikers begrijpen waarom het even duurt voordat een extensie wordt geladen.
  • "permissions" moet gelijk zijn aan de machtigingen in het CRX-bestand van de extensie bij "update_url". Als dit niet het geval is, ziet de gebruiker een groot aantal waarschuwingen en wordt de extensie niet geladen. U kunt dus geen lege reeks "permissions" opgeven. Voor de echte extensie zijn veel machtigingen vereist - dit zou het escaleren van privileges verbergen.
  • "update_url" is de URL waar de CRX zich bevindt. Ook dit kunt u vinden in het bestand manifest.json.
  • "version" moet altijd "0.0" zijn.
  • "path" moet altijd de hash van de extensie zijn, gevolgd door "\\0.0".
  • "state" moet altijd 1 zijn.
  • Als een van deze regels niet correct is, wordt de extensie mogelijk niet geladen of ziet de gebruiker een waarschuwing.

Belangrijk: als de extensie inhoudsscripts bevat waarvoor machtigingen zijn vereist, moeten ze ook in master_preferences worden vermeld. Bekijk onderstaand voorbeeld:


{
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {
          "location": 1,
          "manifest": {
              "content_scripts": [ {
                "all_frames": true,
                "js": [ "script.js" ],
                "matches": [ "http://*/*", "https://*/*" ],
                "run_at": "document_start"
              } ],
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
             oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+X
             97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYxsa
             PVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Google Reader Notifier (Installing...)",
              ...
Als de extensie inhoudsscripts bevat waarvoor een machtiging/toegang is vereist en u dit hier niet opgeeft, wordt de extensie niet geladen.

U kunt meerdere extensies vooraf laden. Als u een extra extensie wilt toevoegen, voegt u eenvoudig een nieuw blok toe onder "settings":


{
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": { <-- eerste extensie
          "location": 1,
          "manifest": {
              ...
          }
        },
       "oaiwevnmzvoinziufeuibyfnzwevmiiw": { <-- tweede extensie
         "location": 1,
         "manifest": {
           ...
       },
       ...
     }
   }
}

Als de extensie rechten heeft waarvoor gebruikersgoedkeuring is vereist, moet u ook een sectie "granted_permissions" opnemen:


{
  "extensions": {
    "settings": {
      "mihcahmgecmbnbcchbopgniflfhgnkff": {
        "location": 1,
        "manifest": {
          ...
        },
        "granted_permissions": {
          "api": [ "tabs" ],
          "explicit_host": [ "http://*.google.com/*", "https://*.google.com/" ],
          "scriptable_host": [ "http://example.com/" ]
        },
        ...
      },
      ...
    }
  }
}

Als u geen sectie "granted_permissions" opneemt, schakelt Chrome de extensie onmiddellijk uit. Het veld "granted_permissions" heeft de volgende subvelden:

  • "api" bevat API-rechten in de sleutel "permissions" van het manifest
  • "explicit_host" bevat hostrechten in de sleutel "permissions" van het manifest
  • "scriptable_host" moet worden ingesteld als elke host in de inhoudsscripts van de extensie

De gemakkelijkste manier om het veld granted_permissions te generen is door de extensie lokaal te installeren en vervolgens de granted_permissions van de extensie te kopiëren uit het bestand Preferences van uw Chrome-profiel.