En relación con esta pregunta , la solución para iniciar un protocolo personalizado después de iniciar un websocket (para mantener el socket abierto y sondeando) es usar un elemento iframe y configurar el src para que sea el protocolo personalizado. Pero, si un usuario hace clic en el botón que establece el src demasiado rápido (es decir, activa el protocolo personalizado con demasiada frecuencia), FF registra esta advertencia:
"El iframe con protocolo externo se bloqueó debido a la falta de activación del usuario o porque no ha pasado suficiente tiempo desde que se cargó el último iframe".
Parece que no puedo encontrar ninguna documentación sobre:
¿Alguien sabe qué significa exactamente esa advertencia o cuáles son esos puntos y cómo podemos evitar la limitación para permitir el lanzamiento de un protocolo personalizado (sin actualizar la página o generar una ventana emergente) desde FF?
Intenté tener el iframe existente en la página de antemano y configurar dinámicamente el src, así como crear dinámicamente el iframe con el src al mismo tiempo, pero ambos terminan con la misma advertencia registrada.
La activación del usuario significa un evento desencadenado por el usuario, como eventos de mouse o teclado. Esto es similar a la forma en que funcionan los bloqueadores de ventanas emergentes.
Dudo que encuentre documentado el límite de "tiempo suficiente": los programadores no quieren decirles a los creadores de malware cómo sortear la restricción.
Usted dice que está haciendo esto cuando el usuario hace clic en un botón, por lo que debería cumplir con el requisito de "activación del usuario". ¿Lo está haciendo en una función de devolución de llamada que se ejecuta de forma asíncrona desde el detector de eventos? Eso lo desconecta de la interacción del usuario; tiene que estar directamente en la función de escucha.