Autres options de distribution des extensions

Toutes les extensions Chrome doivent être distribuées directement à partir du Chrome Web Store ou à l'aide des mécanismes décrits ci-dessous. Le non-respect de l'une de ces méthodes de distribution constitue un non-respect des Règles relatives aux extensions Chrome. L'extension et/ou le logiciel qui la distribue peuvent être signalés comme logiciels indésirables.

En règle générale, les utilisateurs installent des extensions à partir du Chrome Web Store, mais il peut arriver que vous souhaitiez installer une extension par d'autres moyens. Voici deux cas typiques:

  • Une extension est associée à un autre logiciel et doit être installée chaque fois que l'utilisateur installe cet autre logiciel.
  • Un administrateur réseau souhaite installer les mêmes extensions dans l'ensemble de son organisation.

Une extension qui n'est pas installée à partir du Chrome Web Store est appelée extension externe. Pour les développeurs qui souhaitent distribuer une extension dans le cadre du processus d'installation d'autres logiciels, ou pour les administrateurs réseau qui souhaitent distribuer une extension dans leur organisation, Google Chrome accepte les méthodes d'installation d'extension suivantes:

  • À l'aide d'un fichier JSON de préférences (pour Mac OS X et Linux uniquement)
  • À l'aide du Registre Windows (pour Windows uniquement)

Les deux méthodes permettent d'installer une extension hébergée sur un update_URL. Sous Windows et Mac, update_URL doit pointer vers le Chrome Web Store où l'extension doit être hébergée.

Le fichier de préférences sous Linux peut pointer vers le serveur sur lequel vous hébergez l'extension. Le fichier JSON de préférences permet également d'installer une extension à partir d'un fichier d'extension .crx sur l'ordinateur Linux de l'utilisateur.

Avant de commencer

Tout d'abord, publish l'extension sur le Chrome Web Store ou empaquetez un fichier .crx et assurez-vous qu'elle s'installe correctement.

Si vous effectuez l'installation à partir d'une URL de mise à jour, vérifiez que l'extension est hébergée correctement.

Avant de modifier le fichier de préférences ou le registre, tenez compte des éléments suivants:

  • L'emplacement prévu du fichier .crx de l'extension ou l'URL de mise à jour à partir de laquelle elle est diffusée
  • La version de l'extension (indiquée dans le fichier manifeste ou sur la page chrome://extensions)
  • L'ID de l'extension (sur la page chrome://extensions une fois que vous avez chargé l'extension empaquetée)

Les exemples suivants supposent que la version est 1.0 et que l'ID est aaaaaaaaaabbbbbbbbbbcccccccccc.

Utiliser un fichier de préférences

  1. Si vous effectuez l'installation à partir d'un fichier sous Linux, mettez le fichier d'extension .crx à la disposition de la machine sur laquelle vous souhaitez installer l'extension. (Copiez-le dans un répertoire local ou sur un partage réseau, par exemple \\server\share\extension.crx ou /home/share/extension.crx.)
  2. Créez un fichier portant le nom suivant dans l'un des dossiers répertoriés ci-dessous : aaaaaaaaaabbbbbbbbbbcccccccccc.json, où le nom du fichier (sans l'extension) correspond à l'ID de votre extension. L'emplacement dépend du système d'exploitation.

    Mac OS X:

    Pour un utilisateur spécifique : ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ Pour tous les utilisateurs: /Library/Application Support/Google/Chrome/External Extensions/

    Le fichier d'extension externe de tous les utilisateurs n'est en lecture que si chaque répertoire du chemin appartient à l'utilisateur root, inclut le groupe admin ou wheel, et n'est pas accessible en écriture à tous les utilisateurs. Le chemin d'accès doit également être exempt de liens symboliques. Ces restrictions empêchent un utilisateur non privilégié d'entraîner l'installation d'extensions pour tous les utilisateurs. Pour en savoir plus, consultez la section Dépannage.

    Linux :

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    Remarque:Utilisez chmod si nécessaire pour vous assurer que les fichiers aaaaaaaaaabbbbbbbbbbcccccccccc.json sont lisibles par tous.

  3. Linux uniquement: si vous effectuez l'installation à partir d'un fichier, spécifiez l'emplacement et la version de l'extension à l'aide des champs "external_crx" et "external_version" dans le fichier créé ci-dessus.

    • Exemple :
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • Remarque:Vous devez utiliser l'échappement pour chaque \` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"`.
    • Si vous effectuez l'installation à partir d'une URL de mise à jour, indiquez cette URL avec le nom de champ "external_update_url".
    • Exemple d'installation à partir d'un fichier .crx local (Linux uniquement):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Exemple d'installation à partir du Chrome Web Store (Mac et Linux):
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • Si vous souhaitez installer l'extension uniquement pour certains paramètres régionaux du navigateur, vous pouvez lister les paramètres régionaux acceptés dans le champ "supported_locale". Les paramètres régionaux peuvent spécifier des paramètres régionaux parents tels que "en". Dans ce cas, l'extension sera installée pour tous les paramètres régionaux anglais tels que "en-US", "en-GB", etc. Si vous sélectionnez un autre paramètre régional de navigateur non compatible avec l'extension, les extensions externes seront désinstallées. Si la liste "supported_locales" n'apparaît pas, l'extension est installée pour tous les paramètres régionaux.
    • Exemple :
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. Enregistrez le fichier JSON.

  5. Lancez Google Chrome et accédez à chrome://extensions. L'extension devrait apparaître dans la liste.

