Manifiesto: Zona de pruebas

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

Define una colección de páginas de la app o extensión que se publicarán en un origen único en zona de pruebas y, de manera opcional, una política de seguridad del contenido para usar con ellas. Estar en un entorno de pruebas tiene dos implicaciones:

  1. Una página en zona de pruebas no tendrá acceso a las APIs de extensiones o apps, ni acceso directo a las páginas que no estén en zona de pruebas (puede comunicarse con ellas a través de postMessage()).
  2. Una página en 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 independiente). Esto significa que, por ejemplo, puede usar secuencias de comandos intercaladas y eval.

    Por ejemplo, a continuación, se muestra cómo especificar que se publiquen dos páginas de extensión en un entorno 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 tu valor de CSP para restringir aún más el sandbox, pero debe tener la directiva sandbox y no puede tener el token allow-same-origin (consulta la especificación de HTML5 para conocer los posibles tokens de sandbox). Además, es posible que la CSP que especifiques no permita cargar contenido web externo en las páginas de zona de pruebas.

Ten en cuenta que solo debes enumerar las páginas que esperas que se carguen en ventanas o marcos. Los recursos que usan las páginas en zona de pruebas (p.ej., hojas de estilo o archivos fuente de JavaScript) no necesitan aparecer en la lista de sandboxed_page, ya que usarán la zona de pruebas de la página que los incorpora.

"Using eval in Chrome Extensions" De forma segura" se explica con más detalle cómo implementar un flujo de trabajo de zona de pruebas que permita el uso de bibliotecas que, de otro modo, tendrían problemas para ejecutarse con la Política de Seguridad del Contenido predeterminada de la extensión.

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