Format du fichier manifeste

Chaque extension doit disposer d'un fichier manifest.json dans son répertoire racine qui liste des informations importantes sur la structure et le comportement de cette extension. Cette page explique la structure des fichiers manifestes d'extension et les fonctionnalités qu'ils peuvent inclure.

Exemples

Les exemples de fichiers manifestes suivants montrent la structure de base du fichier manifeste et certaines fonctionnalités couramment utilisées comme point de départ pour créer votre propre fichier manifeste:

Fichier manifeste minimal

{
  "manifest_version": 3,
  "name": "Minimal Manifest",
  "version": "1.0.0",
  "description": "A basic example extension with only required keys",
  "icons": {
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
}

Enregistrer un script de contenu

{
  "manifest_version": 3,
  "name": "Run script automatically",
  "description": "Runs a script on www.example.com automatically when user installs the extension",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "content_scripts": [
    {
      "js": [
        "content-script.js"
      ],
      "matches": [
        "http://*.example.com//"
      ]
    }
  ]
}

Insérer un script de contenu

{
  "manifest_version": 3,
  "name": "Click to run",
  "description": "Runs a script when the user clicks the action toolbar icon.",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "background": {
    "service_worker": "service-worker.js"
  },
  "action": {
    "default_icon": {
      "16": "images/icon-16.png",
      "32": "images/icon-32.png",
      "48": "images/icon-48.png",
      "128": "images/icon-128.png"
    }
  },
  "permissions": ["scripting", "activeTab"]
}
{
  "manifest_version": 3,
  "name": "Popup extension that requests permissions",
  "description": "Extension that includes a popup and requests host permissions and storage permissions .",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "action": {
    "default_popup": "popup.html"
  },
  "host_permissions": [
    "https://*.example.com/"
  ],
  "permissions": [
    "storage"
  ]
}

Panneau latéral

{
  "manifest_version": 3,
  "name": "Side panel extension",
  "version": "1.0",
  "description": "Extension with a default side panel.",
  "icons": {
    "16": "images/icon-16.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "side_panel": {
    "default_path": "sidepanel.html"
  },
  "permissions": ["sidePanel"]
}

Clés de fichier manifeste

Vous trouverez ci-dessous la liste de toutes les clés de fichier manifeste acceptées.

Clés requises par la plate-forme Extensions

"manifest_version"
Entier spécifiant la version du format de fichier manifeste utilisé par votre extension. La seule valeur acceptée est 3.
"name"
Chaîne qui identifie l'extension dans le Chrome Web Store, la boîte de dialogue d'installation et la page des extensions Chrome de l'utilisateur (chrome://extensions). La longueur maximale est de 75 caractères. Pour en savoir plus sur l'utilisation de noms spécifiques à une langue, consultez la section Internationalisation.
"version"
Chaîne qui identifie le numéro de version de l'extension. Pour en savoir plus sur la mise en forme du numéro de version, consultez Version.

Clés requises par le Chrome Web Store

"description"
Chaîne décrivant l'extension à la fois sur le Chrome Web Store et sur la page de gestion des extensions de l'utilisateur. La longueur ne doit pas dépasser 132 caractères. Pour en savoir plus sur la localisation des descriptions, consultez Internationalisation.
"icons"
Une ou plusieurs icônes représentant votre extension. Pour en savoir plus sur les bonnes pratiques, consultez la section Icônes.

Clés facultatives

"action"
Définit l'apparence et le comportement de l'icône de l'extension dans la barre d'outils Google. Pour en savoir plus, consultez chrome.action.
"author"
Spécifie l'adresse e-mail du compte utilisé pour créer l'extension.
"background"
Spécifie le fichier JavaScript contenant le service worker de l'extension, qui sert de gestionnaire d'événements. Pour en savoir plus, consultez la section À propos des workers de service d'extension.
"chrome_settings_overrides"
Définit des forçages pour certains paramètres Chrome. Pour en savoir plus, consultez Forcer les paramètres de Chrome.
"chrome_url_overrides"
Définit des forçages pour les pages Chrome par défaut. Pour en savoir plus, consultez Forcer des pages Chrome.
"commands"
Définit les raccourcis clavier dans l'extension. Pour en savoir plus, consultez chrome.commands.
"content_scripts"
Spécifie les fichiers JavaScript ou CSS à utiliser lorsque l'utilisateur ouvre certaines pages Web. Pour en savoir plus, consultez Scripts de contenu.
"content_security_policy"
Définit des restrictions sur les scripts, les styles et les autres ressources qu'une extension peut utiliser. Pour en savoir plus, consultez le Règlement sur la sécurité du contenu.
"cross_origin_embedder_policy"
Spécifie une valeur pour l'en-tête HTTP Cross-Origin-Embedder-Policy, qui configure l'intégration de ressources multi-origines dans une page d'extension.
"cross_origin_opener_policy"
Spécifie une valeur pour l'en-tête HTTP Cross-Origin-Opener-Policy, ce qui vous permet de vous assurer qu'une page d'extension de premier niveau ne partage pas de groupe de contexte de navigation avec des documents multi-domaines.
"declarative_net_request"
Définit des règles statiques pour l'API declarativeNetRequest, qui permet de bloquer et de modifier les requêtes réseau.
"default_locale"
Chaîne qui définit la langue par défaut d'une extension compatible avec plusieurs paramètres régionaux. Exemples : "en" et "pt_BR". Cette clé est obligatoire dans les extensions localisées et ne doit pas être utilisée dans les extensions non localisées. Pour en savoir plus, consultez Internationalisation.
"devtools_page"
Définit les pages qui utilisent les API DevTools.
"export"
Permet d'exporter des ressources depuis l'extension. Pour en savoir plus, consultez la section Exporter.
"externally_connectable"
Spécifie les autres pages et extensions pouvant se connecter à vos extensions. Pour en savoir plus, consultez "externally_connectable".
"homepage_url"
Chaîne spécifiant une URL pour la page d'accueil de l'extension. Si ce paramètre n'est pas défini, la page d'accueil indique par défaut la page du Chrome Web Store de l'extension. Ce champ est particulièrement utile si vous hébergez l'extension sur votre propre site.
"host_permissions"
Liste les pages Web avec lesquelles votre extension est autorisée à interagir, définies à l'aide de formats de correspondance d'URL. L'autorisation de l'utilisateur pour ces sites est demandée au moment de l'installation. Pour en savoir plus, consultez la section Autorisations d'hôte.
"import"
Permet d'importer des ressources dans l'extension. Pour en savoir plus, consultez la section Importer.
"incognito"
Définit le comportement de l'extension en mode navigation privée. Les valeurs acceptées sont "spanning", "split" et "not_allowed". Pour en savoir plus, consultez la section Navigation privée.
"key"
Spécifie l'ID de votre extension pour différents cas d'utilisation de développement. Pour en savoir plus, consultez la section Clé.
"minimum_chrome_version"
Définit la version de Chrome la plus ancienne pouvant installer votre extension. La valeur doit être une sous-chaîne d'une chaîne de version de navigateur Chrome existante, telle que "107" ou "107.0.5304.87". Les utilisateurs disposant de versions de Chrome antérieures à la version minimale voient un avertissement "Non compatible" dans le Chrome Web Store et ne peuvent pas installer votre extension. Si vous ajoutez cette valeur à une extension existante, les utilisateurs dont la version de Chrome est antérieure ne recevront pas de mises à jour automatiques de votre extension. Cela inclut les utilisateurs professionnels en mode éphémère.
"oauth2"
Permet d'utiliser un ID de sécurité OAuth 2.0. La valeur de cette clé doit être un objet avec des propriétés "client_id" et "scopes". Pour en savoir plus, consultez le tutoriel OAuth 2.0.
"omnibox"
Permet à l'extension d'enregistrer un mot clé dans la barre d'adresse de Chrome. Pour en savoir plus, consultez Omnibox.
"optional_host_permissions"
Déclare des autorisations d'hôte facultatives pour votre extension.
"optional_permissions"
Déclare les autorisations facultatives pour votre extension.
"options_page"
Spécifie un chemin d'accès à un fichier options.html que l'extension utilisera comme page d'options. Pour en savoir plus, consultez Donner aux utilisateurs des options.
"options_ui"
Spécifie un chemin d'accès à un fichier HTML qui permet à un utilisateur de modifier les options d'extension depuis la page des extensions Chrome. Pour en savoir plus, consultez Options intégrées.
"permissions"
Active l'utilisation d'API d'extension spécifiques. Pour une explication générale, consultez la section Autorisations. Les pages de référence des API individuelles indiquent les autorisations requises.
"requirements"
Liste les technologies requises pour utiliser l'extension. Pour obtenir la liste des exigences compatibles, consultez la section Exigences.
"sandbox"
Définit un ensemble de pages d'extension qui n'ont pas accès aux API d'extension ni à un accès direct aux pages hors bac à sable. Pour en savoir plus, consultez la page Bac à sable.
"short_name"
Chaîne contenant une version abrégée du nom de l'extension à utiliser lorsque l'espace de caractères est limité. La longueur maximale est de 12 caractères. Si cette valeur n'est pas définie, une version tronquée de la clé "name" s'affiche à la place.
"side_panel"
Identifie un fichier HTML à afficher dans un sidePanel.
"storage"
Déclare un schéma JSON pour l'espace de stockage géré. Pour en savoir plus, consultez Fichier manifeste pour les zones de stockage.
"tts_engine"
Enregistre l'extension en tant que moteur de synthèse vocale. Pour en savoir plus, consultez l'API ttsEngine.
"update_url"
Chaîne contenant l'URL de la page des mises à jour de l'extension. Utilisez cette clé si vous hébergez votre extension en dehors du Chrome Web Store.
"version_name"
Chaîne décrivant la version de l'extension. (par exemple, "1.0 beta" et "build rc2"). Si cette valeur n'est pas spécifiée, la valeur "version" s'affiche à la place sur la page de gestion des extensions.
"web_accessible_resources"
Définit les fichiers de l'extension auxquels les pages Web ou d'autres extensions peuvent accéder. Pour en savoir plus, consultez la section Ressources accessibles sur le Web.

Touches ChromeOS facultatives

"file_browser_handlers"
Fournit un accès à l'API fileBrowserHandler, qui permet aux extensions d'accéder à l'explorateur de fichiers ChromeOS.
"file_handlers"
Spécifie les types de fichiers que les extensions ChromeOS doivent gérer. Pour en savoir plus, consultez file_handlers.
"file_system_provider_capabilities"
Permet d'accéder à l'API fileSystemProvider, qui permet aux extensions de créer des systèmes de fichiers que ChromeOS peut utiliser.
"input_components"
Permet d'utiliser l'API Input Method Editor. Pour en savoir plus, consultez input_components.