Estoy desarrollando una extensión que interactúa con un sitio web nuestro. La interacción se crea enviando mensajes y manejándolos.
A veces quiero abrir nuestro sitio web en modo incógnito y allí, la extensión no funciona. Me parece que los listeners
en chrome.runtime.onMessage
no se activan.
en mi contentScript.js
tengo algo como
window.addEventListener( 'message', (event, r) => { //check for sender and type otherwise return; chrome.runtime.sendMessage(data); } );
La extensión crea una devtools_page
, que carga un .html
. en esa pagina tengo
chrome.runtime.onMessage.addListener(messageHandler)
el controlador de messageHandler
nunca se activa. Incluso puedo verificar si el oyente está allí con chrome.runtime.onMessage.hasListener(messageHandler)
, que devuelve true
.
Incluso cuando coloco el oyente en background.js
(establecido en manifest.json
), este oyente nunca se activa.
Traté de poner "incognito": "split"
en manifest.json
pero luego el navegador se bloqueó por completo cuando abrí la página en la pestaña de incógnito. Para los permisos, tengo ["cookies", "tabs"]
.
Actualización: habilité la extensión en modo incógnito en la página de configuración de extensiones
Actualización: como dije, al configurar "incognito": "split"
, el navegador se bloquea. Lo reduje a mi contentScript.js
que está cargado por el manifiesto "content_scripts"
. Quité todo. Al cargar la página, el navegador no falla. Pero tan pronto como ejecuto window.addEventListener
, el navegador falla cuando abro el sitio en una pestaña de incógnito
Actualización: en la windowAddEventListener
hago un chrome.runtime.sendMessage(data)
. Hago esto para que el sitio web pueda enviar la información necesaria a la extensión para mostrar los datos. Al eliminar chrome.runtime.sendMassage
, el navegador no falla en el modo de incógnito con "incognito":"split"
Chrome bloquea extensiones en modo de incógnito,
Entonces, para probarlo, puede permitir que ciertas extensiones funcionen en modo incógnito,
Haga clic en el botón de menú en Chrome.
Vaya a Más herramientas > Extensiones.
En la nueva pestaña que se abre, desplácese por la lista para encontrar la extensión que desea habilitar mientras está de incógnito.
Haga clic en el botón "Permitir en incógnito".