Questions fréquentes

Si vous ne trouvez pas de réponse à votre question ici, consultez les questions fréquentes sur le Chrome Web Store, le [google-chrome-extension] sur Stack Overflow, le groupe chromium-extensions ou aide Google Store.

Général

Que sont les extensions Google Chrome ?

Les extensions Google Chrome sont des applications qui s'exécutent à l'intérieur du navigateur Chrome et fournissent des l'intégration à des sites Web ou services tiers, et la navigation personnalisée expériences.

Comment configurer Chrome pour le développement d'extensions ?

Tant que vous utilisez une version de Chrome compatible avec les extensions, vous disposez déjà de tout vous devez commencer à écrire votre propre extension. Vous pouvez commencer par activer le mode développeur.

Cliquez sur l'icône du menu Chrome, puis sélectionnez Extensions dans le menu Outils. Vérifiez que le "mode développeur" dans l'angle supérieur droit est cochée. Vous pouvez maintenant actualiser charger un répertoire de fichiers non empaqueté comme s'il s'agissait d'une extension empaquetée, etc. Pour une suivez le tutoriel, consultez la section Premiers pas.

Quelles sont les technologies utilisées pour créer des extensions pour Chrome ?

Les extensions sont écrites à l'aide des technologies Web standards que les développeurs utilisent pour créer sites Web. HTML est utilisé comme langage de balisage de contenu, CSS pour les styles et JavaScript pour l'écriture de script. Chrome étant compatible avec HTML5 et CSS3, les développeurs peuvent utiliser la dernière version du Web ouvert comme le canevas et les animations CSS dans leurs extensions. Les extensions ont aussi accès Plusieurs API JavaScript qui permettent d'exécuter des fonctions telles que l'encodage JSON et l'interaction avec le navigateur.

Les extensions sont-elles extraites du Web à chaque chargement du navigateur ?

Les extensions sont téléchargées par le navigateur Chrome lors de l'installation, puis sont exécutées sur un disque local afin d'améliorer les performances. Toutefois, si une nouvelle version de l'extension est transférée en ligne, elle sera automatiquement téléchargée en arrière-plan pour tous les utilisateurs disposant de l'extension installés. Les extensions peuvent également envoyer des demandes de contenu distant à tout moment, afin d’interagir avec un service web ou extraire de nouveaux contenus du Web.

Comment déterminer quelle version de Chrome est déployée sur quelle version ?

Pour déterminer quelle version de Chrome est actuellement disponible sur chacune des différentes plates-formes, consultez le site omahaproxy.appspot.com. Sur ce site, les données s'affichent dans un format semblable à celui-ci:

cf,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,canary,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####

Chaque ligne représente des informations sur une combinaison de plate-forme et de canal différente. Les plates-formes sont cf (Google Chrome Frame), linux, mac, win et cros (Google ChromeOS). La les chaînes listées sont canary, dev, beta et stable. Les deux nombres en quatre parties après le représentent les versions actuelle et antérieures de Chrome déployées sur cette plate-forme. combinaison de valeurs. Les autres informations sont des métadonnées sur la date de publication initiale des versions, ainsi que les numéros de révision associés à chaque build.

Fonctionnalités

Les extensions peuvent-elles envoyer des requêtes Ajax interdomaines ?

Oui. Les extensions peuvent envoyer des demandes interdomaines. Pour en savoir plus, consultez cette page.

Les extensions peuvent-elles utiliser des services Web tiers ?

Oui. Les extensions peuvent effectuer des requêtes Ajax interdomaines afin d'appeler des API distantes. directement. Les API qui fournissent des données au format JSON sont particulièrement faciles à utiliser.

Les extensions peuvent-elles encoder/décoder les données JSON ?

Oui. Étant donné que V8 (moteur JavaScript de Chrome) est compatible de façon native avec JSON.stringify et JSON.parse, vous peut utiliser ces fonctions dans vos extensions comme décrit ici sans inclure d'autres dans votre code.

Les extensions peuvent-elles stocker des données localement ?

