Mettre à jour le fichier manifeste

Convertir un fichier manifeste V2 en fichier manifeste V3

Le fichier manifest.json nécessite un format légèrement différent pour Manifest V3 et Manifest V2. Cette page décrit les modifications qui ne concernent que le fichier manifest.json. Cependant, de nombreuses modifications apportées aux scripts et aux pages nécessitent également de modifier le fichier manifeste. Ces modifications sont couvertes par les tâches de migration qui les concernent.

Modifier le numéro de version du fichier manifeste

Modifiez la valeur du champ "manifest_version" de 2 à 3.

Manifest V2
{
  ...
  "manifest_version": 2
  ...
}
Manifest V3
{
  ...
  "manifest_version": 3
  ...
}

Mettre à jour les autorisations d'hôte

Les autorisations d'hôte dans Manifest V3 sont un champ distinct. Vous ne les spécifiez pas dans "permissions" ni dans "optional_permissions".

Les scripts de contenu restent sous "content_scripts.matches". Pour en savoir plus sur "content_scripts.matches", consultez Injecter avec des déclarations statiques.

Manifest V2
{
  ...
  "permissions": [
    "tabs",
    "bookmarks",
    "https://www.blogger.com/",
  ],
  "optional_permissions": [
    "unlimitedStorage",
    "*://*/*",
  ]
  ...
}
Manifest V3
{
  ...
  "permissions": [
    "tabs",
    "bookmarks"
  ],
  "optional_permissions": [
    "unlimitedStorage"
  ],
  "host_permissions": [
    "https://www.blogger.com/",
  ],
  "optional_host_permissions": [
    "*://*/*",
  ]
  ...
}

Mettre à jour les ressources accessibles sur le Web

Les ressources accessibles sur le Web sont des fichiers inclus dans une extension, auxquels les pages Web ou d'autres extensions peuvent accéder. Comme implémenté dans Manifest V2, le champ "web_accessible_resources" permet aux sites Web et aux pirates informatiques de détecter les extensions lorsqu'elles choisissent d'exposer des ressources. Cela générait des opportunités de fingerprinting ou d'accès involontaire aux ressources.

Manifest V3 limite l'exposition en limitant les sites Web et les extensions autorisés à accéder aux ressources de votre extension. Au lieu de fournir une liste de fichiers comme précédemment, vous fournissez désormais un tableau d'objets, chacun mappant un ensemble de ressources à un ensemble d'URL ou d'ID d'extension.

L'exemple ci-dessous compare les ressources accessibles sur le Web entre Manifest V2 et Manifest V3. Dans Manifest V2, les ressources spécifiées étaient accessibles par défaut à tous les sites Web. Dans le code Manifest V3 ci-dessous, ces ressources ne sont disponibles que pour https://example.com, tandis que seules certaines images sont disponibles pour tous les sites Web.

Pour en savoir plus, consultez Ressources accessibles sur le Web et Modèles de correspondance.

Manifest V2
{
  ...
  "web_accessible_resources": [
    "images/*",
    "style/extension.css",
    "script/extension.js"
  ],
  ...
}
Manifest V3
{
  ...
    "web_accessible_resources": [
    {
      "resources": [
        "images/*"
      ],
      "matches": [
        "*://*/*"
      ]
    },
    {
      "resources": [
        "style/extension.css",
        "script/extension.js"
      ],
      "matches": [
        "https://example.com/*"
      ]
    }
  ],
  ...
}