こんにちは、
Mediawiki インスタンスに Discourse を埋め込む作業を行っておりますが、奇妙な問題が発生しているようです。
Wiki ページを既存の Discourse トピックにリンクする場合は、すべて問題なく動作します:
window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',
topicId: 18};
しかし、トピックを作成しようとすると失敗します:
window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',
discourseEmbedUrl = 'https:' + mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName')};
まず、iframe が以下のように読み込まれます:
<meta id="data-embedded" data-referer="https://wiki.dev.tripleperformance.fr/wiki/Sandbox">
その後、30 秒後に(iframe 内の meta http-equiv="refresh" によるものですが)、iframe が再読み込みされ、以下のように変更されます:
<meta id="data-embedded" data-referer="https://forum.dev.tripleperformance.fr/embed/comments?embed_url=https%3A%2F%2Fwiki.dev.tripleperformance.fr%2Fwiki%2FSandbox">
この時点で、コンソールにエラーが表示されます:
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://forum.dev.tripleperformance.fr') does not match the recipient window's origin ('https://wiki.dev.tripleperformance.fr').
これはおそらく、data-embedded 属性内の referer が親ページではなく自分自身(self)になっているためでしょう(リフレッシュの開始元が自分自身であるため、これは実際には期待される動作かもしれません)。
補足:私は Docker などの影響で低速な開発マシンを使用しています。競合状態(レースコンディション)などが発生している可能性も十分にあります…?