2.5.0.beta5 bricht das Retort-Plugin

Ich habe gerade von 2.5.0.beta4 auf 2.5.0.beta5 aktualisiert, und jetzt laufen meine beiden Skripte in meinem Theme nicht mehr. In der Browserkonsole sehe ich Folgendes:

Content Security Policy: Sivuston asetukset estivät resurssin lataamisen osoitteesta inline ("script-src"). injectGlobalHook.js:1:1760
Content Security Policy: Sivuston asetukset estivät resurssin lataamisen osoitteesta inline ("script-src"). pagewrap.bundle.js:1:1151

Edit: Es scheint, dass ich diese Fehler auch auf meiner anderen Seite erhalte, auf der ich dasselbe Theme nicht verwende, also liegt das Problem nicht am Theme. Ich vermute also, dass sich die Theme-API geändert hat? Obwohl dieses Thema nicht aktualisiert wurde: Using the JS API

Im Grunde scheint es, dass das neue Discourse-Update die CSP strenger gemacht hat.
Wie gehe ich vor, um dies zu beheben? In den Release-Notes habe ich nichts zu CSP- oder Theme-Änderungen gefunden.

Hier ist mein Skript, das ausgeführt werden soll:

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

function checkMainPageLoadFeeds() {
    // Nur auf der Hauptseite laden
    // Anscheinend funktioniert dies aufgrund der Funktionsweise von Discourse nicht perfekt, 
    // aber es verursacht zumindest keine Probleme...
    if(/https?:\/\/[^\/]+\/(categories)?$/.test(window.location.href) ){
        // Diese Dateien werden von einem Bot erstellt, der auf demselben Server wie dieses Forum läuft
        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>

Und dies ist das zweite:

<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 {
        
        // Vielleicht Passwort vergessen
        let element = $(".fixed-modal .forgot-password-modal")
        if(element){
            element.append(getEmailSpamCheckMessage(false));
        }
    }
	
});

function getEmailSpamCheckMessage(register){
    return $.parseHTML("<p class='EmailNoteMessage'>Wenn Sie keine E-Mail erhalten " + 
                (register ? "Bestätigung " : "") + "überprüfen Sie Ihren Spam-Ordner.<br>" +
                "Sie können auch unseren <a href='https://discordapp.com/invite/FZxDQ4H'>Discord</a> besuchen, " +
                "wenn Sie Probleme haben " + (register ? "bei der Registrierung" : "E-Mails von uns zu erhalten") + ".</p>");
}
</script>

Ich bin mir sicher, dass ich dies hier auf Meta bereits gepostet habe, kann den Beitrag aber jetzt nicht finden.

Alles, was Sie über CSP wissen möchten, finden Sie hier:

Ich glaube nicht, dass mein Problem mit CSP zusammenhängt, da ich dieselben zwei Fehler auch auf einer Seite erhalte (https://forum.revolutionarygamesstudio.com/), die das Standard-Theme verwendet. Es scheint also, als würden meine Skripte gar nicht erst geladen werden. Auf der Seite mit einem benutzerdefinierten Theme bleiben die Felder nahe der Kopfzeile leer, da JavaScript zum Befüllen verwendet wird: https://community.revolutionarygamesstudio.com/

Ich habe auch versucht, CSP im Admin-Bereich ein- und auszuschalten, aber das hat meine Skripte nicht behoben, obwohl die zwei Fehler verschwunden sind (nur noch einer stammt von retort).

Edit: Ich vermute, dass sich etwas geändert hat, wodurch <script type="text/discourse-plugin" version="0.0.1"> überhaupt nicht mehr geladen werden.

Edit 2: Selbst mit aktiviertem CSP und ohne Einträge in der Whitelist funktioniert folgendes:

<script>
console.log('this loaded just fine');
</script> 

Dieses jedoch nicht:

<script type="text/discourse-plugin" version="0.0.1">
console.log('this loaded just fine');
</script> 

Du hast einen JS-Fehler mit Retort auf https://community.revolutionarygamesstudio.com/

_retort-75a57ba39180becb082af07c57df6a5dd4e16efe0dbd24ec6c4e5d903e138efb.js:188 Uncaught TypeError: Cannot read property 'retort_disabled_categories' of 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)

Bezüglich der anderen Seite: Ich kann checkMainPageLoadFeeds im Quellcode nicht finden, daher bin ich mir nicht sicher, ob dieser geladen wird.

Ich kann ihn jedoch auf https://community.revolutionarygamesstudio.com/ finden:

Versuche also, deinen JS-Fehler mit diesem Plugin zu beheben.

Das sehe ich auch. Siehe mein Update im vorherigen Beitrag: Es scheint, dass das Skript vom Typ "text/discourse-plugin" nicht ausgeführt wird, aber ein ganz normales Skript-Tag schon.

Das ist mir aufgefallen. Ich habe die neueste Retort-Version:
Kuvakaappaus - 2020-05-31 13-07-36

Bedeutet das, dass ein Fehler in diesem Plugin verhindert, dass das im Theme definierte Plugin ausgeführt wird?

Ich habe es gerade hier auf Meta getestet, und das wird korrekt aufgerufen:

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

Das ist kein offizielles Plugin. Ich weiß leider nicht viel darüber.

Das ist möglich. Versuche es zu deaktivieren oder sogar zu entfernen und prüfe, ob das dein Problem löst.

Das Neu-Erstellen ohne Retort in meiner Plugin-Liste ‘behoben’ das Problem. Danke für die Hilfe. Ich hatte nicht bedacht, dass ein fehlerhaftes Plugin auch andere Plugins beeinträchtigen könnte. Ich werde mir das für die Zukunft merken und vor der Meldung eines Problems prüfen.

Ich markiere dies als Lösung, während ich auf eine neue Version von Retort warte, damit ich es wieder aktivieren kann.

Es scheint, dass Probleme mit dem neuesten Discourse bereits gemeldet wurden:

Ich bestätige, dass die Korrektur für Retort dieses Problem für mich behoben hat.