Oui, les extensions peuvent utiliser localStorage pour stocker les données de chaîne de façon permanente. Avec l'outil intégré Chrome fonctions JSON, vous pouvez stocker des structures de données complexes dans localStorage. Pour les extensions qui doivent exécuter des requêtes SQL sur leurs données stockées, Chrome implémente des bases de données SQL côté client, ce qui peuvent également être utilisés.

Les extensions peuvent-elles utiliser OAuth ?

Oui, certaines extensions utilisent OAuth pour accéder aux API de données à distance. La plupart des développeurs trouvent pratique d'utiliser une bibliothèque OAuth JavaScript pour simplifier le processus de signature OAuth ; requêtes.

Les extensions peuvent-elles créer une UI en dehors de la page Web affichée ?

Oui, votre extension peut ajouter des boutons à l'interface utilisateur du navigateur Chrome. Voir Navigateur actions et actions sur la page.

Une extension peut également créer des notifications pop-up, qui s'affichent en dehors de la fenêtre du navigateur. Consultez le notifications de bureau.

Les extensions peuvent-elles écouter les clics sur les onglets et les boutons de navigation Chrome ?

Non. Les extensions sont limitées à l'écoute des événements décrits dans la documentation de l'API.

Deux extensions peuvent-elles communiquer entre elles ?

Oui, les extensions peuvent transmettre des messages à d'autres extensions. Consultez la documentation sur la transmission de messages. pour en savoir plus.

Les extensions peuvent-elles utiliser Google Analytics ?

Oui, les extensions étant conçues comme les sites Web, elles peuvent utiliser Google Analytics pour effectuer le suivi sur l'utilisation de l'IA générative. Toutefois, vous devez modifier le code de suivi afin d'extraire une version HTTPS de la page bibliothèque. Pour en savoir plus, consultez ce tutoriel.

Les extensions peuvent-elles modifier les URL chrome:// ?

Non. Les API des extensions ont été conçues pour minimiser les problèmes de rétrocompatibilité. lors du lancement de nouvelles versions du navigateur. Autoriser les scripts de contenu sur chrome:// URL signifierait que les développeurs commenceront à s'appuyer sur le DOM, le CSS et le JavaScript de ces pages pour rester les mêmes. Dans le meilleur des cas, ces pages n'ont pas pu être mises à jour aussi rapidement qu'elles le sont actuellement. Dans le pire des cas, cela peut signifier qu'une mise à jour de l'une de ces pages peut entraîner une extension ce qui entraîne l'arrêt de certains éléments clés du navigateur pour les utilisateurs de cette extension.

Le remplacement complet du contenu hébergé sur ces URL est autorisé, car il oblige un développeur d'extensions à implémenter toutes les fonctionnalités de son choix sans dépendre l'implémentation interne du navigateur de rester la même.

Les extensions peuvent-elles ouvrir des fenêtres pop-up d'action du navigateur/de la page sans intervention de l'utilisateur ?

Non, les fenêtres pop-up ne peuvent s'ouvrir que si l'utilisateur clique sur la page correspondante ou sur l'action correspondante du navigateur. Une impossible d'ouvrir sa fenêtre pop-up par programmation.

Les extensions peuvent-elles maintenir les pop-ups ouverts lorsque l'utilisateur clique pour les ignorer ?

Non, les fenêtres pop-up se ferment automatiquement lorsque l'utilisateur sélectionne une partie du navigateur en dehors de . Il n'existe aucun moyen de garder le pop-up ouvert une fois que l'utilisateur a cliqué ailleurs.

Les extensions peuvent-elles recevoir une notification lorsqu'elles sont installées/désinstallées ?

Vous pouvez écouter l'événement runtime.onInstalled pour être averti lorsque votre extension est installé ou mis à jour, ou lorsque Chrome est mis à jour lui-même. Il n'existe pas d'événement correspondant pour quand si votre extension est désinstallée.

Développement

Comment créer une interface utilisateur pour mon extension ?

