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:
- 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()
). - 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.