Résolution des problèmes d'autorisation de Mac OS

Sous Mac OS, les fichiers d'extensions externes de tous les utilisateurs ne sont lus que si les autorisations du système de fichiers empêchent les utilisateurs non privilégiés de les modifier. Si aucune extension externe ne s'affiche au lancement de Chrome, il se peut qu'il y ait un problème d'autorisation avec les fichiers de préférences des extensions externes. Pour le vérifier, procédez comme suit:

  1. Lancez le programme Console. Vous pouvez y accéder sous /Applications/Utilitaires/Console.
  2. Si l'icône la plus à gauche dans la console indique "Afficher la liste des journaux", cliquez dessus. Une deuxième colonne apparaît à gauche.
  3. Cliquez sur "Messages de la console" dans le volet de gauche.
  4. Recherchez la chaîne Impossible de lire les extensions externes. En cas de problème lors de la lecture des fichiers d'extensions externes, un message d'erreur s'affiche. Recherchez un autre message d'erreur qui devrait expliquer le problème juste au-dessus. Par exemple, si le message d'erreur suivant s'affiche : "Chemin /Bibliothèque/Application Support/Google/Chrome appartient au mauvais groupe", vous devez utiliser chgrp ou la boîte de dialogue "Obtenir des infos" du Finder pour remplacer le propriétaire de l'annuaire par le groupe "Administrateur".
  5. Une fois le problème résolu, relancez Chrome. Vérifiez que l'extension externe est bien installée. Il est possible qu'une erreur d'autorisation empêche Chrome de détecter une seconde erreur. Si l'extension externe n'a pas été installée, répétez ces étapes jusqu'à ce qu'aucune erreur ne s'affiche dans l'application de la console.

Utilisation du Registre Windows

  1. Recherchez ou créez la clé suivante dans le registre :
    • Windows 32 bits: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • Windows 64 bits: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. Sous la clé Extensions, créez une clé (dossier) portant le même nom que l'ID de votre extension (par exemple, aaaaaaaaaabbbbbbbbbbcccccccccc).
  3. Dans votre clé d'extension, créez une propriété"update_url" et définissez-la sur la valeur suivante : "https://clients2.google.com/service/update2/crx" (qui pointe vers le fichier crx de votre extension dans le Chrome Web Store):

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. Lancez le navigateur et accédez à chrome://extensions. L'extension devrait apparaître dans la liste.

