Fichier manifeste – Bac à sable

Définit un ensemble de pages d'extensions à diffuser dans une origine unique en bac à sable. La La Content Security Policy utilisée par les pages en bac à sable d'une extension est spécifiée dans "content_security_policy".

Être dans un bac à sable a deux implications:

  1. Une page en bac à sable n'a pas accès aux API d'extension ni à un accès direct aux sans système de bac à sable (il peut communiquer avec elles à l'aide de postMessage()).
  2. Une page en bac à sable n'est pas soumise à la Content Security Policy (CSP) utilisée par le reste des l'extension (elle possède sa propre valeur CSP). Cela signifie, par exemple, qu'il peut Utilisez un script intégré et eval().

Par exemple, voici comment spécifier que deux pages d'extension doivent être diffusées dans un bac à sable avec une balise CSP personnalisée:

{
  ...
  "content_security_policy": {
    "sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
  },
  "sandbox": {
    "pages": [
      "page1.html",
      "directory/page2.html"
    ]
  },
  ...
}

Si aucune valeur n'est spécifiée, la valeur "content_security_policy" par défaut est sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';.

Vous pouvez spécifier votre valeur CSP pour restreindre davantage le bac à sable, mais elle DOIT inclure le paramètre la directive "sandbox" et NE DOIT PAS comporter de jeton allow-same-origin (consultez la page HTML5 spécification des éventuels jetons de bac à sable).

Notez que vous n'avez besoin de lister que les pages qui doivent être chargées dans des fenêtres ou des cadres. Ressources utilisées par les pages en bac à sable (par exemple, les feuilles de style ou les fichiers sources JavaScript) n'ont pas besoin d'apparaître dans pages, car ils utiliseront le bac à sable du frame qui les intègre.

L'article Utiliser la fonction eval() dans les extensions Chrome explique plus en détail comment implémenter une le workflow de bac à sable qui permet d'utiliser des bibliothèques dont l'exécution aurait sinon des problèmes Content Security Policy par défaut de l'extension.