Installer des extensions Chrome

Les extensions Google Chrome sont de petits programmes permettant de modifier et d'améliorer les fonctionnalités de Google Chrome.

Vous pouvez télécharger des extensions Google Chrome à partir de la galerie des extensions. Vous avez également la possibilité de créer vos propres extensions. Pour savoir comment procéder, consultez cet article relatif aux extensions Google Chrome.

Une extension peut être préinstallée de trois façons : par l'intermédiaire d'une règle de groupe, à l'aide du Registre ou via le fichier master_preferences.

Préinstallation par l'intermédiaire d'une règle relative aux groupes

L'utilisation d'une règle pour déployer une extension ou une application Web Google Chrome constitue la méthode la plus simple et la plus adaptable. Nous vous recommandons de recourir à cette méthode pour déployer des extensions, car elle ne requiert pas la présence du fichier CRX sur l'ordinateur. Ce fichier doit simplement être accessible via une URL spécifique.

Pour utiliser cette méthode, définissez la règle de sorte que l'extension soit installée de manière automatique, comme cela est décrit sur cette page.

Préinstaller une extension via le fichier master_preferences

Les extensions préinstallées sont ajoutées au fichier master_preferences situé dans le même dossier que l'exécutable chrome.exe. Le fichier CRX peut donc être stocké n'importe où, et les bits correspondants ne doivent pas nécessairement résider sur l'ordinateur de l'utilisateur cible ni être incorporés dans un script d'installation.

Si vous ne savez pas comment utiliser le fichier master_preferences, consultez l'article Préférences utilisateur par défaut.

Cette méthode n'est utilisable qu'à certaines conditions :

  • Cette méthode ne fonctionne que si l'utilisateur peut accéder à la galerie publique des extensions ou à l'URL du fichier CRX. Par conséquent, elle risque de se révéler inopérante si l'utilisateur se trouve derrière un pare-feu d'entreprise ou un proxy restreignant l'accès à la galerie.

  • Cette méthode ne fonctionne généralement que pour les nouvelles installations. Avec une installation existante, elle est fastidieuse et requiert de nombreuses étapes de nettoyage.

Pour préinstaller une extension via le fichier master_preferences :

  1. Recherchez le fichier CRX à installer. Téléchargez-le à partir de la galerie, ou créez votre propre extension et intégrez-la dans un package.

  2. Ouvrez le fichier CRX avec un programme ZIP, puis recherchez le fichier manifest.json (il s'agit d'un simple fichier texte). Ce fichier contient de nombreuses valeurs dont vous aurez besoin.

  3. Configurez votre fichier master_preferences avec les valeurs du fichier manifest.json.

Voici un exemple de fichier master_preferences permettant de préinstaller l'extension Google Reader :


{
 "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": "Système d'alerte de Google Reader (Installation en cours…)",
             "permissions": [ "tabs", "http://www.google.com/" ],
             "update_url": "http://clients2.google.com/service/update2/crx",
             "version": "0.0"
          },
          "path": "apflmjolhbonpkbkooiamcnenbmbjcbf\\0.0",
          "state": 1
       }
    }
  }
}

L'explication détaillée des lignes de ce fichier master_preferences est la suivante :

  • La première valeur figurant sous "settings" correspond au code de hachage de l'extension ("apflmjolhbonpkbkooiamcnenbmbjcbf"). Vous pouvez obtenir ce code en empaquetant le fichier CRX. Ce code constitue également l'identifiant de l'extension dans la galerie.
  • La chaîne "location" doit toujours être associée à la valeur 1.
  • La section "manifest" doit contenir les chaînes "key", "name", "permissions", "update_url" et "version". Ces valeurs peuvent provenir du fichier manifeste de l'extension.
  • La valeur "key" découle de l'extension empaquetée, tout comme le code de hachage. Si vous examinez un fichier CRX non décompressé, vous trouverez la valeur "key" dans le fichier manifest.json.
  • La chaîne "name" peut prendre n'importe quelle valeur ; toutefois, l'ajout d'une étiquette temporaire (dans cet exemple, "(Installing...)") permet aux utilisateurs de comprendre la raison pour laquelle le chargement d'une extension peut prendre un certain temps.
  • La chaîne "permissions" doit définir les mêmes autorisations que celles du fichier d'extension CRX indiqué dans la chaîne "update_url" ; dans le cas contraire, l'utilisateur obtiendra de nombreux messages d'avertissement et l'extension ne se chargera pas. Par conséquent, vous ne pouvez pas spécifier une chaîne d'autorisations vide alors que l'extension proprement dite requiert un grand nombre d'autorisations, car ceci masquerait le privilège d'escalade.
  • La chaîne "update_url" indique l'URL hébergeant le fichier CRX. Cette valeur figure également dans le fichier manifest.json.
  • La chaîne "version" doit toujours présenter la valeur "0.0".
  • La chaîne "path" doit systématiquement être définie sur le code de hachage de l'extension, suivi de "\\0.0".
  • La chaîne "state" doit toujours prendre la valeur 1.
  • Si l'une de ces règles n'est pas respectée, le chargement de l'extension risque d'échouer ou l'utilisateur peut obtenir un message d'avertissement.

Important : Si l'extension comprend des scripts de contenu qui nécessitent des autorisations, le fichier master_preferences doit également fournir ces informations. Voici un exemple :


{
 "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": "Système d'alerte de Google Reader (Installation en cours…)",
              ...
Si l'extension comporte des scripts de contenu qui nécessitent des autorisations ou accès, et si vous n'indiquez pas ces informations dans ce fichier, l'extension ne charge pas.

Vous pouvez précharger plusieurs extensions. L'ajout d'une extension se révèle aussi simple que l'ajout d'un autre bloc sous "settings" :


{
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {  <-- extension one
          "location": 1,
          "manifest": {
              ...
          }
        },
       "oaiwevnmzvoinziufeuibyfnzwevmiiw": {  <-- extension two
         "location": 1,
         "manifest": {
           ...
       },
       ...
     }
   }
}

Si certaines autorisations associées à l'extension doivent faire l'objet d'une approbation par l'utilisateur, vous devez également ajouter une section "granted_permissions" :


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

Si vous n'ajoutez pas de section "granted_permissions", Google Chrome désactive immédiatement l'extension. Le champ "granted_permissions" contient les sous-champs suivants :

  • La chaîne "api" contient les autorisations API de la clé "permissions" du fichier manifeste.
  • La chaîne "explicit_host" contient les autorisations hôtes de la clé "permissions" du fichier manifeste.
  • La chaîne "scriptable_host" doit contenir les hôtes figurant dans les scripts de contenu de l'extension.

Pour générer le champ granted_permissions, la méthode la plus simple consiste à installer l'extension en local, puis à copier les autorisations granted_permissions correspondantes contenues dans le fichier des préférences de votre profil Google Chrome.