Add-on SDK und emit - Verständnisfrage

  • Hallo

    ich hoffe hier kann mir jemand weiterhelfen. Leider ist mein Englisch nicht ganz so gut, so daß ich die Doku nicht komplett nachvollziehen kann.

    Ich versuche mich an einem Plugin für den Firefox mit dem SDK und verstehe nicht wie das mit dem Emit gemacht wird.

    Ich möchte aus dem Main.js Daten an mein ContentScript senden und von da Daten wieder zurück. Allerdings soll das nicht beim Laden geschehen sondern erst später.

    aktuell habe ich folgenden Code:
    main.js:

    und MyScript.js:

    Mit diesem Sourcecode bekomme ich aber nur Fehlermeldungen, daß er zb den worker nicht kennt. Bei dem Bsp auf der Mozillaseite wird dieser über eine Funktion übergeben, aber wo bekomme ich den her, wenn ich das nicht beim Start sondern erst später aufrufen möchte?

  • Ich muss mal blöde fragen, da ich keine große Ahnung von Add-on-Entwicklung habe. Du redest hier von Plugin SDK. Das sagt mir ehrlich gesagt nichts. Ich kenne nur das Add-on-SDK von Mozilla zur Entwicklung von Erweiterungen und Themes. Demnach wärst du im falschen Themenkomplex. Ich habe auch meine Zweifel, dass dir hier viele zu dieser speziellen Thematik helfen können. Dies ist ein User-User-Forum, da lesen in der Regel keine Entwickler mit. Aber vielleicht hast du Glück.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Ein Plugin SDK gibt es nicht. Hier geht es, wie du korrekt vermutest, um das Add-on SDK. Darum hatte ich das Thema auch nach Erweiterungen & Themes verschoben. Keine Ahnung, wieso es von wem auch immer zurück verschoben ist, vermutlich aufgrund des Thementitels. Nun befindet sich das Thema wieder an richtiger Stelle. Ich werde den Thementitel anpassen, damit das keine Missverständnisse hervorruft.

    @Themenersteller: Kannst du bitte die exakte Fehlermeldung mitteilen? Und bitte definiere "später".

  • Vielen Dank fürs verschieben, ich hatte gehofft hier auch Entwickler anzutreffen. Mein Problem von gestern konnte ich inzwischen lösen, indem ich in main.js

    Code
    let worker = workers.Worker({
    	window: require("sdk/window/utils").getMostRecentBrowserWindow(),
    	contentScriptFile: self.data.url("MyScript.js")
    });


    das hier eingebaut habe. Soweit läuft es, aber nachdem ich mein AddOn mehrfach mit cfx run gestartet habe bekomme ich folgende Fehlermeldung:
    "Message: Error: The page is currently hidden and can no longer be used until it is visible again." weiter später heißt es in der Meldung dann "resource://gre/modules/commonjs/sdk/content/worker.js:241:1" daher vermute ich, daß es an dem neu angelegtem worker liegt, aber ich weiß nicht was ich da noch falsch mache. Sobald ich den Comandoshell beende und neu starte gehts dann wieder eine Weile

  • Ich weiß nicht, ob das mit deinem Problem etwas zu tun hat, aber oben in deinem ersten Beitrag steht im Codefenster zur main.js:

    Code
    include: "*.wwww.com",

    Eigentlich sollte es doch wohl "*.http://www.com" heißen, nur mit drei "w". Oder sehe ich das falsch?

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress