2.5.0.beta5 rompe il plugin retort

Ho appena aggiornato dalla versione 2.5.0.beta4 alla 2.5.0.beta5 e ora i miei due script inseriti nel tema non sembrano più funzionare. Nella console del browser vedo quanto segue:

Content Security Policy: Le impostazioni del sito hanno impedito il caricamento della risorsa da inline ("script-src"). injectGlobalHook.js:1:1760
Content Security Policy: Le impostazioni del sito hanno impedito il caricamento della risorsa da inline ("script-src"). pagewrap.bundle.js:1:1151

Modifica: sembra che questi errori compaiano anche sul mio altro sito, dove non ho lo stesso tema, quindi il problema non è lì. Immagino quindi che l’API del tema sia cambiata? Anche se questo argomento non è stato aggiornato: Using the JS API

In sostanza, sembra che il nuovo aggiornamento di Discourse abbia reso la CSP più restrittiva.
Come posso risolvere il problema? Non ho trovato nulla relativo alla CSP o a modifiche del tema nelle note di rilascio.

Questo è lo script che vorrei far eseguire:

<script type="text/discourse-plugin" version="0.0.1">
api.onPageChange(() => {
	checkMainPageLoadFeeds();
});

function checkMainPageLoadFeeds() {
    // Carica solo sulla pagina principale
    // Sembra che questo non funzioni perfettamente a causa del modo in cui funziona Discourse,
    // ma almeno non causa problemi...
    if(/https?:\/\/[^\/]+\/(categories)?$/.test(window.location.href) ){
        // Questi file sono creati da un bot in esecuzione sullo stesso server di questo forum
        if($("#development-info").text() == ""){
            $("#development-info").load("/thrive-feed-bot/devforum-and-github");
            $("#announcement-contents").load("/thrive-feed-bot/community-announcements");
        }
    }
    
    $("#development-heading").off("click").on("click", expandTheFeeds);
    $("#announcement-heading").off("click").on("click", expandTheFeeds);
}

function expandTheFeeds(){
    
    let target = $("#development-feed").height() == 200 ? 450 : 200;
    $('#development-feed').animate({ height: target + "px" });
    $('#development-info').animate({ height: (target - 95) + "px" });
    $('#announcement-feed').animate({ height: target + "px" });
    $('#announcement-contents').animate({ height: (target - 95) + "px" });
}

$( document ).ready(function(){
    checkMainPageLoadFeeds();
})
</script>

E questo è il secondo:

<script type="text/discourse-plugin" version="0.0.1">
api.onAppEvent('modal:body-shown', (data) => {
    
    if(data.title){
    
        if(data.title.match(/.*create.*account.*/)){
        
            $(".create-account.fixed-modal .modal-footer").prepend(getEmailSpamCheckMessage(true));
        }
    } else {
        
        // Potrebbe essere "password dimenticata"
        let element = $(".fixed-modal .forgot-password-modal")
        if(element){
            element.append(getEmailSpamCheckMessage(false));
        }
    }
	
});

function getEmailSpamCheckMessage(register){
    return $.parseHTML("<p class='EmailNoteMessage'>Se non ricevi un'email " + 
                (register ? "di conferma " : "") + "controlla la cartella spam.<br>" +
                "Puoi anche visitare il nostro <a href='https://discordapp.com/invite/FZxDQ4H'>Discord</a> " +
                "se hai problemi " + (register ? "di registrazione" : "a ricevere le nostre email") + ".</p>");
}
</script>

Sono certo di aver già pubblicato questo codice qui su Meta, ma non riesco a trovare quel post ora.

Tutto ciò che vuoi sapere sulla CSP è qui:

Non credo che il mio problema sia legato a CSP, poiché ricevo gli stessi due errori su un sito (https://forum.revolutionarygamesstudio.com/) che utilizza il tema predefinito. Sembra quindi che i miei script non vengano nemmeno tentati di essere caricati. Sul sito con un tema personalizzato, le caselle vicino alla parte superiore della pagina rimangono vuote poiché vengono riempite tramite JavaScript: https://community.revolutionarygamesstudio.com/
Ho anche provato a disattivare CSP nella sezione amministrativa, ma questo non ha risolto il problema dei miei script, sebbene abbia fatto scomparire i due errori (lasciandone solo uno proveniente da retort).

Modifica: Quindi penso che qualcosa sia cambiato, impedendo il caricamento di <script type="text/discourse-plugin" version="0.0.1">.

Modifica 2: Quindi, anche con CSP abilitato e nulla aggiunto alla whitelist, questo funziona:

<script>
console.log('questo è stato caricato senza problemi');
</script> 

Mentre questo non funziona:

<script type="text/discourse-plugin" version="0.0.1">
console.log('questo è stato caricato senza problemi');
</script> 

Hai un errore JavaScript con Retort su https://community.revolutionarygamesstudio.com/

_retort-75a57ba39180becb082af07c57df6a5dd4e16efe0dbd24ec6c4e5d903e138efb.js:188 Uncaught TypeError: Impossibile leggere la proprietà 'retort_disabled_categories' di undefined
    at _retort-75a57ba39180becb082af07c57df6a5dd4e16efe0dbd24ec6c4e5d903e138efb.js:188
    at t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74640)
    at t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74470)
    at require (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74637)
    at f (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74596)
    at _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74561
    at t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74639)
    at t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74470)
    at require (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74637)
    at t._prepareInitializer (_application-66bcc4126a5a02dd0d99aed67150087a79a427788cc00feaf5e17bf042b73d75.js:6849)

Per quanto riguarda l’altro sito, non riesco a trovare checkMainPageLoadFeeds nel codice sorgente, quindi non sono sicuro che sia caricato.

Tuttavia, riesco a trovarlo su https://community.revolutionarygamesstudio.com/:

Quindi prova a correggere il tuo errore JavaScript con questo plugin.

È quello che vedo anch’io. Guarda il mio aggiornamento nel post precedente: sembra che lo script con tipo "text/discourse-plugin" non venga eseguito, mentre un tag script normale sì.

L’ho notato anch’io, ho l’ultima versione di retort:
Kuvakaappaus - 2020-05-31 13-07-36

Quindi il fatto che questo plugin abbia un errore sta impedendo l’esecuzione del plugin definito nel tema?

Ho appena testato qui su meta e questo viene chiamato correttamente:

<script type="text/discourse-plugin" version="0.1">
</script>

Questo non è un plugin ufficiale, non ne so molto, scusa.

È possibile, sì. Prova a disattivarlo o addirittura a rimuoverlo e vedi se risolve il tuo problema.

Ricostruire senza retort nella mia lista di plugin ‘risolve’ il problema. Grazie per l’aiuto. Non avevo considerato che il fallimento di un singolo plugin potesse causare il fallimento anche di altri. Cercherò di ricordarmelo in futuro per verificare prima di segnalare un problema.

Segnalerò questa come soluzione, nel frattempo che aspetto una nuova versione di retort per poterla riattivare.

Sembra che i problemi con l’ultima versione di Discourse siano già stati segnalati:

Confermo che la correzione apportata a retort ha risolto il problema per me.