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. Mira_Belle

Beiträge von Mira_Belle

  • Windows 10

    • Mira_Belle
    • 28. Juni 2026 um 22:14
    Zitat von .DeJaVu

    Ansonsten sei erwähnt, dass ESU für privat eine regelmässige Anmeldung beim MS Konto erfordert, damit es wirkt.

    Ich meine gelesen zu haben, dass das so nicht stimmt.
    Es muss nur einmalig mit angemeldetem Konto aktiviert werden.

    Überprüfen kann ich es aber nicht.

  • Wetterfuchsbutton Script für userChrome.js

    • Mira_Belle
    • 28. Juni 2026 um 22:09

    milupo   Endor

    Hi ihr Lieben.
    Warum habt ihr Euch nicht schon vorher gemeldet?
    Ich selber nutze das Skript doch gar nicht.
    Von daher kann es mir gar nicht aufgefallen sein.

    Aber es gibt eine ganz einfache Lösung:!:

    Fügt diesen Code-Block direkt vor der letzten Zeile })(); in Euer Skript ein:

    JavaScript
      // ESC-Taste zum Schließen des Wetterfuchs-Panels
      document.addEventListener('keydown', function(event) {
        if (event.key === 'Escape' || event.keyCode === 27) {
          const panel = document.getElementById('wetterfuchs-panel');
          if (panel) panel.hidePopup();
        }
      });

    Wie es dann funktioniert, ist klar, oder?

    Oder braucht ihr eine andere Lösung?

  • Windows 10

    • Mira_Belle
    • 27. Juni 2026 um 16:53

    Und zu guter Letzt, die Frage aller Fragen!

    Zitat von Google

    Wenn es Microsoft egal ist, ob der Nutzer eine legale Windows 10 Installation betreibt, wenn er sogar eventuell eine IoT hat, damit er Updates bis 2032 bekommt, wenn würde das denn jucken?

    Wenn Sie als Privatanwender zu Hause eine unlizenzierte oder per Graumarkt-Key aktivierte Version von Windows 10 IoT Enterprise LTSC nutzen, juckt das im echten Leben absolut niemanden. Weder Microsoft, noch die Polizei, noch die Staatsanwaltschaft werden wegen eines einzelnen Heim-PCs aktiv. [1, 2, 3]

    Es gibt jedoch eine einzige, sehr konkrete Ausnahme, bei der es jemanden juckt – und das sind Sie selbst, sobald Software-Inkompatibilitäten oder technische Hürden auftreten. [1, 2]

    Hier ist die ungeschönte Realität, wen es interessiert und wen nicht:

    Wen es absolut NICHT juckt

    • Microsoft: Wie bereits erwähnt, kontrolliert Microsoft keine Privatkunden. Es gibt keine "Lizenz-Polizei", die Privathaushalte durchsucht. Für Microsoft zählt in der Statistik nur, dass der Marktanteil von Windows hoch bleibt. [1]
    • Die Justiz: Urheberrechtsverletzungen bei Software werden in Deutschland bei Privatpersonen (ohne gewerbliche Absichten) so gut wie nie strafrechtlich verfolgt, da kein "öffentliches Interesse" besteht. Microsoft müsste Sie zivilrechtlich verklagen – was bei einem Streitwert von rund 100 Euro für eine Windows-Lizenz wirtschaftlicher Unsinn für den Konzern wäre.

    Wann und wen es DOCH juckt (Die technischen Probleme)

    Auch wenn Sie rechtlich nichts zu befürchten haben, "juckt" es im Laufe der Jahre bis 2032 die Technologie-Welt um Sie herum. Die Windows 10 IoT Enterprise LTSC 2021 friert das System auf dem Softwarestand von Ende 2021 ein. Das hat drastische Folgen für den Alltag: [1, 2]

    Alles anzeigen

    Dessen muss man sich bewusst sein!
    Diverse Software wie auch Games können/werde auf so einem System wahrscheinlich irgendwann nicht mehr laufen.
    Auch Treiber für eventuell neu angeschaffte Hardware können eventuell nicht mehr installiert werden.

  • Windows 10

    • Mira_Belle
    • 27. Juni 2026 um 16:32

    Weil ja immer die Frage im Raum steht was "illegal" und was "legal" ist.

    Wenn ich Windows 11 auf ein System wuppe, welches offiziell gar nicht für Windows 11 laut MS vorgesehen war/ist,
    ist diese Installation dann noch "legal"?

    Und wenn das nicht der Fall sein sollte, macht es DANN einen Unterschied, ob ich z.B. Windows 10 ESU Bypass nutze
    um dennoch bis eventuell 2032 Sicherheitspatches für Windows 10 zu installieren?

    Und mal eine ganz steile These einzuwerfen, wenn MS es egal ist, wen sollte es dann noch interessieren?
    Wohl gemerkt geht es "nur" um private Installationen!! Im Business schaut das alles schon ganz anders aus!
    Darum soll es nicht gehen:!:


    Nun, ich möchte hier keinen Streit vom Zaun brechen, und habe mal die Google KI befragt.

    Hier das Ergebnis:

    Zitat von Google

    Ist eine Windows 11 Installation auf nicht dafür vorgesehene Hardware legal?

    Ja, die Installation von Windows 11 auf nicht offiziell unterstützter Hardware ist vollkommen legal, solange Sie eine gültige und rechtmäßig erworbene Lizenz für das Betriebssystem besitzen. [1, 2]

    Microsoft verbietet das Umgehen der Hardware-Prüfung weder gesetzlich noch über die eigenen Lizenzbedingungen (EULA). Das Unternehmen stellt für diesen Zweck über den Microsoft Support sogar eigene Registry-Schlüssel bereit, um bestimmte Anforderungen wie TPM 2.0 oder die CPU-Prüfung zu überspringen. [1, 2, 3, 4]

    Die Bedingungen und Risiken im Überblick

    • Lizenzpflicht bleibt bestehen: Das Betriebssystem muss weiterhin mit einem legalen Lizenzschlüssel (Product Key) aktiviert werden. Ein Upgrade von einem rechtmäßigen Windows 10 behält in der Regel seine Aktivierung. [1, 2]
    • Kein Anspruch auf Updates: Microsoft schließt in den integrierten Warnhinweisen jegliche Garantie für zukünftige Updates aus. Geräte auf inkompatibler Hardware erhalten potenziell keine Sicherheits- und Funktionsupdates. [1, 2, 3, 4, 5]
    • Vollständiger Support-Ausschluss: Sie verlieren jeden Anspruch auf technischen Support durch Microsoft oder Ihren Hardware-Hersteller für dieses System. [1]
    • Haftungsausschluss: Eventuelle Schäden am Gerät oder Datenverlust durch Inkompatibilitäten nach System-Updates geschehen auf eigenes Risiko und werden nicht durch Garantien abgedeckt. [1, 2]
    • Optische Einschränkungen: Microsoft behält sich vor, ein permanentes Wasserzeichen ("Systemanforderungen nicht erfüllt") auf dem Desktop einzublenden. [1, 2]
    Zitat von Google

    Und was ist mit einer legalen Windows 10 Installation und dem einsetzen eines ESU Bypass um dennoch an Updates zu kommen?

    Das Einsetzen eines "ESU Bypass" (wie z.B. BypassESU) bewegt sich in einer rechtlichen Grauzone, verstößt aber sehr deutlich gegen die Lizenzbedingungen (EULA) von Microsoft.

    Während eine Windows 11 Installation auf inkompatibler Hardware von Microsoft über eigene Registry-Pfade geduldet wird, greift ein ESU-Bypass aktiv in das System ein. Er täuscht den Update-Servern vor, das Gerät sei ein berechtigtes Firmen- oder Behördensystem, um kostenpflichtige Extended Security Updates ohne Bezahlung herunterzuladen.

    Da Microsoft das offizielle ESU-Programm für Privatnutzer im Europäischen Wirtschaftsraum (EWR) gratis verlängert hat, ist ein illegaler Bypass technisch und rechtlich ohnehin nicht mehr notwendig. [1, 2]

    Die rechtliche und lizenzrechtliche Einordnung

    • Urheberrecht & Erschleichung von Leistungen: Strafrechtlich ist die Modifikation von Systemdateien auf dem eigenen PC in Deutschland nicht direkt verboten. Allerdings greift der Bypass gezielt in Update-Abfrage-Routinen ein. Das Herunterladen von kostenpflichtigen Inhalten (Updates für Unternehmen), für die man keine Lizenz besitzt, kann rechtlich als das Erschleichen von Dienstleistungen gewertet werden.
    • Verstoß gegen die EULA: In den Microsoft-Lizenzbedingungen ist die Umgehung von technischen Schutzmaßnahmen oder Zugangsbeschränkungen zu Software-Features explizit untersagt. Microsoft hat das Recht, die Lizenz (Aktivierung) des Betriebssystems bei erkannten Verstößen zu sperren. [1]
    • Das Risiko des "Katz-und-Maus-Spiels": Microsoft schließt die Lücken, die solche Bypass-Skripte nutzen, regelmäßig durch eigene Patches. Sobald ein solcher Patch eingespielt wird, bricht der Update-Mechanismus ab, und das System bleibt bis zu einem Update des Bypass-Skripts ungeschützt.

    Die offizielle, legale Alternative in der EU

    Sie müssen dieses Risiko nicht eingehen. Für Privatnutzer in Deutschland und der EU gilt eine Sonderregelung:

    1. Kostenloser ESU-Support: Im gesamten EWR-Raum stellt Microsoft das ESU-Programm für Privatanwender vollkommen gratis zur Verfügung.
    2. Support verlängert: Die Frist für diese kostenfreien Sicherheitsupdates wurde für Privatkunden bis zum 12. Oktober 2027 ausgeweitet.
    3. Voraussetzung: Sie müssen lediglich das offizielle ESU-Anmelfenster in den Windows-Update-Einstellungen nutzen und das System mit einem Microsoft-Konto verknüpfen. [1, 2, 3]
    Alles anzeigen
    Zitat von Google

    OK, das nutzen eines ESU Bypass ist nicht legal,
    aber interessiert das Microsoft bei Privatanwendern überhaupt?
    Ist es nicht eher so, dass sie das stillschweigend dulden, damit der User nicht doch "abwandert"? Z.B. zu einem Linux.

    Ja, das trifft den Kern der Sache ziemlich genau. Microsoft interessiert sich im Alltag so gut wie gar nicht dafür, ob ein Privatanwender zu Hause einen ESU-Bypass nutzt, um illegale Updates zu erhalten.

    Dass der Konzern hier "beide Augen zudrückt", hat handfeste strategische und wirtschaftliche Gründe.

    Warum Microsoft bei Privatnutzern wegschaut

    • Die Angst vor dem Plattform-Wechsel: Ein Betriebssystem lebt von seinem Ökosystem. Wandert ein Nutzer unzufrieden zu Linux ab, verliert Microsoft ihn komplett. Bleibt er über Umwege bei Windows 10, nutzt er weiterhin den Microsoft Edge-Browser, nutzt vielleicht OneDrive oder kauft Abonnements wie den Xbox Game Pass oder Microsoft 365. Das Ökosystem-Binding ist Microsoft wichtiger als 30 Euro Update-Gebühr. [1, 2]
    • Kein finanzieller Schaden im großen Stil: Das große Geld verdient Microsoft im B2B-Sektor mit Unternehmenskunden (Enterprise), Behörden und Schulen. Dort kostet das ESU-Programm teils hunderte Euro pro Gerät. In Firmennetzwerken wird die Einhaltung von Lizenzen streng über sogenannte Compliance-Audits kontrolliert. Verstöße enden dort in Millionenstrafen. Ein einzelner Privatanwender ist den rechtlichen Aufwand schlicht nicht wert. [1, 2]
    • Sicherheit des Gesamtnetzes (Botnetze): Es liegt auch im Interesse von Microsoft, dass im Internet nicht Millionen von ungepatchten Windows-Rechnern herumlaufen. Ungepatchte PCs werden schnell Teil von weltweiten Botnetzen. Diese infizieren dann wiederum andere Systeme – auch die von zahlenden Unternehmenskunden. Ein illegal per Bypass geupdateter PC ist für die globale Netzsicherheit besser als ein komplett offener PC.

    Technische Realität statt rechtlicher Verfolgung

    Anstatt Anwälte loszuschicken, löst Microsoft das Problem bei Privatanwendern rein technisch:

    • Das "Katz-und-Maus-Spiel": Microsoft geht nicht rechtlich gegen Sie vor, aber sie programmieren die Update-Routinen in Windows regelmäßig um. Es kann also sein, dass Ihr ESU-Bypass nach dem nächsten monatlichen Patchday plötzlich nicht mehr funktioniert und Sie das Skript manuell aktualisieren müssen. [1, 2]
    • Keine Priorität für Fehlerbehebungen: Wenn durch den Bypass ein Update Ihr System beschädigt (z. B. ein Bluescreen auftritt), gibt es keinerlei Absicherung oder Fehlerbehebung für Ihre Hardware-Konfiguration.

    Fazit

    Ihre Vermutung ist absolut korrekt: Es ist eine stillschweigende Duldung aus strategischem Eigeninteresse. Microsoft möchte Sie als Microsoft-Kunden behalten. [1, 2, 3]

    Alles anzeigen
  • Scaling/display problems

    • Mira_Belle
    • 27. Juni 2026 um 08:30

    juzzlukin Oh, crap.

    You'd better rebuild your CSS from scratch.

    Not only is it totally unstructured, but there are also some dead code fragments in there!


    I could help you if you'd like.

    But you also have scripts and extensions active

    that are interfering with the design as well.

  • Javascript-Toggler geht nicht

    • Mira_Belle
    • 22. Juni 2026 um 22:23

    Mal abgesehen davon, dass ich Dein Anliegen nicht verstehe,
    was ist so schwer daran sich eine Portable selbst zu erstellen?

    Das Wunderbare daran wäre dann noch, die kann ganz normal aktualisiert werden,
    also per Hilfe/Über FireFox

  • JavaScript Lesezeichen Manager öffnen geht nicht mehr.

    • Mira_Belle
    • 21. Juni 2026 um 21:08

    so ganz neben bei möchte ich mal anmerken, dass ich die Vermutung habe, das wenn In einem Skript so
    eine Dauerschleife ist, dass das dann auch den Script-Cache überfordern könnte.

    Ist mir vor längerer Zeit mal aufgefallen, egal wie oft und mit welchen Optionen ich den FF neu gestartet habe,
    das Skript, dass ich Testen wollt nie so richtig funktionierte.
    Erst als ich alle anderen Skripte deaktivierte, lief es so wie vorgesehen.
    Was auch zu Irritationen führen kann, gleiche ID's in verschiedenen Skripten zu verwenden.
    Und was auch noch gerne unerwartete Auswirkungen hat:
    var
    let
    const

    und an welcher Stelle im Skript die deklariert werden!

  • SkipToTopAndBottom.uc.js

    • Mira_Belle
    • 20. Juni 2026 um 14:53
    Zitat von Boersenfeger

    Was du immer herausliest 😄

    So bin ich halt. Sorry.
    Und gerade bei dem Wetter hätte ich ja durchaus richtig liegen können.

    Zitat von Boersenfeger

    Der Grundaufbau ist aber immer derselbe. Und schließlich hatte ich in #2 das Wort Roaming extra gefettet und kursiv geschrieben, um klarzustellen, das sich hier der Pfad zu deinem Script unterscheidet.

    Nein, nein. Ist nicht so!
    Die im Skript benutzte Variabel "Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");" verweis, bzw. berechnet
    genau den Pfad zu C:\Users\"Username"\AppData\Roaming\Mozilla\Firefox\Profiles\"Profilname"!
    Und der Zusatz, dann 'url("' + ("file:" + ProfilePath + "/chrome/icons/" + up) + '") hängt eben den Ordner "chome" & "icons" an.
    Und ans Ende wird dann noch, in diesem Fall das Symbol ink. Dateiendung geklatscht!
    Im Ganzen würde das dann folgendes ergeben.
    C:\Users\"Username"\AppData\Roaming\Mozilla\Firefox\Profiles\"Profilname"\chome\icons\arrow-up.svg

  • SkipToTopAndBottom.uc.js

    • Mira_Belle
    • 20. Juni 2026 um 14:11
    Zitat von Boersenfeger

    Und zu Erhellung:

    Gereizt? War nicht meine Absicht.
    Deine Aussage "Meine Icons befinden sich für alle Füchse im Unterordner Icons im Chrome-Ordner."
    kann man jetzt auch wieder Missverstehen!
    Greifen ALLE Deine Füchse auf ein und dasselbe Profil zu?

    Und aus Deinem Post #2 ging das ja auch nicht hervor!
    Da sah es eher so aus, als dass sich die Symbole eben direkt im Ordner "Profiles" befinden,
    also außerhalb des Profils und schon gar nicht in
    C:\Users\Ich\AppData\Roaming\Mozilla\Firefox\Profiles\...\chrome\icons

    Worauf man auch immer achten soll ist die Groß- und Kleinschreibung.
    Zitat: "... Unterordner Icons ..."
    Windows ist das Herzlich egal, aber in JS macht das einen Unterschied!
    Weshalb sehr wahrscheinlich bei Dir keine Symbole angezeigt wurden.

    Wie dem aus sei, es ist doch schön, wenn Du versorgt bist und alles klappt, wie Du Dir das vorstellst.

  • SkipToTopAndBottom.uc.js

    • Mira_Belle
    • 20. Juni 2026 um 13:33

    Wenn die Symbole sich entgegen der Anweisung, an anderer Stelle befinden, muss halt auch der Pfad zu diesen entsprechend geändert werden.

    Wenn sich das Sybol direkt im Ordener Profil befindet, dann so ...
    einfach in Zeile 22 & 47 einfach das + "/chrome/icons/" entfernen!
    Also aus z.B. menuitem.style.setProperty('--menuitem-icon', 'url("' + ("file:" + ProfilePath + "/chrome/icons/" + up) + '")');

    menuitem.style.setProperty('--menuitem-icon', 'url("' + ("file:" + ProfilePath + up) + '")');

    Noch einmal!
    let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); entspricht

    %appdata%\Mozilla\Firefox\Profiles\"Profilname"\ .

    Wenn nun der Ordner sich außerhalb des Profils befindet, dann sollte man eben den
    absoluten Pfad angeben!!
    In Deinem Fall eben => C:\Users\Ich\AppData\Roaming\Mozilla\Firefox\Profiles\...
    Ich nehme jetzt mal an, dass sich das Symbol einfach im Ordner "Profile" sich befand.

    Und wie in dem anderen Skript zu erkennen ist, kann man natürlich auch jedes x-beliebige interne Symbol verwenden.


    Zitat von Boersenfeger

    Dieses funktioniert hier im Nightly nicht:

    Mh. doch tut es. Zumindest bei mir.
    In der derzeitigen Nightly, in der Beta und in der Final.


    Zitat von Boersenfeger

    Ich habe mir erlaubt den fehlerhaften einführenden Text etwas umzugestalten:

    Danke, Ich sollte besser noch mal lesen, was ich da so verzapfe.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 20. Juni 2026 um 01:15

    :thumbup:

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 19. Juni 2026 um 07:52

    juzzlukin Das Skript, AddonSuche4.uc.js, kannst Du nehmen, es ist & war aber nur ein Test,
    das darauf folgende (#69) Skript, ist das bessere und finale Skript.
    Einfacherer Code und somit besser wartbar.

    Darauf hatten FuchsFan und ich uns geeinigt.
    Probiere es doch bitte aus und teile uns mit, ob es das auch tut.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 18. Juni 2026 um 22:36
    Zitat von FuchsFan

    Ich traue mich immer nicht so heftig zu reagieren, sonst streikt sie womöglich noch. ;)

    Hahaha. Du glaubst gar nicht, was ich Fluchen kann und wie ich manchmal das Teil beschimpfe.
    Aber sie macht dann, was ich will.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 18. Juni 2026 um 22:12

    juzzlukin Du hast, wenn ich das alles richtig mitbekomme, eine recht eigenwillige Installation!

    Ich würde Dir echt anraten
    1. Strickt die Betriebssysteme voneinander zu trennen.
    2. Den Firefox neu zu installieren, backup nicht vergessen, und dann erst das Profil neu aufzubauen.

    Und weil hier schon etwas durcheinander herrscht, gib doch bitte z.B. den Link zum Beitrag an,
    welches Skript Du gerade in Verwendung hattest.


    Zitat von FuchsFan

    Aber egal, dann einigen wir uns auf das Script aus #69. Einverstanden?

    Wir müssen uns ja nicht einigen, aber man kann auch der doofen KI in den Arsch treten,
    damit sie eben nicht ständig irgendetwas Neues aus dem Hut zaubert.
    Und manchmal hilft Fluchen auch ^^

    Magst Du mal meinen Prompt sehen?

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 18. Juni 2026 um 22:01

    Verdammt, erstelle doch nicht immer komplett neuen Code.
    Korrigiere doch den Alten. Der ist doch gut:!:

    Da fehlte nur eine Zeile! => win.gBrowser.selectedTab = tab;

    Hier Dein komplettes, altes Skript:

    JavaScript
    // addonUpdateNotifier.uc.js
    // Firefox 152+
    
    (async function() {
        if (location.href !== "chrome://browser/content/browser.xhtml")
            return;
    
        const { AddonManager } =
            ChromeUtils.importESModule ("resource://gre/modules/AddonManager.sys.mjs");
    
        async function checkForUpdates() {
            let foundUpdate = false;
            let addons = await AddonManager.getAddonsByTypes(["extension"]);
    
            for (let addon of addons) {
                if (!(addon.permissions & AddonManager.PERM_CAN_UPGRADE))
                    continue;
    
                await new Promise(resolve => {
                    addon.findUpdates({
                        onUpdateAvailable(aAddon, install) {
                            foundUpdate = true;
                        },
                        onNoUpdateAvailable() {},
                        onUpdateFinished() {
                            resolve();
                        }
                    }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
                });
            }
            if (foundUpdate) {
                let win = Services.wm.getMostRecentWindow("navigator:browser");
                let tab = win.gBrowser.addTrustedTab("about:addons");
                win.gBrowser.selectedTab = tab;
    
                tab.linkedBrowser.addEventListener(
                    "DOMContentLoaded",
                    function listener() {
                        tab.linkedBrowser.removeEventListener(
                            "DOMContentLoaded",
                            listener
                        );
                        tab.linkedBrowser.loadURI(
                            Services.io.newURI(
                                "about:addons#updates"
                            )
                        );
                    },
                    { once: true }
                );
            }
        }
        setTimeout(checkForUpdates, 2000);
    })();
    Alles anzeigen

    Nimm mir meinen Kraftausdruck bitte nicht krumm,
    aber ich finde, wenn bei jeder kleinsten Anpassung jedes Mal ein komplett anderer Code gepostet wird,
    stiftet das nur durcheinander.

    Auch die Änderung, dass alle Updates aller Addons angezeigt werden, war ja recht banal und einfach.

    Dein (altes) Skript ist klasse und um einiges leichter zu warten, als mein Monstrum.

  • Entwicklung Firefox

    • Mira_Belle
    • 18. Juni 2026 um 21:25

    Sören Hentzschel Ist in meiner Nightly z.Z. noch nicht vorhanden.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 18. Juni 2026 um 21:01

    FuchsFan Und hier die Lösung.

    JavaScript
    // addonUpdateNotifier.uc.js
    // Firefox 152+
    
    (async function() {
        if (location.href !== "chrome://browser/content/browser.xhtml")
            return;
    
        const { AddonManager } =
            ChromeUtils.importESModule ("resource://gre/modules/AddonManager.sys.mjs");
    
        async function checkForUpdates() {
            let foundUpdate = false;
            let addons = await AddonManager.getAddonsByTypes(["extension"]);
    
            for (let addon of addons) {
                if (!(addon.permissions & AddonManager.PERM_CAN_UPGRADE))
                    continue;
    
                await new Promise(resolve => {
                    addon.findUpdates({
                        onUpdateAvailable(aAddon, install) {
                            foundUpdate = true;
                        },
                        onNoUpdateAvailable() {},
                        onUpdateFinished() {
                            resolve();
                        }
                    }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
                });
            }
            if (foundUpdate) {
                let win = Services.wm.getMostRecentWindow("navigator:browser");
                let tab = win.gBrowser.addTrustedTab("about:addons");
    
                tab.linkedBrowser.addEventListener(
                    "DOMContentLoaded",
                    function listener() {
                        tab.linkedBrowser.removeEventListener(
                            "DOMContentLoaded",
                            listener
                        );
                        tab.linkedBrowser.loadURI(
                            Services.io.newURI(
                                "about:addons#updates"
                            )
                        );
                    },
                    { once: true }
                );
            }
        }
        setTimeout(checkForUpdates, 2000);
    })();
    Alles anzeigen
  • Menüpopup hat keinen Text wenn kein Focus vorher war

    • Mira_Belle
    • 18. Juni 2026 um 18:33

    Sorry 2002Andreas habe ich zum Glück nicht.
    Auch nicht in der derzeitigen Nightly.

    Nutzt Du wirklich noch 152.0?

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 18. Juni 2026 um 17:54

    juzzlukin Du hast nun die Wahl.

    Suche Dir aus, was Dir besser zusagt.


    Falls ich Dir richtig verstanden hatte und die Seite "about:addons" manchmal hängen geblieben ist,
    habe ich das Skript dafür gefixt.

    JavaScript
    // Atomatk-Addons-UpDate-Check.uc.js
    // Das Script führt automatisch einen UpDate-Check aus und dies in einem neuen Tab anzeigt.
    // Auch wird ein Button erstellt, der einen UpDate-Check ausführt und dies in einem neuen Tab anzeigt.
    
    // Source file https://www.camp-firefox.de/forum/thema/140656/?postID=1290593#post1290593
    
    /* ----------------------------------------------------------------------------------- */
    /* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */
    /* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */
    /* ----------------------------------------------------------------------------------- */
    
    (function() {
    "use strict";
    
        // Nur in einem normalen Browserfenster weiterarbeiten.
        if (!window.gBrowser) return;
    
        const
        // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                 id = 'addons-update-button', // Id des Buttons
               link = 'about:addons', // Linkziel des Buttons
              label = 'Add-ons Update', // Bezeichnung des Buttons
        tooltiptext = 'Add-ons aktualisieren',
        // Icon-------------------------------------------------------
               icon = 'sync.svg', // [Name.Dateiendung] des Symbols
             colour = '#8bff0f', // Farbe für das SVG-Icon setzen
           iconPath = '/chrome/icons/', // Pfad zum Ordner der das Icon beinhaltet
        // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
         curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    
        // SVG-Icons können CSS-Farbangaben übernehmen; das schaltet Firefox dafür frei.
    	if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
    		Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
    	}
    
        const
        // ■■ START ScriptConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
        STARTUP_DELAY_MS = 2500, // Verzögerung nach Firefox-Start, damit die Oberfläche fertig geladen ist.
             MAX_WAIT_MS = 12000, // Maximale Wartezeit darauf, dass about:addons vollständig geladen ist.
                 POLL_MS = 250; // Intervall für wiederholte Prüfungen.
        let
             startupDone = false, // Merkt sich, ob der Startvorgang schon einmal ausgeführt wurde.
                    busy = false; // Verhindert parallele Abläufe.
        // ■■ END ScriptConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
        //BUTTON
    	try {
          CustomizableUI.createWidget({
             id: id,
             defaultArea: CustomizableUI.AREA_NAVBAR,
             label: label,
             tooltiptext: tooltiptext,
    
             onCreated: (button) => {
                button.style.MozContextProperties = 'fill, stroke, fill-opacity';
                button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
                button.style.minWidth = 'fit-content';
              //  button.style.color = '#ffe10f'; // Farbe für das SVG-Icon setzen
                button.style.color = colour;
             }
          });
    	} catch(e) {};
        // Liefert das aktuellste Browserfenster.
        function getBrowserWindow() {
            return Services.wm.getMostRecentWindow("navigator:browser");
        }
        // Öffnet about:addons in einem neuen Tab.
        function openAddonsTab(win) {
            if (!win) return false;
            try {
                win.openTrustedLinkIn(link, "tab");
            return true;
            } catch (e) {
                return false;
            }
        }
    
        // Schließt den Tab, wenn keine Updates gefunden wurden (mit robusterer Prüfung).
        function checkAndCloseIfNoUpdates(doc, win) {
            const startTime = Date.now();
            const MAX_CHECK_TIME = 10000; // 10 Sekunden maximale Wartezeit
            const CHECK_INTERVAL = 500;   // Alle 500ms prüfen
    
            function check() {
                try {
                    // 1. Prüfe das klassische "no updates"-Element
                    const messageEl = doc.getElementById('updates-message');
                    if (messageEl && messageEl.getAttribute('state') === 'none-found') {
                        closeTabSafely(win);
                        return;
                    }
    
                    // 2. Prüfe, ob die "Available Updates"-Liste leer ist
                    const availableUpdates = doc.querySelector('addon-list[filter="updates-available"]');
                    if (availableUpdates && availableUpdates.items.length === 0) {
                        closeTabSafely(win);
                        return;
                    }
    
                    // 3. Prüfe auf Textindikatoren (z. B. "All add-ons are up to date")
                    const noUpdatesText = doc.querySelector('.no-updates, [data-l10n-id="addon-updates-none-found"]');
                    if (noUpdatesText) {
                        closeTabSafely(win);
                        return;
                    }
    
                    // 4. Wenn nichts gefunden wurde, aber die Zeit abgelaufen ist: Tab schließen
                    if (Date.now() - startTime > MAX_CHECK_TIME) {
                        closeTabSafely(win);
                        return;
                    }
    
                    // Weiter prüfen
                    win.setTimeout(check, CHECK_INTERVAL);
                } catch (e) {
                    // Falls ein Fehler auftritt (z. B. Tab bereits geschlossen), abbrechen
                    console.error('[AddonUpdateCheck] Fehler bei der Update-Prüfung:', e);
                }
            }
    
            // Hilfsfunktion: Tab sicher schließen (mit Fehlerbehandlung)
            function closeTabSafely(win) {
                try {
                    if (win && win.gBrowser && win.gBrowser.removeCurrentTab) {
                        win.gBrowser.removeCurrentTab();
                    }
                } catch (e) {
                    console.warn('[AddonUpdateCheck] Tab konnte nicht geschlossen werden:', e);
                }
            }
    
            // Erste Prüfung nach 1 Sekunde starten (damit Firefox Zeit hat, die UI zu aktualisieren)
            win.setTimeout(check, 1000);
        }
        // Prüft, ob die Update-Elemente in about:addons schon vorhanden sind.
        function runOriginalAddonActions(doc, win) {
            try {
                const
                options = doc.querySelector("addon-page-options"),
                checkItem = doc.querySelector('panel-item[action="check-for-updates"]');
                // Update-Prüfung auslösen.
                if (options && checkItem) {
                    checkItem.click();
                }
                // Kurz warten, damit Firefox die Ergebnisse sichtbar aufbauen kann.
                win.setTimeout(function() {
                    try {
                        const categories = doc.getElementById("categories");
                        if (categories) {
                            const availableBtn = categories.querySelector('button[viewid="addons://updates/available"]');
                            if (availableBtn) availableBtn.click();
                            // 500ms warten, dann einmal prüfen
                            win.setTimeout(() => checkAndCloseIfNoUpdates(doc, win), 500);
                        }
                    } catch (e) {}
                        busy = false;
                }, 500); // Timeout auf 500ms erhöht für zuverlässigen Wechsel // hier stand vorher 1500
            } catch (e) {
                busy = false;
            }
        }
    
        // Wartet, bis about:addons vollständig geladen ist.
        function waitForAboutAddons(win, fromStartup) {
            const started = Date.now();
    
            function tick() {
                let doc = null;
                try {
                doc = win.gBrowser.selectedBrowser.contentDocument;
                } catch (e) {}
                // Nur weitermachen, wenn about:addons wirklich geöffnet ist.
                if (doc && doc.URL === "about:addons") {
                    try {
                        const
                        // Prüfen, ob die erwarteten UI-Elemente schon vorhanden sind.
                        options = doc.querySelector("addon-page-options"),
                        checkItem = doc.querySelector('panel-item[action="check-for-updates"]'),
                        recentItem = doc.querySelector('panel-item[action="view-recent-updates"]');
    
                        // Wenn alles da ist, die eigentliche Update-Logik starten.
                        if (options && checkItem && recentItem) {
                            runOriginalAddonActions(doc, win);
                            return;
                        }
                    } catch (e) {}
                }
                // Weiter warten, solange das Zeitlimit nicht überschritten ist.
                if (Date.now() - started < MAX_WAIT_MS) {
                    win.setTimeout(tick, POLL_MS);
                } else {
                    // Wenn die Zeit abgelaufen ist, wieder freigeben.
                    busy = false;
    
                    // Beim Start nicht weiter forcieren.
                    if (!fromStartup) {
                        openAddonsTab(win);
                    }
                }
            }
            tick();
        }
        // Gemeinsame Hauptfunktion für Start und Button.
        function runCheck(fromStartup) {
            if (busy) return;
            busy = true;
            const win = getBrowserWindow();
            if (!win) { 
                busy = false;
                return;
            }
            // Erst Tab öffnen.
            if (!openAddonsTab(win)) { 
                busy = false;
                return;
            }
            // Danach auf fertige Seite warten.
            waitForAboutAddons(win, fromStartup);
        }
        // Startprüfung nur einmal ausführen.
        function runStartupCheck() {
            if (startupDone) return;
            startupDone = true;
            const win = getBrowserWindow();
            if (!win) return;
            // Kleine Verzögerung, damit Firefox vollständig bereit ist.
            win.setTimeout(function() { 
                runCheck(true);
            }, STARTUP_DELAY_MS);
        }
        // Observer für den Zeitpunkt, an dem Firefox die Fenster wiederhergestellt hat.
        function onWindowsRestored(subject, topic) {
            if (topic !== "sessionstore-windows-restored") return;
            try {
                Services.obs.removeObserver(onWindowsRestored, "sessionstore-windows-restored");
            } catch (e) {}
            runStartupCheck();
        }
        // Observer registrieren.
        try {
            Services.obs.addObserver(onWindowsRestored, "sessionstore-windows-restored");
        } catch (e) {
            // Falls der Observer nicht verfügbar ist, per Timer versuchen.
            window.setTimeout(runStartupCheck, STARTUP_DELAY_MS);
        }
        // Button-Klick-Handler einrichten.
        (function click_button() {
            const button = document.getElementById(id);
            if (button) {
                button.addEventListener("click", (event) => {
                    // Nur linker Mausklick.
                    if (event.button !== 0) return;
                    // Das richtige Browserfenster ermitteln.
                    const win = event.target.documentGlobal || event.target.ownerGlobal;
                    // Keine parallelen Läufe.
                    if (busy) return;
                    busy = true;
                    // Verhalten wie beim Start: Tab öffnen und dann prüfen.
                    if (!openAddonsTab(win)) { 
                        busy = false;
                        return;
                    }
                    waitForAboutAddons(win, false);
                });
            } else {
            // Wenn der Button noch nicht existiert, erneut probieren.
            setTimeout(click_button, 100);
            }
        })();
    
    })();
    Alles anzeigen
  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 18. Juni 2026 um 15:04
    Zitat von FuchsFan

    Ihr könnt ja mal dieses Script testen, es prüft gleich nach dem Start, ob Updates vorhanden sind, gibt es sie, so wird in einem neuen Tab der Addonmanager geöffnet. Gibt es keine Updates, dann passiert weiter nichts.

    Funktioniert so weit! Habe auch die Zeitschleife etwas kürzer gemacht!

    Updates werden aber nur für aktive Addons angezeigt.

Unterstütze uns!

Jährlich (2026)

69,4 %

69,4% (538,17 von 775 EUR)

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