Chaque extension doit disposer d'un fichier manifest.json dans son répertoire racine, qui répertorie des informations importantes sur la structure et le comportement de cette extension.
Cette page explique la structure des fichiers manifestes des extensions et les fonctionnalités qu'ils peuvent inclure.
Exemples
Les exemples de fichiers manifestes suivants présentent la structure de base d'un 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//"
]
}
]
}
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 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 compatibles.
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 savoir comment utiliser des noms spécifiques à une langue, consultez Internationalisation. "version"- Chaîne qui identifie le numéro de version de l'extension. Pour en savoir plus sur le format du numéro de version, consultez Version.
Clés requises par le Chrome Web Store
"description"- Chaîne qui décrit l'extension à la fois sur le Chrome Web Store et sur la page de gestion des extensions de l'utilisateur. La longueur maximale est de 132 caractères. Pour savoir comment localiser des 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 fait office de gestionnaire d'événements. Pour en savoir plus, consultez À propos des service workers.
"chrome_settings_overrides"- Définit les remplacements pour certains paramètres Chrome. 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 sur les scripts, les styles et les autres ressources qu'une extension peut utiliser. Pour en savoir plus, consultez Stratégie de 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-domaines 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'declarativeNetRequest 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 langues. 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 DevTools.
"export"- Permet d'exporter des ressources à partir de l'extension. Pour en savoir plus, consultez Exporter.
"externally_connectable"- Spécifie les autres pages et extensions qui peuvent 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 par défaut la page Chrome Web Store de l'extension. Ce champ est particulièrement utile si vous hébergez l'extension sur votre propre site.
"host_permissions"- Répertorie 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 compatibles 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é.
"minimum_chrome_version"- Définit la version 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 dont la version de Chrome est 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 cette option à 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
"client_id"et"scopes"propriétés. 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 pour votre extension.
"options_page"- Spécifie un chemin d'accès à un fichier options.html que l'extension doit utiliser comme page d'options. Pour en savoir plus, consultez Offrir des options aux utilisateurs.
"options_ui"- Spécifie un chemin d'accès à un fichier HTML qui permet à un utilisateur de modifier les options d'extension à partir de la page des extensions Chrome. Pour en savoir plus, consultez Options intégrées.
"permissions"- Permet d'utiliser des API d'extension spécifiques. Pour une explication générale, consultez Autorisations. Les pages de référence pour les API individuelles listent les autorisations requises.
"requirements"- Répertorie 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 aux pages non isolées. 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é. 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 la zone de stockage gérée. 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 de 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 Ressources accessibles sur le Web.
Clés ChromeOS facultatives
"file_browser_handlers"- Fournit un accès à l'
fileBrowserHandlerAPI, 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'
fileSystemProviderAPI, qui permet aux extensions de créer des systèmes de fichiers que ChromeOS peut utiliser. "input_components"- Permet d'utiliser l'API de l'éditeur de mode de saisie. Pour en savoir plus, consultez
input_components.