Mise à jour et désinstallation

Google Chrome analyse les entrées de métadonnées dans les préférences et le registre à chaque démarrage du navigateur, et apporte les modifications nécessaires aux extensions externes installées.

Pour mettre à jour votre extension vers une nouvelle version, mettez à jour le fichier, puis mettez à jour la version dans les préférences ou le registre.

Pour désinstaller votre extension (par exemple, si votre logiciel est désinstallé), supprimez votre fichier de préférences (aaaaaaaaaabbbbbbbbcccccccccc.json) ou les métadonnées du registre.

Questions fréquentes

Cette section répond aux questions fréquentes concernant les extensions externes.

La méthodologie de "préinstallation" sera-t-elle toujours compatible avec Google Chrome à partir de M33 ?

Oui, mais uniquement en tant qu'installation à partir d'un update_URL du Chrome Web Store, et non à partir d'un chemin d'accès à un fichier local.

Puis-je spécifier une URL comme chemin d'accès à l'extension externe ?

Oui. Utilisez le fichier preferences JSON pour Mac OS X et Linux, ainsi que le registry sous Windows. L'extension doit être hébergée comme expliqué dans la section Hébergement. Dans le fichier de préférences, utilisez la propriété "external_update_url" pour pointer vers un fichier manifeste de mise à jour contenant l'URL de votre extension. Dans le registre Windows, utilisez la propriété "update_url".

Quelles sont les erreurs courantes lors de l'installation avec le fichier de préférences ?

  • L'ID ou la version ne sont pas spécifiés dans le .crx.
  • Le fichier .json (aaaaaaaaaabbbbbbbbbbcccccccccc.json) ne se trouve pas au bon endroit ou l'ID spécifié ne correspond pas à l'ID d'extension.
  • Erreur de syntaxe dans le fichier JSON (oubli de séparer les entrées par une virgule ou laisser une virgule de fin quelque part)
  • L'entrée du fichier JSON pointe vers le mauvais chemin d'accès à .crx (ou le chemin d'accès spécifié, mais sans nom de fichier)
  • Les barres obliques inverses dans le chemin UNC ne sont pas échappées (par exemple, "\\server\share\file" est incorrect ; il devrait s'agir de "\\\\server\\share\\extension")
  • Problèmes d'autorisation sur un partage réseau

Quelles sont les erreurs courantes lors de l'installation avec le registre ?

  • ID/version différent de celui indiqué sur le Chrome Web Store
  • Clé créée au mauvais emplacement dans le registre
  • L'entrée du Registre pointe vers le mauvais chemin d'accès au fichier .crx dans le Chrome Web Store.
  • Problèmes d'autorisation sur un partage réseau

Comment mettre à jour pas à pas mes fichiers binaires natifs et mon extension ?

Auparavant, lorsque les extensions hors magasin étaient acceptées, il était possible de mettre à jour les binaires natifs et l'extension à l'étape de verrouillage. Toutefois, les extensions hébergées sur le Chrome Web Store sont mises à jour via le mécanisme de mise à jour de Chrome que les développeurs ne contrôlent pas. Les développeurs d'extensions doivent veiller à mettre à jour les extensions qui dépendent du binaire natif (par exemple, les anciennes extensions utilisant NPAPI).

Que se passe-t-il si l'utilisateur désinstalle l'extension ?

Si l'utilisateur désinstalle l'extension via l'UI, elle ne sera plus installée ni mise à jour à chaque démarrage. En d'autres termes, l'extension externe figure sur la liste de blocage.

Comment se désinscrire de la liste de blocage ?

Si l'utilisateur désinstalle votre extension, vous devez respecter cette décision. Toutefois, si vous (le développeur) avez accidentellement désinstallé votre extension via l'interface utilisateur, vous pouvez supprimer la balise de liste de blocage en installant l'extension normalement via l'interface utilisateur, puis en la désinstallant.