Manifiesto: Recursos accesibles en la Web

Un arreglo de strings que especifica las rutas de los recursos empaquetados que se espera que se puedan usar en el contexto de una página web. Estas rutas de acceso están relacionadas con la raíz del paquete y pueden contener comodines. Por ejemplo, una extensión que inserta una secuencia de comandos de contenido con la intención de compilar una interfaz personalizada para example.com permitiría cualquier recurso que requiera la interfaz (imágenes, íconos, hojas de estilo, secuencias de comandos, etc.) de la siguiente manera:

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

Estos recursos estarían disponibles en una página web a través de la URL chrome-extension://[PACKAGE ID]/[PATH], que se puede generar con el método extension.getURL. Los recursos incluidos en la lista de entidades permitidas se entregan con los encabezados CORS adecuados, por lo que están disponibles a través de mecanismos como XHR.

Se bloqueará la navegación de un origen web a un recurso de extensión, a menos que el recurso aparezca como accesible desde la Web. Ten en cuenta los siguientes casos límite:

  • Cuando una extensión usa las APIs de webRequest o declarativeWebRequest para redireccionar una solicitud de recurso público a un recurso al que no se puede acceder desde la Web, esa solicitud también se bloquea.
  • Lo anterior se aplica incluso si el recurso al que no se puede acceder desde la Web pertenece a la extensión de redireccionamiento.

No es necesario incluir las secuencias de comandos de contenido en la lista de entidades permitidas.

Antes de la versión 2 del manifiesto, se podía acceder a todos los recursos de una extensión desde cualquier página de la Web. Esto permitió que un sitio web malicioso pudiera hacer una huella digital de las extensiones que un usuario instaló o aprovechar vulnerabilidades (por ejemplo, errores de XSS) dentro de las extensiones instaladas. Limitar la disponibilidad solo a los recursos destinados de forma explícita a ser accesibles a través de la Web sirve para minimizar la superficie de ataque disponible y proteger la privacidad de los usuarios.

Disponibilidad predeterminada

Los recursos dentro de los paquetes que usan manifest_version 2 o versiones posteriores están bloqueados de forma predeterminada y deben incluirse en la lista de entidades permitidas para su uso a través de esta propiedad.

Los recursos dentro de los paquetes que usan manifest_version 1 están disponibles de forma predeterminada, pero if configuras esta propiedad, se tratará como una lista completa de todos los recursos incluidos en la lista de entidades permitidas. Se bloquearán los recursos que no se enumeren.