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 d'un fichier manifeste et certaines fonctionnalités courantes. Ils peuvent servir de 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//"
]
}
]
}
Injecter 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"]
}
Pop-up avec les autorisations
{
"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 du 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ée 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 aux paramètres régionaux, consultez Internationalisation. "version"- Chaîne qui identifie le numéro de version de l'extension. Pour en savoir plus sur la mise en forme des numéros de version, consultez Version.
Clés requises par le Chrome Web Store
"description"- Chaîne décrivant l'extension 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 savoir comment localiser les descriptions, consultez Internationalisation.
"icons"- Une ou plusieurs icônes représentant votre extension. Pour en savoir plus sur les bonnes pratiques, consultez Icons.
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. "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 À propos des service workers d'extension.
"chrome_settings_overrides"- Définit les remplacements pour les paramètres Chrome sélectionnés. Pour en savoir plus, consultez Remplacer les paramètres Chrome.
"chrome_url_overrides"- Définit les remplacements pour les pages Chrome par défaut. Pour en savoir plus, consultez Remplacer les 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 les restrictions concernant les scripts, les styles et les autres ressources qu'une extension peut utiliser. Pour en savoir plus, consultez Content Security Policy.
"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, 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. Par exemple, "en" et "pt_BR". Cette clé est requise 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 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 l'URL de la page d'accueil de l'extension. Si cette valeur n'est pas définie, la page d'accueil est définie par défaut sur la page de l'extension sur le Chrome Web Store. 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 modèles de correspondance d'URL. L'autorisation de l'utilisateur pour ces sites est demandée lors de l'installation. Pour en savoir plus, consultez Autorisations d'hôte.
"import"- Permet d'importer des ressources dans l'extension. Pour en savoir plus, consultez 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 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 Clé.
"mime_types_handler"- Enregistre l'extension en tant que gestionnaire pour les types MIME compatibles, tels que
application/pdf. Pour en savoir plus, consultez l'API mimeHandler. "minimum_chrome_version"- Définit la version la plus ancienne de Chrome 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 d'une version de Chrome antérieure à la version minimale voient un avertissement "Non compatible" dans le Chrome Web Store et ne peuvent pas installer votre extension. Si vous ajoutez ce paramètre à une extension existante, les utilisateurs dont la version de Chrome est ancienne ne recevront pas les mises à jour automatiques de votre extension. Cela inclut les utilisateurs professionnels en mode éphémère. "oauth2"- Autorise l'utilisation d'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 les autorisations d'hôte facultatives pour votre extension.
"optional_permissions"- Déclare les autorisations facultatives de votre extension.
"options_page"- Spécifie le chemin d'accès à un fichier options.html que l'extension doit utiliser comme page d'options. Pour en savoir plus, consultez Donner des options aux utilisateurs.
"options_ui"- Spécifie le 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 d'intégration.
"permissions"- Permet d'utiliser des API d'extension spécifiques. Pour obtenir une explication générale, consultez Autorisations. Les pages de référence des API individuelles listent les autorisations requises.
"requirements"- Liste les technologies requises pour utiliser l'extension. Pour obtenir la liste des exigences compatibles, consultez Exigences.
"sandbox"- Définit un ensemble de pages d'extension qui n'ont pas accès aux API d'extension ni à l'accès direct aux pages non mises en bac à sable. Pour en savoir plus, consultez Sandbox.
"short_name"- Chaîne contenant une version abrégée du nom de l'extension à utiliser lorsque l'espace de caractères est limité. Il ne doit pas dépasser 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 la zone de stockage gérée. Pour en savoir plus, consultez 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"ne sont pas autorisés. Si aucune valeur n'est 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 Ressources accessibles sur le Web.
Clés 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"- Autorise l'utilisation de l'API Input Method Editor. Pour en savoir plus, consultez
input_components.