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.