Les extensions utilisent du code HTML et CSS pour définir leurs interfaces utilisateur. Vous pouvez donc utiliser des commandes de formulaire standards. pour créer votre interface utilisateur ou lui appliquer un style CSS, comme pour une page Web. En outre, les extensions pouvez ajouter des éléments d'interface utilisateur limités à Chrome.

Quelle quantité de données puis-je stocker dans localStorage ?

Les extensions peuvent stocker jusqu'à 5 Mo de données dans localStorage.

Comment créer un menu d'options pour mon application ?

Vous pouvez laisser les utilisateurs définir les options de votre extension en créant une page d'options, qui est une page HTML simple qui est chargée lorsqu'un utilisateur clique sur les « options » de votre extension. Cette page peut lire et écrire des paramètres sur localStorage, ou même envoyer des options à un serveur Web afin que elles peuvent être conservées d'un navigateur à l'autre.

Quels outils de débogage sont à la disposition des développeurs d'extensions ?

Les outils de développement intégrés à Chrome peuvent être utilisés pour déboguer des extensions ainsi que des pages Web. Voir ceci ce tutoriel sur le débogage des extensions.

Pourquoi les correspondances avec caractères génériques ne fonctionnent-elles pas pour les domaines de premier niveau (TLD) ?

Vous ne pouvez pas utiliser des modèles de correspondance avec des caractères génériques tels que http://google.*/* pour établir une correspondance avec des domaines de premier niveau (tels que http://google.es et http://google.fr), car il est plus complexe de restreindre correspondre uniquement aux domaines souhaités.

Dans l'exemple de http://google.*/*, les domaines Google seraient mis en correspondance, mais ce serait également le cas. http://google.someotherdomain.com En outre, de nombreux sites ne possèdent pas tous les domaines de premier niveau de leur domaine. Par exemple, supposons que vous souhaitiez utiliser http://example.*/* pour établir une correspondance avec http://example.com. et http://example.es, mais http://example.net est un site hostile. Si votre extension présente un bug, Le site hostile pourrait potentiellement attaquer votre extension afin d'accéder au contenu de l'extension de droits plus élevés.

Vous devez explicitement énumérer les domaines de premier niveau sur lesquels vous souhaitez exécuter votre extension.

Pourquoi l'API de gestion ne déclenche-t-elle pas d'événements lorsque mon extension est installée/désinstallée ?

L'API de gestion était destinée à faciliter la création d'extensions de remplacement de page d'onglets. Ce n'était pas destinés à déclencher des événements d'installation ou de désinstallation pour l'extension actuelle.

Comment une extension peut-elle déterminer si elle s'exécute pour la première fois ?

Vous pouvez écouter l'événement runtime.onInstalled. Consultez cette section des questions fréquentes.

Fonctionnalités et bugs

Je crois que j'ai trouvé un bug ! Comment m'assurer qu'il est corrigé ?

Lors du développement d'une extension, vous constaterez peut-être un comportement qui ne correspond pas aux extensions et peut être le résultat d'un bug dans Chrome. La meilleure chose à faire est de s'assurer Le problème doit être signalé, et l'équipe Chromium dispose de suffisamment d'informations pour reproduire le problème. comportemental.

