Les extensions, les thèmes et les applications sont simplement des bundles de ressources, encapsulés dans un fichier manifest.json
qui décrit le contenu du package. Le format de ce fichier est généralement stable, mais des modifications destructives doivent parfois être apportées pour résoudre des problèmes importants.
Les développeurs doivent spécifier la version de la spécification du fichier manifeste que leur package cible en définissant une clé manifest_version
dans leur fichier manifeste.
Version actuelle
Les développeurs doivent actuellement spécifier 'manifest_version': 2
:
{
...,
"manifest_version": 2,
...
}
La version 1 de Manifest est obsolète dans Chrome 18. La compatibilité sera supprimée selon le calendrier suivant.
Calendrier de prise en charge des fichiers Manifest version 1
Août 2012
- Le Web Store bloquera la création d'extensions manifestes version 1.
- Le Web Store autorisera les mises à jour des extensions Manifest version 1 existantes.
Mars 2013
- Le Web Store bloquera les mises à jour des extensions du fichier manifeste version 1 le 4 mars 2013.
Avril 2013
- Chrome 27 bêta cessera de regrouper les extensions du fichier manifeste version 1 (ou de les charger à des fins de développement).
Juin 2013
- Le Web Store supprimera les extensions Manifest version 1 du bandeau, des résultats de recherche et des pages de catégories.
- Des e-mails d'avis seront envoyés à tous les développeurs avec des extensions du fichier manifeste version 1 toujours dans le Play Store pour leur rappeler que ces extensions seront annulées et leur fournir des instructions de mise à jour.
Septembre 2013
- Le Web Store annulera la publication de toutes les extensions du fichier manifeste version 1.
- Un dernier avis sera envoyé par e-mail aux développeurs dont les extensions du fichier manifeste version 1 sont toujours disponibles sur le Web Store.
- Chrome continuera de charger et d'exécuter les extensions du fichier manifeste (version 1) installées.
Janvier 2014
- Chrome arrêtera de charger ou d'exécuter les extensions du fichier manifeste version 1.
Changements entre les versions 1 et 2
- Une stratégie de sécurité du contenu est définie sur
`script-src 'self'; object-src 'self';
par défaut. Cela a diverses conséquences sur les développeurs, décrites en détail dans la documentation decontent_security_policy
. - Les ressources d'un package ne sont plus disponibles par défaut pour les sites Web externes (sous la forme de l'élément
src
d'une image ou d'une balisescript
). Si vous souhaitez qu'un site Web puisse charger une ressource contenue dans votre package, vous devez l'ajouter explicitement à la liste d'autorisation via l'attribut manifesteweb_accessible_resources
. Cela est particulièrement utile pour les extensions qui créent une interface sur un site Web via l'injection de scripts de contenu. - La propriété
background_page
a été remplacée par une propriétébackground
contenant soit une propriétéscripts
, soit une propriétépage
. Pour en savoir plus, consultez la documentation sur les pages d'événements. Modifications apportées aux actions du navigateur:
- La clé
browser_actions
du fichier manifeste et l'APIchrome.browserActions
ont été supprimées. Utilisez plutôtbrowser_action
etchrome.browserAction
au singulier. - La propriété
icons
debrowser_action
a été supprimée. Utilisez plutôt la propriétédefault_icon
ou browserAction.setIcon. - La propriété
name
debrowser_action
a été supprimée. Utilisez plutôt la propriétédefault_title
ou browserAction.setTitle. - La propriété
popup
debrowser_action
a été supprimée. Utilisez plutôt la propriétédefault_popup
ou browserAction.setPopup. - La propriété
default_popup
debrowser_action
ne peut plus être spécifiée en tant qu'objet. Il doit s'agir d'une chaîne.
- La clé
Modifications des actions sur la page:
- La clé
page_actions
du fichier manifeste et l'APIchrome.pageActions
ont été supprimées. Utilisez plutôtpage_action
etchrome.pageAction
au singulier. - La propriété
icons
depage_action
a été supprimée. Utilisez plutôt la propriétédefault_icon
ou pageAction.setIcon. - La propriété
name
depage_action
a été supprimée. Utilisez plutôt la propriétédefault_title
ou pageAction.setTitle. - La propriété
popup
depage_action
a été supprimée. Utilisez plutôt la propriétédefault_popup
ou pageAction.setPopup. - La propriété
default_popup
depage_action
ne peut plus être spécifiée en tant qu'objet. Il doit s'agir d'une chaîne.
- La clé
L'API
chrome.self
a été supprimée. Utilisezchrome.extension
à la place.chrome.extension.getTabContentses
(!!!) etchrome.extension.getExtensionTabs
ont disparu. Utilisez extension.getViews à la place.Port.tab
a disparu. Utilisez plutôt runtime.Port.