Estoy tratando de enviar mensajes desde el script de fondo de una extensión a un iframe que se representa en una página web como parte del script de contenido, pero solo lo recibe el iframe 4 de cada 10 veces. El motivo del error no está claro, ya que no hay registros de errores. ¿Alguna idea de lo que podría estar saliendo mal?
fondo.js
chrome.tabs.getCurrent((currentTab) => { chrome.tabs.sendMessage( currentTab.id, { message: "Generic Message", }, function () {} ); });iframe.js
chrome.runtime.onMessage.addListener(function (request) { // Not able to receive here in most of the cases })Debo pasar mensajes desde el fondo al iframe y viceversa, y eso también es muy dinámico de manera que los mensajes del script en segundo plano se activarían en función de los eventos recibidos a través de la conexión websocket. Por lo tanto, la información se pasaría de un lado a otro entre Iframe (representado dentro de contentcipt) y secuencia de comandos de fondo. Entonces, también agregué detectores de eventos tanto en segundo plano como en iframe.js y manejé solo ciertos casos que necesitan ser manejados.
Oyente de eventos para background.js
chrome.runtime.onMessage.addListener(function (request) { // request.sender is just a property that I added to identify if this event was called from background context or iframe context. if (request.sender === "Sender 1") { // Execute this } else { // Execute this } })Así que ahora tengo 2 archivos o contextos y ambos están pasando mensajes y ambos también están recibiendo mensajes.
PD: estoy usando el manifiesto v3