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 le fichier manifeste V3 que pour le fichier manifeste V2. Cette page décrit les modifications qui ne concernent que le fichier manifest.json. Cependant, la plupart des modifications apportées aux scripts et aux pages nécessitent également des changements dans le fichier manifeste. Ces modifications sont couvertes par les tâches de migration qui les nécessitent.

Modifier le numéro de version du fichier manifeste

Remplacez la valeur de 2 par 3 dans le champ "manifest_version".

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

Modifier les autorisations de l'hôte

Les autorisations d'accès à l'hôte dans le fichier manifeste 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 d'une extension auxquels peuvent accéder des pages Web ou d'autres extensions. Comme implémenté dans Manifest V2, le champ "web_accessible_resources" rendait les extensions détectables par les sites Web et les pirates informatiques si l'extension choisissait d'exposer des ressources. Cela a créé des possibilités d'empreinte ou d'accès aux ressources non intentionnel.

Manifest V3 limite l'exposition en limitant les sites Web et les extensions pouvant 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, toutes les ressources spécifiées étaient accessibles par défaut à tous les sites Web. Dans le code du fichier manifeste V3 présenté 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 les pages Ressources accessibles sur le Web et Formats 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/*"
      ]
    }
  ],
  ...
}