Manifesto - Sandbox

Define um conjunto de páginas de extensão que serão veiculadas em uma origem exclusiva no sandbox. A A Política de Segurança de Conteúdo usada pelas páginas em sandbox de uma extensão é especificada no Tecla "content_security_policy".

Ficar em uma sandbox tem duas implicações:

  1. Uma página no modo sandbox não terá acesso a APIs de extensão ou acesso direto a páginas sem sandbox (ele pode se comunicar com eles usando postMessage()).
  2. Uma página no modo sandbox não está sujeita à Política de Segurança de Conteúdo (CSP) usada pelo restante do a extensão (tem seu próprio valor de CSP separado). Isso significa que, por exemplo, usar script in-line e eval();

Por exemplo, veja como especificar que duas páginas de extensão devem ser exibidas em uma sandbox com um CSP personalizado:

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

Se não for especificado, o valor padrão de "content_security_policy" será sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';.

Você pode especificar o valor da sua CSP para restringir ainda mais o sandbox, mas ele PRECISA incluir o parâmetro diretiva "sandbox" e NÃO PODE ter o token allow-same-origin (consulte a documentação especificação para possíveis tokens de sandbox).

Você só precisa listar as páginas que espera que sejam carregadas em janelas ou frames. Recursos usadas por páginas em sandbox (por exemplo, folhas de estilo ou arquivos de origem JavaScript) não precisam aparecer na pages, porque elas vão usar o sandbox do frame que as incorpora.

O artigo Como usar eval() nas extensões do Google Chrome apresenta mais detalhes sobre a implementação de uma fluxo de trabalho de sandbox que permite o uso de bibliotecas que, de outra forma, teriam problemas na execução Política de Segurança de Conteúdo padrão da extensão.