Hay muchas respuestas y soluciones antiguas para esta pregunta.
En agosto de 2015 (utilizando Chrome 45 y Manifest versión 2), la "práctica recomendada" actual para vincular imágenes locales dentro de las extensiones de Chrome es el siguiente enfoque.
1) Enlace al activo en su CSS usando una ruta relativa a la carpeta de imágenes de su extensión:
.selector {
background: url('chrome-extension://__MSG_@@extension_id__/images/file.png');
}
2) Agregue el activo individual a la sección web_accessible_resources del archivo manifest.json de su extensión :
"web_accessible_resources": [
"images/file.png"
]
Nota: este método es adecuado para algunos archivos, pero no se adapta bien a muchos archivos.
En cambio, un mejor método es aprovechar el soporte de Chrome para patrones de coincidencia para incluir en la lista blanca todos los archivos dentro de un directorio determinado:
{
"name": "Example Chrome Extension",
"version": "0.1",
"manifest_version": 2,
...
"web_accessible_resources": [
"images/*"
]
}
El uso de este enfoque le permitirá utilizar imágenes de forma rápida y sin esfuerzo en el archivo CSS de su extensión de Chrome utilizando métodos compatibles de forma nativa.