Creé un complemento desempaquetado para Chrome (que también funciona en Firefox), que tiene un solo archivo script.js . Y funciona.
Sin embargo, intentar llamar a una función incluida en el archivo script.js del complemento desde la consola da como resultado:
Uncaught ReferenceError: _islet_convert is not defined at <anonymous>:1:1(anónimo) @VM259:1
Que, por cierto, probé solo para verificar con not_a_function() en la consola, y el error fue el mismo.
¿Alguien puede decirme cómo Chrome y probablemente Firefox manejan o aíslan el JavaScript en los archivos content_scripts? Y si hay alguna forma de hacer referencia a una función/método en el archivo.
De la documentación en Chrome:
https://developer.chrome.com/docs/extensions/mv2/content_scripts/
Las secuencias de comandos de contenido viven en un mundo aislado, lo que permite que una secuencia de comandos de contenido realice cambios en su entorno de JavaScript sin entrar en conflicto con la página o las secuencias de comandos de contenido adicionales.
...
Los mundos aislados no permiten que los scripts de contenido, la extensión y la página web accedan a las variables o funciones creadas por los demás. Esto también brinda a los scripts de contenido la capacidad de habilitar funciones que no deberían ser accesibles desde la página web.
Esencialmente, parece que cualquier comunicación debe realizarse a través del DOM, incluida la adición de detectores de eventos.