Estoy creando una extensión de Chrome simple para un proyecto, pero tengo un problema extraño. He creado un bloqueador de sitios en el script de fondo:
localStorage.setItem('blocked_sites', ["*://www.wikipedia.org/*", "*://www.change.org/*", "*://en.wikipedia.org/*"]); urls = localStorage.getItem('blocked_sites').split(','); chrome.webRequest.onBeforeRequest.addListener( function(intercept) { console.log(intercept.url); localStorage.setItem('denied_access_url', intercept.url); return {redirectUrl: chrome.extension.getURL("chatbot.html")}; }, { urls, types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"] }, ["blocking"] );Este bloqueador funciona cuando visito directamente un sitio escribiendo una URL en la barra de búsqueda. La página redirige a mi archivo html bien. Pero si busco en Google y luego hago clic en un enlace o hago clic en un hipervínculo en un correo electrónico, el sitio está bloqueado pero la página no se redirige a 'chatbot.html', la página dice:
'blninlecioflbneanancablcknibdbja está bloqueada Esta página ha sido bloqueada por Chrome ERR_BLOCKED_BY_CLIENT' (las letras aleatorias son el nombre de la carpeta de extensión local, generada por Chrome). El terminal dice "(índice): 7272 crbug/1173575, archivos de módulo que no son JS en desuso. (anónimo) @ (índice): 7272" y luego al hacer clic en el número al final de la cadena se muestra
'No se encontró ningún recurso con la URL dada'
Por extraño que parezca, cuando imprimo la URL en la consola background.js y hago clic en ella, funciona la redirección a chatbot.html. También funciona cuando hago clic en enlaces en documentos de Word (pero, de nuevo, ¡no en enlaces en correos electrónicos!).
He intentado investigar estos errores, pero no he encontrado mucho.
¿Por qué el archivo solo se puede encontrar a veces?
"Debe agregar el archivo a web_accessible_resources en manifest.json. Lo considero un error, pero siempre ha funcionado así. –wOxxOm"