Fichier manifeste – Ressources accessibles sur le Web

Tableau de chaînes spécifiant les chemins d'accès aux ressources empaquetées qui sont censés être utilisables dans le contexte d'une page Web. Ces chemins d'accès sont relatifs à la racine du package et peuvent contenir des caractères génériques. Par exemple, une extension qui injecte un script de contenu dans le but de créer une interface personnalisée pour example.com autoriserait toutes les ressources requises par l'interface (images, icônes, feuilles de style, scripts, etc.) comme suit:

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

Ces ressources sont ensuite disponibles sur une page Web via l'URL chrome-extension://[PACKAGE ID]/[PATH], qui peut être générée avec la méthode extension.getURL. Les ressources de la liste d'autorisation sont diffusées avec les en-têtes CORS appropriés. Elles sont donc disponibles via des mécanismes tels que XHR.

La navigation depuis une origine Web vers une ressource d'extension est bloquée, sauf si la ressource est répertoriée comme accessible sur le Web. Voici quelques cas particuliers:

  • Lorsqu'une extension utilise les API webRequest ou declarativeWebRequest pour rediriger une requête de ressource publique vers une ressource non accessible sur le Web, cette requête est également bloquée.
  • Ce qui précède est vrai même si la ressource qui n'est pas accessible via le Web appartient à l'extension de redirection.

Les scripts de contenu eux-mêmes n'ont pas besoin d'être ajoutés à la liste d'autorisation.

Avant la version 2 du fichier manifeste, toutes les ressources d'une extension étaient accessibles depuis n'importe quelle page sur le Web. Cela permettait à un site Web malveillant d'empreintes digitales des extensions qu'un utilisateur avait installées ou d'exploiter des failles (par exemple, des bugs XSS) dans les extensions installées. Limiter la disponibilité aux ressources explicitement destinées à être accessibles sur le Web permet à la fois de minimiser la surface d'attaque disponible et de protéger la confidentialité des utilisateurs.

Disponibilité par défaut

Les ressources contenues dans des packages utilisant manifest_version 2 ou une version ultérieure sont bloquées par défaut et doivent être ajoutées à la liste d'autorisation pour être utilisées via cette propriété.

Les ressources contenues dans des packages utilisant manifest_version 1 sont disponibles par défaut, mais if vous définissez cette propriété, elle sera traitée comme une liste complète de toutes les ressources ajoutées à la liste d'autorisation. Les ressources non listées seront bloquées.