Fichier manifeste – Bac à sable

Avertissement : À partir de la version 57, Chrome n'autorisera plus le contenu Web externe (y compris les cadres et les scripts intégrés) dans les pages en bac à sable. Veuillez utiliser une vue Web à la place.

Définit une collection de pages d'application ou d'extension à diffuser dans une origine unique en bac à sable, et éventuellement une Content Security Policy à utiliser avec elles. Le fait d'être dans un bac à sable a deux conséquences :

  1. Une page en bac à sable n'aura pas accès aux API d'extension ou d'application, ni directement aux pages qui ne sont pas en bac à sable (elle peut communiquer avec elles via postMessage()).
  2. Une page en bac à sable n'est pas soumise à la stratégie de sécurité du contenu (CSP, Content Security Policy) utilisée par le reste de l'application ou de l'extension (elle possède sa propre valeur CSP distincte). Cela signifie, par exemple, qu'elle peut utiliser 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 CSP personnalisée :

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

    Si aucune valeur n'est spécifiée, la valeur par défaut content_security_policy 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 comporter la sandbox directive et ne peut pas contenir le allow-same-origin jeton (consultez la spécification HTML5 pour connaître les jetons de bac à sable possibles). De plus, la CSP que vous spécifiez ne peut pas autoriser le chargement de contenu Web externe dans les pages en bac à sable.

Notez que vous n'avez besoin de lister que les pages que vous prévoyez de charger dans des fenêtres ou des cadres. Les 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 la liste sandboxed_page. Elles utiliseront le bac à sable de la page qui les intègre.

L'article Utiliser eval dans les extensions Chrome. En toute sécurité." explique plus en détail comment implémenter un workflow de bac à sable qui permet d'utiliser des bibliothèques qui, autrement, auraient des problèmes d'exécution en vertu de la Content Security Policy par défaut de l'extension.

Une page en bac à sable ne peut être spécifiée que lorsque vous utilisez manifest_version 2 ou une version ultérieure.