Falha ao incorporar Discourse (referer confuso)

Olá,

Estou no processo de incorporar o Discourse em uma instância do MediaWiki e parece que estou enfrentando um problema estranho com isso.

Quando vinculo minha página da wiki a um tópico existente do Discourse, tudo funciona perfeitamente:

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

Mas quando tento criar o tópico, a operação falha:

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

O iframe é carregado pela primeira vez com:

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

Em seguida, após 30 segundos (causado pelo meta http-equiv="refresh" no iframe), o iframe é recarregado com:

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

Neste ponto, há um erro no console:

Falha ao executar 'postMessage' no 'DOMWindow': A origem de destino fornecida ('https://forum.dev.tripleperformance.fr') não corresponde à origem da janela de destino ('https://wiki.dev.tripleperformance.fr').

Isso provavelmente ocorre porque o referer no atributo data-embedded agora é a própria página e não a página pai (o que pode ser esperado, já que o iniciador da atualização é a própria página).

Observação: Estou em uma máquina de desenvolvimento que é lenta devido ao Docker e outros fatores. É bem possível que eu esteja em uma condição de corrida ou algo assim…?

Por mais que não adiante muita coisa, tentei criar uma postagem no fórum com um link para uma página da wiki, e o sistema conseguiu resolvê-lo (a incorporação foi exibida corretamente). Também fiz um curl da URL dentro do container com sucesso. Não entendo por que o novo tópico não foi criado imediatamente…

Olá, Bertrand!

Esperamos que esse problema já tenha sido resolvido para você. Caso contrário, você pode tentar o código na branch test-passed, que contém uma correção de hoje para um problema com sintomas semelhantes.

Esse problema foi introduzido no código após 25 de agosto, data em que você relatou isso, então é improvável que seja exatamente o mesmo problema.

Ainda assim, se o problema persistir para você, vale a pena tentar.

Abraços!

3 curtidas

Olá Leonardo,

Obrigado por isso. Acabei de tentar - sem muito mais sucesso. Não investiguei muito, pois esse tipo de integração não se encaixa em nossa plataforma (prefiro que o tópico seja criado sob demanda por meio de um pouco de código e não para cada página que temos na plataforma).

Sinto muito por isso, mas valeu a pena tentar :slight_smile:
Saúde!