Discourse embed fallito (referer confuso)

Ciao,

Sto cercando di incorporare Discourse in un’istanza di MediaWiki e sembra esserci un problema strano.

Quando collego una pagina della wiki a un argomento Discourse esistente, tutto funziona alla perfezione:

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

Ma quando provo a creare l’argomento, fallisce:

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

L’iframe viene caricato per la prima volta con:

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

Poi, dopo 30 secondi (causati dal meta http-equiv="refresh" nell’iframe), l’iframe si ricarica 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">`

A questo punto, c’è un errore nella console:

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').

Questo è probabilmente dovuto al fatto che il referer nell’attributo data-embedded ora punta a se stesso e non alla pagina genitore (il che potrebbe essere effettivamente previsto, dato che l’iniziatore del refresh è se stesso).

Nota: sono su una macchina di sviluppo lenta a causa di Docker e di tutto il resto. È molto probabile che ci sia una condizione di gara o qualcosa di simile…?

Per quanto ne so, ho provato a creare un post nel forum con un link a una pagina wiki e il sistema è riuscito a risolverlo (l’embed viene visualizzato correttamente). Ho anche provato a fare un curl dell’URL dall’interno del container con successo. Non capisco perché il nuovo argomento non venga creato immediatamente…

Ciao Bertrand!

Speriamo che questo problema sia già stato risolto per te, ma se non è così, potresti provare il codice nel ramo test-passed, che contiene una correzione di oggi per un problema con sintomi simili.

Tale problema è stato introdotto nel codice DOPO il 25 agosto, quando hai segnalato questo caso, quindi è improbabile che si tratti dello stesso identico problema.
Tuttavia, se per te rimane irrisolto, potresti provare a utilizzarlo.

Un saluto!

3 Mi Piace

Ciao Leonardo,

Grazie per questo. Ci ho appena provato, senza molto più successo. Non ci ho scavato troppo dentro, però, poiché questo tipo di integrazione non si adatta alla nostra piattaforma (preferisco che l’argomento venga creato su richiesta tramite un po’ di codice e non per ogni pagina che abbiamo nella piattaforma).

Mi dispiace sentirlo, ma valeva la pena provare :slight_smile:
Saluti!