WebExtension.Fragen()

  • Vielleicht kannst du mit dieser Meldung aus der Borwserkonsole etwas anfangen:

    1528579558424 addons.update-checker WARN onUpdateCheckComplete failed to parse update manifest: [Exception... "Update manifest is missing a required addons property." nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource://gre/modules/addons/AddonUpdateChecker.jsm :: getRequiredProperty :: line 122" data: no] Stack trace: getRequiredProperty()@resource://gre/modules/addons/AddonUpdateChecker.jsm:122 parseJSONManifest()@resource://gre/modules/addons/AddonUpdateChecker.jsm:132 onLoad()@resource://gre/modules/addons/AddonUpdateChecker.jsm:314 UpdateParser/<()@resource://gre/modules/addons/AddonUpdateChecker.jsm:243

    Ü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

  • Nein, die Meldung oben gehört wohl doch nicht dazu. Aber diese:

    1528579858003 addons.xpi WARN Invalid XPI: Error: File C:\Users\Lenovo M58\Documents\downloads\Tabs2List-master.xpi does not contain a valid manifest (resource://gre/modules/addons/XPIInstall.jsm:803:11) JS Stack trace: loadManifest@XPIInstall.jsm:803:11
    async*loadManifest@XPIInstall.jsm:1537:28
    async*init@XPIInstall.jsm:1960:13
    async*getInstallForURL@XPIInstall.jsm:3760:13
    async*XPIProvider[meth]@XPIProvider.jsm:2753:29
    promiseCallProvider@AddonManager.jsm:229:12
    async*getInstallForURL@AddonManager.jsm:1632:16
    getInstallForURL@AddonManager.jsm:3301:12
    handleUriInChrome@browser.js:978:9
    _loadURI@browser.js:1021:20
    loadURI@tabbrowser.xml:2271:13
    openLinkIn@utilityOverlay.js:512:5
    openUILinkIn@utilityOverlay.js:269:3
    openTrustedLinkIn@utilityOverlay.js:203:3
    fpCallback_done@browser.js:2433:9

    Ü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


  • Die Implementierung für meine Erweiterung ist etwas komplizierter als in deinem Code-Beispiel, weil es nicht nur um ein bestimmtes Feld geht, es für unterschiedliche Objekt-Typen unterschiedliche DOM-Strukturen gibt, ich nicht nur Werte einfügen muss, sondern die komplette DOM-Struktur für Array-Elemente beim Deserialisieren erst erzeugen muss, da die Felder beim Laden ja noch gar nicht existieren, und die Event Listeners für die Plus-/Minus-Funktion beim Deserialisieren auch wieder neu registriert werden müssen, damit die Buttons überhaupt eine Funktion haben.

    Ich hab ein ähnliches Problem: Beliebig viele Domains mit jeweils unterschiedlichen Vorgaben. Löschen einzelner Domains soll natürlich möglich sein und zukünftige Optionen pro Domain sollen nicht die alten Daten nutzlos machen.

    Ich fluche momentan über meine Unkenntnis bezgl Promises und Co. Ich werde mich da wohl reinarbeiten, aber für einen Hobbyisten wie mich, der das mehr per Versuch und Irrtum macht ist es manchmal wirklich frustrierend. Ich habe Ewigkeiten gebraucht um zu kapieren, wie ich ein Array in storage.local abspeichern kann, um dann anschliessend einen Wert daraus abzurufen und einer Variablen zuzuweisen. UND natürlich, dass der Wert auch wirklich in der Variablen ankommt bevor ich sie weiter verarbeite.

    Mir sind die Vorteile von Promises durchaus bewusst, der Nutzer kann während der Verarbeitung weiter machen, aber für Gelegenheits-Script-Bauer ist es nicht leicht da durch zu steigen.

    Greetz,
    DF


  • > Ja, aber muss da nicht erst einmal dieses web-ext installiert sein?

    Ja sicher musst du das Tool erst installieren, bevor du es verwenden kannst. :P

    > Mache ich das? Ja, wie denn?... :D

    Indem du das entsprechende Verzeichnis mit der Kommandozeile öffnest und dann den Befehl ausführst. Ich kann dir nicht helfen, wenn es um Kommandozeilen-Befehle für Windows geht, ich kenne die Befehle für macOS.

    Ich liebe meine Power-Shell, aber web-ext braucht node.js... Das muss man also vorher noch installieren. Und deren Verwendung braucht auch die Kommandozeile. Ich habe ja keine Angst vor dir, mk, cd und co, aber ich bevorzuge pspad statt edlin :).

    Greetz,
    DF

  • Mit der zip über about:debugging steht in der Browserkonsole:

    Error: "File C:\Users\Lenovo M58\Documents\downloads\Tabs2List-master.zip does not contain a valid manifest"
    loadManifestresource://gre/modules/addons/XPIInstall.jsm:803:11
    loadManifestFromFileresource://gre/modules/addons/XPIInstall.jsm:855:23
    installTemporaryAddonresource://gre/modules/addons/XPIInstall.jsm:3818:23
    methresource://gre/modules/addons/XPIProvider.jsm:2753:29
    installTemporaryAddonresource://gre/modules/AddonManager.jsm:2054:12
    installTemporaryAddonresource://gre/modules/AddonManager.jsm:3373:12
    installAddonresource://devtools/client/aboutdebugging/components/addons/Controls.js:80:5
    loadAddonFromFileresource://devtools/client/aboutdebugging/components/addons/Controls.js:70:7
    Controls.js:85:9

    Ü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


  • Mit der zip über about:debugging steht in der Browserkonsole:

    [i]Error: "File C:\Users\Lenovo M58\Documents\downloads\Tabs2List-master.zip does not contain a valid manifest"

    Kann auch nicht. Das ZIP (vermutlich aus github.com als "Clone or download" gezogen?) enthält die Dateien in einem Unterverzeichnis. Zip entpacken und dann in about:debugging in das Unterverzeichnis gehen und z.B. die manifest.json auswählen.

    Greetz,
    DF


  • Kann auch nicht. Das ZIP (vermutlich aus github.com als "Clone or download" gezogen?) enthält die Dateien in einem Unterverzeichnis. Zip entpacken und dann in about:debugging in das Unterverzeichnis gehen und z.B. die manifest.json auswählen.


    Wenn ich die die zip-Datei in xpi umbenenne und installiere, funktioniert das in der Regel. Diesmal nicht. Wenn ich über about:debugging die manifest.json prüfen lasse, wird die Erweiterung temporär installiert. Auf diese Weise klappt es also.

    Ü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

  • Na ja, ich gehe erst mal ins Bett. Neuer Tag, neuer Erfolg. Hoffe ich.

    Gute Nacht.

    Ü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


  • Wenn ich die die zip-Datei in xpi umbenenne und installiere, funktioniert das in der Regel. Diesmal nicht. Wenn ich über about:debugging die manifest.json prüfen lasse, wird die Erweiterung temporär installiert. Auf diese Weise klappt es also.

    Das kann ich mir nicht wirklich vorstellen. Kann es sein, dass du das mit den ZIPs verwechselst, die ich bisher hier immer hochgeladen habe? Die funktionieren nämlich so, weil ich die auch entsprechend gepackt habe. Hier nochmal die aktuelle Version, manuell gepackt:
    [attachment=0]extension.zip[/attachment]
    Das sollte so funktionieren, wie du es dir vorstellst. :)

    Aber die Github-ZIPs sind alle mit Unterverzeichnis. Hier mal ein anderes Beispiel einer Webextension:
    (Keine Ahnung, wozu die gut ist. Du musst die auch nicht installieren, nur entpacken. Dann siehst du, dass da nochmal ein Unterverzeichnis besteht.)
    https://github.com/tumpio/requestcontrol

    Du kannst das auch - weil wir es ja hier davon hatten - mit web-ext testen:
    https://github.com/mozilla/web-ext
    Im ZIP sind alle Daten in einem Unterverzeichnis.
    Und deshalb kann FF in so einer ZIP auch keine gültige manifest.json finden. Die steckt ja eine Etage tiefer... :)


  • Das kann ich mir nicht wirklich vorstellen. Kann es sein, dass du das mit den ZIPs verwechselst, die ich bisher hier immer hochgeladen habe? Die funktionieren nämlich so, weil ich die auch entsprechend gepackt habe. Hier nochmal die aktuelle Version, manuell gepackt:
    extension.zip
    Das sollte so funktionieren, wie du es dir vorstellst. :)


    Ja, das könnte sein und diese extension.zip funktioniert. Kein Problem, da packe ich die Tab2List-master.zip eben neu.

    Zitat

    Aber die Github-ZIPs sind alle mit Unterverzeichnis. Hier mal ein anderes Beispiel einer Webextension:
    (Keine Ahnung, wozu die gut ist. Du musst die auch nicht installieren, nur entpacken. Dann siehst du, dass da nochmal ein Unterverzeichnis besteht.)
    https://github.com/tumpio/requestcontrol


    Schaue ich mir mal an.

    Zitat

    Du kannst das auch - weil wir es ja hier davon hatten - mit web-ext testen:
    https://github.com/mozilla/web-ext


    Huh, du empfiehlst web-ext, du Feind aller Kommandezeilen? ;) :D
    Sehe ich mir mal an.

    Ü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


  • Ja, das könnte sein und diese extension.zip funktioniert. Kein Problem, da packe ich die Tab2List-master.zip eben neu.


    Eigentlich gibt es gar keinen Grund, da etwas neu zu packen.
    - Du entpackst das Github-ZIP
    - Du rufst about:debbuging auf
    - Du klickst den Button "Add-on temporär laden"
    - Du gehst in das Unterverzeichnis, in dem die manifest.json liegt
    - Du wählst die manifest.json aus
    - Fertig


    Huh, du empfiehlst web-ext, du Feind aller Kommandezeilen? ;) :D
    Sehe ich mir mal an.


    Ich kann nichts empfehlen, was ich nicht kenne... :P
    web-ext hat sicher seine Berechtigung. Nur für mich selbst sehe ich da jetzt momentan keine wirkliche Bereicherung.
    Ich lade meine Extension zum Testen so wie oben beschrieben und nach Änderungen klicke ich eben den Button "Neu laden".
    Ist ja jetzt nicht so, dass ich den halben Tag damit verbringe, diesen Button zu klicken. ;)

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)


  • Eigentlich gibt es gar keinen Grund, da etwas neu zu packen.


    Ja, habe ich ja auch schon gemacht, aber nach jedem Start musst du das wieder machen. Ich installiere lieber und dann kann ich damit arbeiten. Wenn die Struktur so wäre, wie sie sein sollte, bräuchte ich ja nicht neu packen.

    Zitat

    Ich kann nichts empfehlen, was ich nicht kenne... :P
    web-ext hat sicher seine Berechtigung. Nur für mich selbst sehe ich da jetzt momentan keine wirkliche Bereicherung.
    Ich lade meine Extension zum Testen so wie oben beschrieben und nach Änderungen klicke ich eben den Button "Neu laden".
    Ist ja jetzt nicht so, dass ich den halben Tag damit verbringe, diesen Button zu klicken. ;)


    Ich habe das jetzt mal über web-ext versucht. Nur erzählt mir web-ext ich hätte auf meinem 64er System einen 32er Firefox installiert. Ich habe überhaupt gar keinen 32er Firefox installiert. Aber wie es scheint, sucht web-ext automatisch in C://Program Files (86). Dorthin habe ich Firefox aber nicht installiert.

    Ü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

  • Also ich habe einfach das zip-File in extension.xpi umbenannt und dann in die Developer Edition ganz normal geladen und installiert. Auch beim nächsten Start ist Tab2List noch da. Da muss dann nix immer wieder neu gepackt werden.

    Bilder

    Chromebook Lenovo IdeaPad Flex 5 - chromeOS 122 (Stable Channel) - Linux Debian Bookworm: Firefox ESR 115.8.0 und Firefox Nightly, Beta und Main Release (Mozilla PPA), Android 13: Firefox Nightly und Firefox (Main Release)

    Smartphone - Firefox Main Release, Firefox Nightly, Firefox Klar (Main Release)


  • Also ich habe einfach das zip-File in extension.xpi umbenannt und dann in die Developer Edition ganz normal geladen und installiert.


    Welches zip-File? Die extension.zip von Effpeh? Ja, die hat er ja auch gepackt. Siehe Beitrag #209. Eine solche extension.zip hat er aber nicht immer zur Verfügung gestellt. Es geht um die Datei, die von Github automatisch gepackt wird, die Tab2List-master.zip. Da reicht das einfache Umbenennen nicht, da Github alles packt.

    Ü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

  • Spricht noch irgendetwas dagegen, dass ich die Extension bei AMO hochlade?
    Falls nicht, würde ich das dann mal machen... :wink:

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)

  • Tu es.

    Ü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

  • Es ist vollbracht... :P
    Und die Extension ist sogar schon freigeschaltet. Das ging schneller als ich dachte.
    Ich war noch mit dem Einstellen der Beschreibungstexte für Sorbisch beschäftigt, als das Teil schon on war.
    Sehr geil... :)
    Ein fettes Dankeschön nochmal an alle, die mir hier so geduldig geholfen haben. :klasse::D


    [...]


    Könntest du bitte mal schauen, ob ich die richtigen Texte für die Beschreibung eingepflegt habe?
    Ich denke schon, aber weisst ja: Besser mal nachgefragt. :lol:

    [...]


    Dankeschön für den ersten comment. :klasse::D

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)

  • Und die Extension ist sogar schon freigeschaltet. Das ging schneller als ich dachte.

    Es gibt seit ein paar Monaten automatische Freischaltungen für alle Erweiterungen. Das ist also nur noch eine Sache von Minuten. Eine Überprüfung der Erweiterung erfolgt im Gegensatz zu früher erst nach der Freischaltung. ;)

    Du solltest die Erweiterung hier auch noch verlinken, falls jemand interessiert ist. Ohne direkten Link verliert man häufig interessierte Nutzer. ;)


  • Es ist vollbracht... :P
    Ein fettes Dankeschön nochmal an alle, die mir hier so geduldig geholfen haben. :klasse::D


    Und dir herzlichen Glückwunsch zu deiner allerersten eigenen Webextension! :klasse::klasse:

    Zitat

    Könntest du bitte mal schauen, ob ich die richtigen Texte für die Beschreibung eingepflegt habe?
    Ich denke schon, aber weisst ja: Besser mal nachgefragt. :lol:


    Einen kleinen Fehler habe ich noch gefunden, der aber höchstwahrscheinlich auf meine Kappe geht - Asche aufs Haupt -. :( In der niedersorbischen langen Beschreibung steht das Wörtchen psez. Es muss aber pśez heißen (Strich über dem s). Könntest du das noch ändern? Danke.

    Warum hast du in die kurze Beschreibung von Deutsch, Obersorbisch und Niedersorbisch nur einen Satz aufgenommen, während die englische Beschreibung drei Sätze enthält?

    Ü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