Estoy trabajando en una extensión de Chrome para mi empresa. Por diversión, y solo porque me gustan los huevos de Pascua y me gusta hacer un esfuerzo adicional para brindar siempre una buena experiencia a mis usuarios, pensé en reemplazar el juego Running Dinosaur en la página fuera de línea por algo de marca para nuestra empresa como una sorpresa divertida. . A veces me gusta desarrollar juegos en 2D y me divertiría haciéndolos.
Migré la extensión de Chrome al manifiesto v3 recientemente (escribiré un artículo mediano sobre esto, ya que fue bastante desafiante y tuve que encontrar muchos trucos para que nuestra extensión siguiera funcionando).
Estaba pensando en usar la API chrome.scripting.executeScript . Lo que intenté hasta ahora es agregar un oyente en una nueva pestaña que se abre usando esta API chrome.tabs.onUpdated.addListener y buscar el status: 'complete' . Luego use el script de ejecución de esta manera:
chrome.tabs.onUpdated.addListener((tabId, changes, tab) => { if (tab.status === 'complete') { if (!navigator.onLine) { chrome.scripting.executeScript({ target: { tabId, }, files: [ '/static/js/easter.js', ], }); } } }); En mi secuencia de comandos, por ahora solo console.log('loaded') para comprobar si mi secuencia de comandos se ha inyectado correctamente. Cuando estoy en línea, la secuencia de comandos se carga correctamente en las pestañas, pero cuando cambio al modo fuera de línea (usando la pestaña de red del desarrollador o desconectando el wifi), la secuencia de comandos no se carga y aparece este error en la consola de la pestaña aunque, host_permissions parece estar configurado correctamente en el archivo manifest.json :
Unchecked runtime.lastError: Cannot access contents of the page. Extension manifest must request permission to access the respective host.No estoy seguro de por qué arroja este error y me preguntaba si alguien tuvo el mismo problema y si logró resolverlo.
¡Gracias por tu ayuda!