Fichier manifeste – Bac à sable

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

Définit une collection de pages d'applications ou d'extensions qui doivent être diffusées dans une origine unique de bac à sable, et éventuellement une Content Security Policy à utiliser avec elles. Être dans un bac à sable a deux conséquences:

  1. Une page en bac à sable n'a pas accès aux API d'extension ou d'application, ni à un accès direct à des pages hors bac à sable (elle peut communiquer avec elles via postMessage()).
  2. Une page en bac à sable n'est pas soumise à la Content Security Policy (CSP) 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'il 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 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 la valeur de votre CSP pour restreindre encore davantage l'utilisation du bac à sable, mais elle doit comporter l'instruction sandbox et le jeton allow-same-origin (voir la spécification HTML5 pour connaître les éventuels jetons de bac à sable). En outre, le CSP que vous spécifiez peut ne pas autoriser le chargement de contenu Web externe dans des pages en bac à sable.

Notez que vous ne devez répertorier que les pages qui devraient être chargées 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 utilisent le bac à sable de la page qui les intègre.

"Grâce à l'évaluation dans les extensions Chrome, Safely." explique plus en détail la mise en œuvre d'un workflow de bac à sable qui permet d'utiliser des bibliothèques qui, autrement, auraient des problèmes d'exécution avec la Content Security Policy par défaut de l'extension.

Vous ne pouvez spécifier une page en bac à sable que si vous utilisez manifest_version 2 ou une version ultérieure.