Échec de l'intégration de Discourse (referer mélangé)

Bonjour,

Je suis en train d’intégrer Discourse dans une instance MediaWiki et je rencontre un problème étrange.

Lorsque je lie une page de mon wiki à un sujet Discourse existant, tout fonctionne parfaitement :

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

Mais lorsque j’essaie de créer le sujet, cela échoue :

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

L’iframe est chargée une première fois avec :

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

Ensuite, après 30 secondes (causé par le meta http-equiv="refresh" dans l’iframe), l’iframe se recharge avec :

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

À ce stade, une erreur apparaît dans la console :

Échec de l'exécution de 'postMessage' sur 'DOMWindow' : l'origine cible fournie ('https://forum.dev.tripleperformance.fr') ne correspond pas à l'origine de la fenêtre destinataire ('https://wiki.dev.tripleperformance.fr').

Cela est probablement dû au fait que le referer dans l’attribut data-embedded est maintenant lui-même et non la page parente (ce qui pourrait en fait être attendu puisque l’initiateur du rafraîchissement est lui-même).

Note : Je suis sur une machine de développement qui est lente en raison de Docker et de tout le reste. Il est tout à fait possible que je sois dans une condition de course ou quelque chose de similaire… ?

Pour ce que ça vaut, j’ai essayé de créer un sujet sur le forum avec un lien vers une page wiki, et cela a réussi à le résoudre (l’intégration s’affiche correctement). J’ai également essayé d’interroger l’URL depuis le conteneur avec succès. Je ne comprends pas pourquoi le nouveau sujet n’est pas créé immédiatement…

Bonjour Bertrand !

J’espère que ce problème est d’ores et déjà résolu pour toi, mais sinon, tu pourrais essayer le code de la branche test-passed, qui contient une correction apportée aujourd’hui pour un problème présentant des symptômes similaires.

Ce problème a été introduit dans le code APRÈS le 25 août, date à laquelle tu as signalé l’incident, il est donc peu probable qu’il s’agisse exactement du même problème.
Néanmoins, si le problème persiste pour toi, tu pourrais toujours essayer cette solution.

Salutations !

3 « J'aime »

Bonjour Leonardo,

Merci pour cela. J’ai essayé - sans beaucoup plus de succès. Je n’ai pas creusé trop loin, car ce type d’intégration ne conviendra pas à notre plateforme (je préfère que le sujet soit créé à la demande par un peu de code et non pour chaque page que nous avons sur la plateforme).

Désolé d’apprendre cela, mais ça valait le coup d’essayer :slight_smile:
Santé !