Pour ce faire, procédez comme suit:

  1. Créez une extension de test minimale qui illustre le problème que vous souhaitez signaler. Ce l'extension doit contenir le moins de code possible pour illustrer le bug. Il s'agit en général 100 lignes de code maximum Souvent, les développeurs ne parviennent pas à reproduire leurs problèmes ce qui indique que le bug se trouve dans leur propre code.
  2. Effectuez une recherche dans l'outil de suivi des problèmes à l'adresse http://crbug.com pour voir si quelqu'un a déjà signalé un problème similaire problème. La plupart des problèmes relatifs aux extensions sont classés sous component=Platform>Extensions. Par conséquent, pour rechercher un bug d'extension lié à la fonction chrome.tabs.executeScript (par exemple), recherchez "component=Platform>Extensions Type=Bug chrome.tabs.executeScript", ce qui donnera cette liste de résultats.
  3. Si vous trouvez un bug décrivant votre problème, cliquez sur l'icône en forme d'étoile pour être averti lorsque le bug est signalé. reçoit une mise à jour. Ne répondez pas au bug en disant "Moi aussi". ou demandez « quand ce sera-t-il corrigé ?"; ces mises à jour peuvent entraîner l'envoi de centaines d'e-mails. Ajoutez un commentaire uniquement si vous avez d'informations utiles (par exemple, un meilleur scénario de test ou une suggestion de solution).
  4. Si vous n'avez pas trouvé de bug à suivre, signalez-le à l'adresse http://crbug.com/new. Lorsque vous remplissez ce formulaire, soyez aussi explicite que possible: choisissez un titre descriptif, expliquez les étapes à suivre pour reproduire le bug, et décrivez le comportement attendu et réel. Joindre votre test au rapport et ajoutez des captures d'écran si nécessaire. Plus il est facile pour votre rapport d'autres personnes pourraient reproduire votre problème, plus vous avez de chances qu'il soit résolu rapidement.
  5. Attendez que le bug soit mis à jour. La plupart des nouveaux bugs sont triés dans un délai d'une semaine, mais cela peut la mise à jour prend parfois plus de temps. Ne répondez pas au bug en demandant quand il se produira. ou corriger les problèmes. Si, au bout de deux semaines, votre bug n'a pas été modifié, envoyez un message au groupe de discussion avec un lien vers votre bug.
  6. Si vous avez initialement signalé votre bug dans le groupe de discussion et que vous avez été dirigé vers cette rubrique de FAQ, répondre à votre fil de discussion d'origine avec un lien vers le bug que vous avez ajouté aux favoris ou signalé. Cela vous permettra pour permettre aux autres utilisateurs rencontrant le même problème de trouver plus facilement le bon bug.

J'ai une demande de fonctionnalité. Comment puis-je le signaler ?

Si vous identifiez une fonctionnalité (surtout si elle est liée à une API expérimentale) qui pourrait être ajoutée à améliorer l'expérience de développement des extensions, assurez-vous d'envoyer une demande appropriée pour résoudre le problème coach électronique.

Pour ce faire, procédez comme suit:

  1. Effectuez une recherche dans l'outil de suivi des problèmes disponible à l'adresse http://crbug.com. une fonctionnalité similaire. La plupart des demandes liées aux extensions sont classées sous component=Platform>Extensions, pour rechercher une demande de fonctionnalité d'extension liée à des raccourcis clavier (par exemple), rechercher "component=Platform>Extensions Type=Feature shortcuts", qui vous permettra d'obtenir cette liste résultats.
  2. Si vous trouvez une demande qui correspond à votre demande, cliquez sur l'icône en forme d'étoile pour être averti lorsque le bug reçoit une mise à jour. Ne répondez pas au bug en disant "Moi aussi". ou demandez « quand ce sera-t-il implemented?"; ces mises à jour peuvent entraîner l'envoi de centaines d'e-mails.
  3. Si aucun ticket approprié n'a été trouvé, déposez une nouvelle demande sur la page http://crbug.com/new. Être lorsque vous remplissez ce formulaire: choisissez un titre descriptif et expliquez exactement la fonctionnalité que vous souhaitez et comment vous prévoyez de l'utiliser.
  4. Attendez que le ticket soit mis à jour. La plupart des nouvelles demandes sont triées dans un délai d'une semaine, même si cela peut la mise à jour prend parfois plus de temps. Ne répondez pas à la demande d'assistance pour demander à quelle date elle sera disponible. ajouté. Si votre demande n'a pas été modifiée au bout de deux semaines, envoyez un message au groupe de discussion disposant d'un lien vers votre demande.
  5. Si vous avez initialement signalé votre demande dans le groupe de discussion et que vous avez été dirigé vers cette FAQ répondez à votre fil de discussion d'origine avec un lien vers la demande que vous avez ajoutée à vos favoris ou ouverte. Cela permettra aider les autres personnes ayant la même demande à trouver le bon billet.