Fallo de incrustación de Discourse (referer mezclado)

Hola,

Estoy en proceso de integrar Discourse en una instancia de MediaWiki y parece que tengo un problema extraño con ello.

Cuando enlazo mi página wiki a un tema existente de Discourse, todo funciona a la perfección:

window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',
                          topicId: 18};

Pero cuando intento crear el tema, falla:

window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',
                          discourseEmbedUrl = 'https:' + mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName')};

El iframe se carga por primera vez con:

<meta id="data-embedded" data-referer="https://wiki.dev.tripleperformance.fr/wiki/Sandbox">

Luego, después de 30 segundos (causado por el meta http-equiv="refresh" en el iframe), el iframe se recarga con:

<meta id="data-embedded" data-referer="https://forum.dev.tripleperformance.fr/embed/comments?embed_url=https%3A%2F%2Fwiki.dev.tripleperformance.fr%2Fwiki%2FSandbox">`

En este punto, aparece un error en la consola:

Error al ejecutar 'postMessage' en 'DOMWindow': El origen de destino proporcionado ('https://forum.dev.tripleperformance.fr') no coincide con el origen de la ventana receptora ('https://wiki.dev.tripleperformance.fr').

Probablemente sea porque el referer en el atributo data-embedded ahora es el mismo y no la página principal (lo cual podría ser esperado, ya que el iniciador de la actualización es el mismo).

Nota: Estoy en una máquina de desarrollo que es lenta debido a Docker y todo lo demás. Es muy posible que esté experimentando una condición de carrera o algo similar… ¿?

Por si sirve de algo, he intentado crear una publicación en el foro con un enlace a una página de wiki y logró resolverlo (el incrustado se muestra correctamente). También intenté hacer un curl de la URL desde dentro del contenedor con éxito. No entiendo por qué el nuevo tema no se crea de inmediato…

¡Hola Bertrand!

Espero que este problema ya esté resuelto para ti, pero si no es así, podrías probar el código en la rama test-passed, que contiene una corrección de hoy para un problema con síntomas similares.

Dicho problema se introdujo en el código DESPUÉS del 25 de agosto, cuando lo reportaste, por lo que es poco probable que sea exactamente el mismo problema.
Aun así, si sigue sin resolverse para ti, podrías probarlo.

¡Saludos!

Hola Leonardo,

Gracias por esto. Acabo de intentarlo, sin mucho más éxito. Sin embargo, no profundicé mucho en ello, ya que este tipo de integración no encaja en nuestra plataforma (prefiero que el tema se cree a demanda a través de un poco de código y no para cada página que tenemos en la plataforma).

Lamento oír eso, pero valió la pena intentarlo :slight_smile:
¡Saludos!