1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. milupo

Beiträge von milupo

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 8. August 2024 um 23:58

    Und das hat vorher immer funktioniert? Ich frage, weil im Skript Appmenu_edit.uc.js in Zeile 18 helpmenu steht, mit kleinem m. Alle anderen Menüs haben großes M, wie z. B. davor toolsMenu. In Zeile 17 steht ja auch helpMenu als ID, also mit großem M. Mache also mal in Zeile 18 aus helpmenu helpMenu.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 8. August 2024 um 20:05
    Zitat von Endor

    Soll ich das Script auch in den Ordner für Thunderbird Scripte bei Github packen?

    Ja, ich denke das ist gut.

    Ich habe mir mal überlegt, ob es nicht vielleicht sinnvoll wäre, den Versionsordnern zwei Unterordner JSM und ESM hinzuzufügen. Alle Skripte, die JSM-Module nutzen in den JSM-Ordner und alle konvertierten Skripte in den ESM-Ordner. Im Laufe der Zeit verschiebst du dann die Skripte in den ESM-Ordner, wenn sie dann konvertiert sind. Der JSM-Ordner wird dann irgendwann leer sein und du kannst ihn löschen. Ab Fx 136 funktioniert sowieso nur noch ESM. Wenn es da noch nicht konvertierte JSM-Skripte gibt, lässt du sie dann noch im JSM-Ordner, vielleicht kann man sie dann doch noch konvertieren. Aber selbst wenn alle Skripte konvertiert sein sollten, kannst du noch, sagen wir ein halbes Jahr, eine Galgenfrist für die Nachzügler geben. Mehr aber nicht, denn die Firefox-Nutzer sollten schon etwas gezwungen werden eine aktuelle Firefox-Version zu nutzen. Außerdem kommt dann im Juli 2025 die neue ESR-Version, Firefox 140 ESR oder so, dann ist ganz Schluss mit JSM.

    Auf der Wurzelebene der Versionsordner kannst du dann all die Skripte unterbringen, die unabhängig von einem Modul sind.

    Aber entscheide selbst, ob du dir die Arbeit machen willst und nimm, falls ja, dir die erforderliche Zeit. Es ist nur ein Vorschlag.

  • Add-ons Manager, einmal Script und einmal Code (zusammenführen möglich?)

    • milupo
    • 8. August 2024 um 19:49
    Zitat von BarbaraZ-

    Ich lade jetzt beides und fertig. Danke fürs drüberschauen.

    Wenn du den Zusammenhang zwischen dem CSS-Code und diesem Skript sehen willst, setze doch den Code in eine CSS-Datei, die genauso heißt, wie das Skript.

    Übrigens. Ich bin kein Freund davon, Skripte mit CSS-Code zu überladen. Mal so ein paar Angaben wie in diesem Skript, aber nicht hundert Zeilen CSS in ein Skript packen. Das ist jetzt übertrieben, ich weiß.

  • mouseover tabvorschau komplett abschalten

    • milupo
    • 8. August 2024 um 15:03

    Starte mal Firefox im Fehlerbehebungsmodus.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 8. August 2024 um 12:03
    Zitat von Shelly

    Läuft auch im Thunderbird 129 im Übrigen.

    Sogar im 131-er Daily. Dort ist das Problem eher, dass ich erst einmal die maximale Version in der manifest.json einer Erweiterung „fälschen“ muss, um erst überhaupt mal eine Erweiterung installiert zu bekommen.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 7. August 2024 um 11:15
    Zitat von Endor

    Habe nun eine Info eingebaut und eine Deutsche Beschreibung hinzugefügt.
    Schau Dir das bitte mal an ob es so passt:

    Super, ich danke dir.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 21:14

    Wer möchte, der kann vor dem Installationsdatum etwas Text eingeben. Tauscht da Zeile 36 durch zum Beispiel diese Zeile aus:

    JavaScript
    info.textContent = `${version} - Installation: ${updateDate.toLocaleDateString("de-DE")}`;
  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 19:51
    Zitat von Endor

    Darf ich die bei mir in Github hochladen?

    Aber natürlich.

    Zitat von Endor

    Sollten wir im Kopfbereich einen Hinweis auf Deine Änderungen einfügen?

    Wäre vielleicht gut. Füge auch hinzu, dass das Skript im Original addons_ver_day_updatecheck.uc.js heißt, vielleicht auch die URL der japanischen Site.

    Ich habe letztendlich nur Zeile 8 an die Verwendung von ESM-Modulen mit der Dateiendung .sys.mjs angepasst. In der Zukunft könnte es sein, dass Zeile 12 (moduleURI) und Zeile 52 (ChromeUtils.import) geändert werden müssen. Wenn wir Glück haben, hält das Skript bis zum Abschluss der ESM-Migration mit Firefox 136.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 19:18

    Mira_Belle Ich möchte mich bei dir entschuldigen. Du hast recht, das Skript funktioniert nicht mit esModuleURI, sondern noch mit moduleURI. Auch wenn ich Zeile 8 an ESM angepasst habe. Danke für den Hinweis. Bis Firefox 136 ist doch noch etwas in Fluss.

    Hier ist die funktionierende ESM-Version:

    JavaScript
    // ==UserScript==
    // @name           addons_ver_day_updatecheck.uc.js - Show addon details in about:addons
    // @include        main
    // ==/UserScript==
    
    if (typeof window === "undefined" || globalThis !== window) {
        this.EXPORTED_SYMBOLS = ["AboutAddonsVerboseChild"];
    	ChromeUtils.defineESModuleGetters(this, { AddonManager: "resource://gre/modules/AddonManager.sys.mjs", });
        try {
            ChromeUtils.registerWindowActor("AboutAddonsVerbose", {
                child: {
                    moduleURI: __URI__,
                    events: {
                        DOMDocElementInserted: {},
                    },
                },
                matches: ["about:addons"],
            });
        } catch (e) {Cu.reportError(e);}
        this.AboutAddonsVerboseChild = class extends JSWindowActorChild {
            handleEvent({type}) {
                if (type !== "DOMDocElementInserted") return;
                const win = this.contentWindow;
                const doc = win.document;
                doc.addEventListener("view-loaded", () => {
                    const addons = doc.querySelectorAll(".addon-name");
                    for (let addon of addons) {
                        const addonId = addon.querySelector("a")?.href.slice("addons://detail/".length);
                        if (addonId) AddonManager.getAddonByID(addonId).then(result => {
                            const {version, updateDate} = result;
                            const info = doc.createElement("span");
                            info.style.fontSize = "1rem";
                            info.style.fontStyle = "normal";
    						info.style.fontWeight = "900";
                            info.style.marginInlineEnd = "8px";
                            info.textContent = `${version} - ${updateDate.toLocaleDateString("de-DE")}`;
                            addon.insertAdjacentElement("afterend", info);
                        }).catch(err => Cu.reportError(err));
                    }
                });
            }
        };
    }
    else {
        try {
            const fileHandler = Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler);
            const scriptFile = fileHandler.getFileFromURLSpec(Components.stack.filename);
            const resourceHandler = Services.io.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler);
            if (!resourceHandler.hasSubstitution("about-addons-verbose-ucjs")) {
                resourceHandler.setSubstitution("about-addons-verbose-ucjs", Services.io.newFileURI(scriptFile.parent));
            }
            ChromeUtils.import(`resource://about-addons-verbose-ucjs/${scriptFile.leafName}?${scriptFile.lastModifiedTime}`);
        } catch (e) {Cu.reportError(e)}
    }
    Alles anzeigen

    Das betrifft Fx 129 und Fx 131 und sicherlich auch Fx 130 beta.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 17:20
    Zitat von Mira_Belle

    Komisch, das (Dein) Skript mit "esModuleURI" funktioniert bei mir gar nicht!

    Nein, mein Skript funktioniert nicht, das liegt aber meines Erachtens nicht an esModuleURI. Ich lese ja die AddonManager.sys.mjs ein, also die ESM-Moduldatei und da gehört zu ChromeUtils.registerWindowActor (Zeile 10) esModuleURI. moduleURI gehört zu JSM-Dateien und in der Version von Endor wird ja noch die Moduldatei AddonManager.jsm eingelesen.

    Dass meine Skriptversion nicht funktioniert muss an einem anderen Fehler liegen. So perfekt sind meine JavaScript-Kenntnisse leider auch nicht, um diesen Fehler zu finden. Und die Umstellung auf ESM ist ja auch noch nicht so lange her.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 16:55
    Zitat von Mira_Belle

    Zeile 12! Nicht esModuleURI sondern moduleURI.

    Nein. moduleURI ist für JSM-Dateien (.jsm), für ESM-Dateien (Dateiendung .sys.mjs) gilt esModuleURI. Meine Version ist für ESM, ESM ist die Zukunft. Im Moment sollte Beides funktionieren, seit Firefox 126. Ab Firefox 136, der voraussichtlich im März nächsten Jahres erscheint, gilt dann nur noch ESM und etwas später gilt das dann auch für Firefox ESR.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 14:31

    Obwohl das von mir veränderte Skript nicht funktioniert, sollte es doch eigentlich mit dem ESM-Modul AddonManager.mjs funktionieren, da es keine AddonManager.jsm mehr gibt. Deswegen hier mal mein verändertes Skript, vielleicht ist nur ein kleiner Fehler drin:

    JavaScript
    // ==UserScript==
    // @name           Show addon details in about:addons
    // @include        main
    // ==/UserScript==
    
    if (typeof window === "undefined" || globalThis !== window) {
        this.EXPORTED_SYMBOLS = ["AboutAddonsVerboseChild"];
    	ChromeUtils.defineESModuleGetters(this, { AddonManager: "resource://gre/modules/AddonManager.sys.mjs", });
        try {
            ChromeUtils.registerWindowActor("AboutAddonsVerbose", {
                child: {
                    esModuleURI: __URI__,
                    events: {
                        DOMDocElementInserted: {},
                    },
                },
                matches: ["about:addons"],
            });
        } catch (e) {Cu.reportError(e);}
        this.AboutAddonsVerboseChild = class extends JSWindowActorChild {
            handleEvent({type}) {
                if (type !== "DOMDocElementInserted") return;
                const win = this.contentWindow;
                const doc = win.document;
                doc.addEventListener("view-loaded", () => {
                    const addons = doc.querySelectorAll(".addon-name");
                    for (let addon of addons) {
                        const addonId = addon.querySelector("a")?.href.slice("addons://detail/".length);
                        if (addonId) AddonManager.getAddonByID(addonId).then(result => {
                            const {version, updateDate} = result;
                            const info = doc.createElement("span");
                            info.style.fontSize = "1rem";
                            info.style.fontStyle = "normal";
    						info.style.fontWeight = "900";
                            info.style.marginInlineEnd = "8px";
                            info.textContent = `${version} - ${updateDate.toLocaleDateString("de-DE")}`;
                            addon.insertAdjacentElement("afterend", info);
                        }).catch(err => Cu.reportError(err));
                    }
                });
            }
        };
    }
    else {
        try {
            const fileHandler = Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler);
            const scriptFile = fileHandler.getFileFromURLSpec(Components.stack.filename);
            const resourceHandler = Services.io.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler);
            if (!resourceHandler.hasSubstitution("about-addons-verbose-ucjs")) {
                resourceHandler.setSubstitution("about-addons-verbose-ucjs", Services.io.newFileURI(scriptFile.parent));
            }
            ChromeUtils.import(`resource://about-addons-verbose-ucjs/${scriptFile.leafName}?${scriptFile.lastModifiedTime}`);
        } catch (e) {Cu.reportError(e)}
    }
    Alles anzeigen
  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 14:19
    Zitat von grisu2099

    Hast du die Versionsnummer evtl. per CSS aktiviert? Das geht nämlich auch...

    Tatsächlich, danke, ich habe dafür eine CSS-Datei, für das Installationsdatum übrigens auch. Aber da funktioniert er Code offensichtlich mehr.


    Zitat von Endor

    Genau das ist es.

    Ich habe bei mir mal den Skriptnamen oben unter Name eingefügt.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 14:12

    Mit dem Skriptnamen hat sich erledigt: Das Skript heißt addons_ver_day_updatecheck.uc.js. Und die neueste Version auf der japanischen Site ist die gleiche, die Endor hat.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 14:03
    Zitat von Endor

    Der Autor hatte das Script
    letzten November bei einer Japanischen Seite hoch geladen.

    Wie heißt denn das Skript im Original? Ich will es mal auf der japanischen Seite suchen.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 13:21
    Zitat von Endor

    Im unveränderten Script aus Beitrag eins funktioniert es einwandfrei.

    Bei mir wird mit deiner Version gar nicht angezeigt. Noch Firefox 128.0.3. Fx 129 ist hier noch nicht angekommen.


    Seltsam im Nightly funktioniert jetzt deine Version. Der Haken: Im Nightly ist wohl die Angabe der Versionsnummer Standard, sodass die Versionsnummer doppelt angezeigt wird.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 13:12
    Zitat von Endor

    Das script fügt bei about:addons bei den Erweiterungen im jeweiligen Titel
    die Versionsnummer und das Installationsdatum hinzu.

    Ach so, irgendwie bin ich davon ausgegangen, dass die Versionsnummer dazu gehört, aber stimmt, die wird ohne Skript nicht angezeigt. In meiner Version wird sie aber ebenfalls angezeigt. Installationsdatum habe ich keins. Ich sehe aber auch im Skript keinen Code, wo das definiert wird.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 11:42

    Anscheinend muss es auch ein Benutzerskript about-addons-verbose.uc.js oder so ähnlich geben, das in Zeile 52 eingelesen wird. Oder ist das der Name dieses Skriptes? Dann sollte es aber auch ganz oben angegeben werden, sonst funktioniert das Skript nicht, wenn man es unter einem anderen Namen abspeichert.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 11:24

    In Zeile 52 bin ich mir nicht ganz Sicher, dort steht ChromeUtils.import, Das würde ich in ChromeUtils.importESModule ändern, allerdings wird an der Stelle kein Modul eingelesen.


    In Zeile 12 muss noch moduleURI in esModuleURI geändert werden.

    Aber im Moment weiß ich auch noch nicht, woran man sieht, dass das Skript funktioniert.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • milupo
    • 6. August 2024 um 10:59
    Zitat von Endor

    Wenn ich das umändere auf
    AddonManager.sys.mjs diese Datei gibt es, geht es nicht mehr, genau so wie wenn ich diese Zeile entferne

    Hallo Endor, verwende mal ChromeUtils.defineESModuleGetter, ansonsten ChromeUtils.importESModule.

Unterstütze uns!

Jährlich (2025)

104,5 %

104,5% (679,10 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon