Manifiesto: Zona de pruebas

Advertencia: A partir de la versión 57, Chrome ya no permitirá contenido web externo (incluidos marcos y secuencias de comandos incorporados) dentro de las páginas de zona de pruebas. En su lugar, usa webview.

Define un grupo de páginas de apps o extensiones que se entregarán en un origen único de zona de pruebas y, opcionalmente, una Política de Seguridad del Contenido para usar con ellas. Estar en una zona de pruebas tiene dos implicaciones:

  1. Una página de zona de pruebas no tendrá acceso a las APIs de la extensión o de la app, ni tendrá acceso directo a páginas que no estén incluidas en la zona de pruebas (se puede comunicar con ellas a través de postMessage()).
  2. Una página de zona de pruebas no está sujeta a la Política de Seguridad del Contenido (CSP) que usa el resto de la app o extensión (tiene su propio valor de CSP). Esto significa que, por ejemplo, puede usar una secuencia de comandos intercalada y eval.

    Por ejemplo, a continuación, se muestra cómo especificar que dos páginas de extensiones se entreguen en una zona de pruebas con una CSP personalizada:

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

    Si no se especifica, el valor predeterminado de content_security_policy es sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';. Puedes especificar el valor de tu CSP para restringir aún más la zona de pruebas, pero debe tener la directiva sandbox y es posible que no tenga el token allow-same-origin (consulta la especificación HTML5 para conocer los posibles tokens de la zona de pruebas). Además, es posible que la CSP que especifiques no permita la carga de contenido web externo dentro de las páginas de zona de pruebas.

Ten en cuenta que solo necesitas indicar las páginas que esperabas que se cargaran en ventanas o marcos. No es necesario que los recursos que usan las páginas de zona de pruebas (p.ej., las hojas de estilo o los archivos fuente de JavaScript) aparezcan en la lista sandboxed_page, sino que usarán la zona de pruebas de la página que los incorpora.

"Cómo usar "eval" en las extensiones de Chrome. Safely", que explica en más detalle la implementación de un flujo de trabajo de zona de pruebas que permite el uso de bibliotecas que, de lo contrario, tendrían problemas al ejecutarse en virtud de la Política de Seguridad del Contenido predeterminada de la extensión.

La página de zona de pruebas solo se puede especificar cuando se usa manifest_version 2 o una versión posterior.