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

  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 18:06

    BarbaraZ- Das wird so in der Zukunft nicht mehr funktionieren!

    Nutze doch bitte das hier korrigierte Script, bzw. merke es Dir vor,
    wenn Du es nicht jetzt schon nutzen willst.

    JavaScript
    // Angepasst durch aborix
    // ab Fx 133 wird in den Zeilen 57 und 58 pinnedTabCount statt _numPinnedTabs verwendet
    // Angepasst durch Sören für Fx 159
    // https://www.camp-firefox.de/forum/thema/140987/?postID=1295025#post1295025
    // Bugfix durch BrokenHeart für Fx 159
    // https://www.camp-firefox.de/forum/thema/140987/?postID=1295793#post1295793
    
    (function() {
    
      if (!window.gBrowser)
        return;
    
      const lazy = {};
      ChromeUtils.defineESModuleGetters(lazy, {
        BrowserGlue: "moz-src:///browser/components/BrowserGlue.sys.mjs"
      });
    
      lazy.BrowserGlue.prototype._onQuitRequest =
      function BG__onQuitRequest(aCancelQuit, aQuitType) {
    
        // If user has already dismissed quit request, then do nothing
        if (aCancelQuit instanceof Ci.nsISupportsPRBool && aCancelQuit.data) {
          return;
        }
    
        // There are several cases where we won't show a dialog here:
        // 1. There is only 1 tab open in 1 window
        // 2. browser.warnOnQuit == false
        // 3. The browser is currently in Private Browsing mode
        // 4. The browser will be restarted.
        // 5. The user has automatic session restore enabled and
        //    browser.sessionstore.warnOnQuit is not set to true.
        // 6. The user doesn't have automatic session restore enabled
        //    and browser.tabs.warnOnClose is not set to true.
        //
        // Otherwise, we will show the "closing multiple tabs" dialog.
        //
        // aQuitType == "lastwindow" is overloaded. "lastwindow" is used to indicate
        // "the last window is closing but we're not quitting (a non-browser window is open)"
        // and also "we're quitting by closing the last window".
    
        if (aQuitType == "restart" || aQuitType == "os-restart") {
          return;
        }
    
        // browser.warnOnQuit is a hidden global boolean to override all quit prompts.
        if (!Services.prefs.getBoolPref("browser.warnOnQuit")) {
          return;
        }
    
        var windowcount = 0;
        var pagecount = 0;
        let pinnedcount = 0;
        for (let win of BrowserWindowTracker.orderedWindows) {
          if (win.closed) {
            continue;
          }
          windowcount++;
          let tabbrowser = win.gBrowser;
          if (tabbrowser) {
            pinnedcount += tabbrowser.pinnedTabCount; // bis Fx 132 wurde statt pinnedTabCount _numPinnedTabs verwendet
            pagecount += tabbrowser.visibleTabs.length - tabbrowser.pinnedTabCount; // bis Fx 132 wurde statt pinnedTabCount _numPinnedTabs verwendet
          }
        }
    
        // No windows open so no need for a warning.
        if (!windowcount) {
          return;
        }
    
        // browser.warnOnQuitShortcut is checked when quitting using the shortcut key.
        // The warning will appear even when only one window/tab is open. For other
        // methods of quitting, the warning only appears when there is more than one
        // window or tab open.
        let shouldWarnForShortcut =
          this._quitSource == "shortcut" &&
          Services.prefs.getBoolPref("browser.warnOnQuitShortcut");
        let shouldWarnForTabs =
          //pagecount >= 2 &&
          Services.prefs.getBoolPref("browser.tabs.warnOnClose");
        if (!shouldWarnForTabs && !shouldWarnForShortcut) {
          return;
        }
    
        if (!aQuitType) {
          aQuitType = "quit";
        }
    
        let win = BrowserWindowTracker.getTopWindow();
    
        // Our prompt for quitting is most important, so replace others.
        win.gDialogBox.replaceDialogIfOpen();
    
        let titleId = {
        id: "tabbrowser-confirm-close-tabs-title",
        args: { tabCount: pagecount },
       };
       let quitButtonLabelId = "tabbrowser-confirm-close-tabs-button";
       let closeTabButtonLabelId = "tabbrowser-confirm-close-tab-only-button";
       
       let showCloseCurrentTabOption = false;
        if (windowcount > 1) {
          // More than 1 window. Compose our own message based on whether
         // the shortcut warning is on or not.
         if (shouldWarnForShortcut) {
           showCloseCurrentTabOption = true;
           titleId = "tabbrowser-confirm-close-warn-shortcut-title";
           quitButtonLabelId =
            "tabbrowser-confirm-close-windows-warn-shortcut-button";
         } else {
           titleId = {
             id: "tabbrowser-confirm-close-windows-title",
             args: { windowCount: windowcount },
           };
           quitButtonLabelId = "tabbrowser-confirm-close-windows-button";
         }
    	        
        } else if (shouldWarnForShortcut) {
           if (win.gBrowser.visibleTabs.length > 1) {
           showCloseCurrentTabOption = true;
           titleId = "tabbrowser-confirm-close-warn-shortcut-title";
           quitButtonLabelId = "tabbrowser-confirm-close-tabs-with-key-button";
         } else {
           titleId = "tabbrowser-confirm-close-tabs-with-key-title";
           quitButtonLabelId = "tabbrowser-confirm-close-tabs-with-key-button";
         }
        }
    
        // The checkbox label is different depending on whether the shortcut
        // was used to quit or not.
        let checkboxLabelId;
        if (shouldWarnForShortcut) {
          const quitKeyElement = win.document.getElementById("key_quitApplication");
          const quitKey = ShortcutUtils.prettifyShortcut(quitKeyElement);
          checkboxLabelId = {
             id: "tabbrowser-ask-close-tabs-with-key-checkbox",
            args: { quitKey },
          };
        } else {
          checkboxLabelId = "tabbrowser-ask-close-tabs-checkbox";
        }
    
    const [title, quitButtonLabel, checkboxLabel] =
          win.gBrowser.tabLocalization.formatMessagesSync([
          titleId,      
    	  quitButtonLabelId,
          checkboxLabelId,
        ]);
    
     // Only format the "close current tab" message if needed
       let closeTabButtonLabel;
       if (showCloseCurrentTabOption) {
         [closeTabButtonLabel] = win.gBrowser.tabLocalization.formatMessagesSync([
           closeTabButtonLabelId,
         ]);
       }
    
        let warnOnClose = { value: true };
        let flags;
       if (showCloseCurrentTabOption) {
         // Adds buttons for quit (BUTTON_POS_0), cancel (BUTTON_POS_1), and close current tab (BUTTON_POS_2).
         // Also sets a flag to reorder dialog buttons so that cancel is reordered on Unix platforms.
         flags =
           (Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
             Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1 +
             Services.prompt.BUTTON_TITLE_IS_STRING *
               Services.prompt.BUTTON_POS_2) |
           Services.prompt.BUTTON_POS_1_IS_SECONDARY;
           Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1;
       } else {
    	   // Adds quit and cancel buttons
         flags =
           Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
           Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1;
       }
    
        // 1 Fenster mit höchstens 1 nicht angehefteter Tab
        if (windowcount == 1 && pagecount < 2 && this._quitSource != "shortcut") {
       title.value = "Fenster schließen?";
       quitButtonLabel.value = "Schließen";
      checkboxLabel.value = null;
       }
    
       
        let buttonPressed = Services.prompt.confirmEx(
          win,
          title.value,
          null,
          flags,
          quitButtonLabel.value,
          null,
          showCloseCurrentTabOption ? closeTabButtonLabel.value : null,
          checkboxLabel.value,
          warnOnClose
        );
    		
        // If the user has unticked the box, and has confirmed closing, stop showing
        // the warning.
        if (buttonPressed == 0 && !warnOnClose.value) {
          if (shouldWarnForShortcut) {
            Services.prefs.setBoolPref("browser.warnOnQuitShortcut", false);
          } else {
            Services.prefs.setBoolPref("browser.tabs.warnOnClose", false);
          }
        }
       // Close the current tab if user selected BUTTON_POS_2
       if (buttonPressed === 2) {
         win.gBrowser.removeTab(win.gBrowser.selectedTab);
       }
       
        this._quitSource = "unknown";
    
        aCancelQuit.data = buttonPressed != 0;
      }
    
    })();
    Alles anzeigen
  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 17:38

    Habe jetzt a. das Problem mit dem Loop behoben.
    b. auch das GeminiSkript zur gewünschten Funktionsweise gebracht!

    Als Backup? Soll ich es hier reinstellen?

  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 17:14
    Zitat von Sören Hentzschel

    Um eine Warnung bei nur einem geöffneten Tab zu erhalten.

    Ah, ok, Danke.
    Jetzt muss ich mich aber erst einmal um den Loop kümmern!

  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 17:11
    Zitat von 2002Andreas

    Hast du hier den Haken drin?

    Äh, ja habe ich jetzt gemacht und das Skript mal deaktiviert!
    Wo zu braucht man dann noch das Skript?

  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 17:05

    Die scheinen gerade mächtig an der Nighty am Arbeiten zu sein!
    Ja, das GeminiScript funktioniert nur noch mit der Änderung von Andreas!
    Aber auch mit der Nightly habe ich gerade so meine Probleme!
    Es gibt zwar ein Update, das wohl auch installiert wird,
    aber nach jedem Neustart eben wieder!
    Das nimmt gerade kein Ende! So kann ich das nicht testen!

  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 16:59

    Auch mit dieser Änderung funktioniert das Skript aus #11 bei mir nicht!

    Mehrere Tabs geöffnet und per Beenden schließen!
    Kein Allert!

    Muss ich da noch etwas in den Einstellungen ändern oder an irgendeiner anderen Stelle?

  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 15:59

    Ok, ich habe mit Gemini weiter gemacht!
    Dabei ist ein komplett neues Skript dabei herausgekommen!
    Finde ich ehrlich gesagt nicht so prickelnd, aber es scheint zu funktionieren!

    JavaScript
    // ==UserScript==
    // @name         Firefox Beenden-Warnung (Vollversion Garantiert)
    // ==/UserScript==
    
    (function() {
    
      if (location.href !== "chrome://browser/content/browser.xhtml")
        return;
    
      if (window.alreadyLoadedQuitWarning)
        return;
      window.alreadyLoadedQuitWarning = true;
    
      try {
        let quitObserver = {
          observe: function(aSubject, aTopic, aData) {
            if (aTopic !== "quit-application-requested")
              return;
    
            // Falls das Beenden bereits storniert wurde
            if (aSubject instanceof Ci.nsISupportsPRBool && aSubject.data)
              return;
    
            // Neustarts (Updates/Add-ons) ignorieren
            if (aData === "restart" || aData === "os-restart")
              return;
    
            // 1. Offene Fenster und Tabs ermitteln
            let windowcount = 0;
            let pagecount = 0;
    
            for (let win of BrowserWindowTracker.orderedWindows) {
              if (win.closed) continue;
              windowcount++;
              let tabbrowser = win.gBrowser;
              if (tabbrowser) {
                let pinned = tabbrowser.pinnedTabCount || 0;
                pagecount += tabbrowser.visibleTabs.length - pinned;
              }
            }
    
            if (!windowcount) return;
    
            let isShortcut = (aData === "shortcut");
    
            // 1 Fenster mit nur 1 normalen Tab (ohne Shortcut-Beenden) -> keine Warnung
            if (windowcount === 1 && pagecount <= 1 && !isShortcut) return;
    
            let win = BrowserWindowTracker.getTopWindow() || window;
    
            if (win.gDialogBox) {
              win.gDialogBox.replaceDialogIfOpen();
            }
    
            // 2. Texte & Buttons aufbauen
            let titleText = "Firefox beenden?";
            let msgText = "";
            let quitBtnLabel = "Beenden";
            let showCloseCurrentTabOption = false;
    
            if (windowcount > 1) {
              showCloseCurrentTabOption = true;
              titleText = `${windowcount} Fenster schließen?`;
              quitBtnLabel = "Alle Fenster schließen";
              msgText = `Es sind insgesamt ${pagecount} Tabs in ${windowcount} Fenstern geöffnet.`;
            } else if (isShortcut) {
              if (win.gBrowser && win.gBrowser.visibleTabs.length > 1) {
                showCloseCurrentTabOption = true;
              }
              titleText = "Firefox per Tastenkürzel beenden?";
              quitBtnLabel = "Firefox beenden";
              msgText = `Möchtest du Firefox und alle ${pagecount} geöffneten Tabs wirklich schließen?`;
            } else {
              titleText = `${pagecount} Tabs schließen?`;
              msgText = `Möchtest du Firefox beenden und alle ${pagecount} geöffneten Tabs schließen?`;
              quitBtnLabel = "Tabs schließen";
            }
    
            // Key-Namen dynamisch abfragen (falls vorhanden)
            let checkboxLabelText = "Vor dem Schließen mehrerer Tabs warnen";
            if (isShortcut) {
              try {
                const quitKeyElement = win.document.getElementById("key_quitApplication");
                const quitKey = win.ShortcutUtils ? win.ShortcutUtils.prettifyShortcut(quitKeyElement) : "";
                if (quitKey) {
                  checkboxLabelText = `Vor dem Beenden mit ${quitKey} warnen`;
                }
              } catch (e) {
                // Ignorieren falls ShortcutUtils fehlt
              }
            }
    
            let warnOnClose = { value: true };
            let flags;
    
            if (showCloseCurrentTabOption) {
              // 3 Buttons: Pos 0 = Beenden, Pos 1 = Abbrechen, Pos 2 = Nur aktuellen Tab schließen
              flags =
                (Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
                  Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1 +
                  Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_2) |
                Services.prompt.BUTTON_POS_1_IS_SECONDARY;
            } else {
              // 2 Buttons: Pos 0 = Beenden, Pos 1 = Abbrechen
              flags =
                Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
                Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1;
            }
    
            // 3. Dialog anzeigen
            let buttonPressed = Services.prompt.confirmEx(
              win,
              titleText,
              msgText,
              flags,
              quitBtnLabel,
              null,
              showCloseCurrentTabOption ? "Nur aktuellen Tab schließen" : null,
              checkboxLabelText,
              warnOnClose
            );
    
            // 4. Option "Nur aktuellen Tab schließen" (Button POS 2)
            if (buttonPressed === 2 && win.gBrowser) {
              win.gBrowser.removeTab(win.gBrowser.selectedTab);
            }
    
            // 5. Bei "Abbrechen" (Button POS 1) oder "Nur aktuellen Tab schließen" das Beenden verhindern
            if (buttonPressed !== 0) {
              if (aSubject instanceof Ci.nsISupportsPRBool) {
                aSubject.data = true; // Storniert den Beendenvorgang
              }
            }
          }
        };
    
        Services.obs.addObserver(quitObserver, "quit-application-requested");
    
      } catch (e) {
        console.error("Fehler im Beenden-Warnung-Skript:", e);
      }
    
    })();
    Alles anzeigen
  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 15:22

    Habe mein Limit erreicht!
    Aber es scheint, als würde das Skript gar nicht geladen werden!

    Testet es mal!
    Ist nur ein Zeile Code hinzugefügt worden.
    Kommt beim Starten der Nightly eine Warnung?
    Wenn nein, wird das Skript warum auch immer gar nicht geladen!

    JavaScript
    // Angepasst durch aborix
    // ab Fx 133 wird in den Zeilen 57 und 58 pinnedTabCount statt _numPinnedTabs verwendet
    // Angepasst durch Sören für Fx 159
    //https://www.camp-firefox.de/forum/thema/140987-firefox-beenden-warnung-uc-js-funktioniert-in-fx-159-nicht-mehr/?postID=1295025#post1295025
    
    
    (function() {
    
      if (window.__SSi != 'window0')
        return;
    
      alert("Skript startet!");   // DEBUG
    
      const lazy = {};
      ChromeUtils.defineESModuleGetters(lazy, {
        BrowserGlue: "moz-src:///browser/components/BrowserGlue.sys.mjs"
      });
    
      lazy.BrowserGlue.prototype._onQuitRequest =
      function BG__onQuitRequest(aCancelQuit, aQuitType) {
    
        // If user has already dismissed quit request, then do nothing
        if (aCancelQuit instanceof Ci.nsISupportsPRBool && aCancelQuit.data) {
          return;
        }
    
        // There are several cases where we won't show a dialog here:
        // 1. There is only 1 tab open in 1 window
        // 2. browser.warnOnQuit == false
        // 3. The browser is currently in Private Browsing mode
        // 4. The browser will be restarted.
        // 5. The user has automatic session restore enabled and
        //    browser.sessionstore.warnOnQuit is not set to true.
        // 6. The user doesn't have automatic session restore enabled
        //    and browser.tabs.warnOnClose is not set to true.
        //
        // Otherwise, we will show the "closing multiple tabs" dialog.
        //
        // aQuitType == "lastwindow" is overloaded. "lastwindow" is used to indicate
        // "the last window is closing but we're not quitting (a non-browser window is open)"
        // and also "we're quitting by closing the last window".
    
        if (aQuitType == "restart" || aQuitType == "os-restart") {
          return;
        }
    
        // browser.warnOnQuit is a hidden global boolean to override all quit prompts.
        if (!Services.prefs.getBoolPref("browser.warnOnQuit")) {
          return;
        }
    
        var windowcount = 0;
        var pagecount = 0;
        let pinnedcount = 0;
        for (let win of BrowserWindowTracker.orderedWindows) {
          if (win.closed) {
            continue;
          }
          windowcount++;
          let tabbrowser = win.gBrowser;
          if (tabbrowser) {
            pinnedcount += tabbrowser.pinnedTabCount; // bis Fx 132 wurde statt pinnedTabCount _numPinnedTabs verwendet
            pagecount += tabbrowser.visibleTabs.length - tabbrowser.pinnedTabCount; // bis Fx 132 wurde statt pinnedTabCount _numPinnedTabs verwendet
          }
        }
    
        // No windows open so no need for a warning.
        if (!windowcount) {
          return;
        }
    
        // browser.warnOnQuitShortcut is checked when quitting using the shortcut key.
        // The warning will appear even when only one window/tab is open. For other
        // methods of quitting, the warning only appears when there is more than one
        // window or tab open.
        let shouldWarnForShortcut =
          this._quitSource == "shortcut" &&
          Services.prefs.getBoolPref("browser.warnOnQuitShortcut");
        let shouldWarnForTabs =
          //pagecount >= 2 &&
          Services.prefs.getBoolPref("browser.tabs.warnOnClose");
        if (!shouldWarnForTabs && !shouldWarnForShortcut) {
          return;
        }
    
        if (!aQuitType) {
          aQuitType = "quit";
        }
    
        let win = BrowserWindowTracker.getTopWindow();
    
        // Our prompt for quitting is most important, so replace others.
        win.gDialogBox.replaceDialogIfOpen();
    
        let titleId = {
        id: "tabbrowser-confirm-close-tabs-title",
        args: { tabCount: pagecount },
       };
       let quitButtonLabelId = "tabbrowser-confirm-close-tabs-button";
       let closeTabButtonLabelId = "tabbrowser-confirm-close-tab-only-button";
       
       let showCloseCurrentTabOption = false;
        if (windowcount > 1) {
          // More than 1 window. Compose our own message based on whether
         // the shortcut warning is on or not.
         if (shouldWarnForShortcut) {
           showCloseCurrentTabOption = true;
           titleId = "tabbrowser-confirm-close-warn-shortcut-title";
           quitButtonLabelId =
            "tabbrowser-confirm-close-windows-warn-shortcut-button";
         } else {
           titleId = {
             id: "tabbrowser-confirm-close-windows-title",
             args: { windowCount: windowcount },
           };
           quitButtonLabelId = "tabbrowser-confirm-close-windows-button";
         }
    	        
        } else if (shouldWarnForShortcut) {
           if (win.gBrowser.visibleTabs.length > 1) {
           showCloseCurrentTabOption = true;
           titleId = "tabbrowser-confirm-close-warn-shortcut-title";
           quitButtonLabelId = "tabbrowser-confirm-close-tabs-with-key-button";
         } else {
           titleId = "tabbrowser-confirm-close-tabs-with-key-title";
           quitButtonLabelId = "tabbrowser-confirm-close-tabs-with-key-button";
         }
        }
    
        // The checkbox label is different depending on whether the shortcut
        // was used to quit or not.
        let checkboxLabelId;
        if (shouldWarnForShortcut) {
          const quitKeyElement = win.document.getElementById("key_quitApplication");
          const quitKey = ShortcutUtils.prettifyShortcut(quitKeyElement);
          checkboxLabelId = {
             id: "tabbrowser-ask-close-tabs-with-key-checkbox",
            args: { quitKey },
          };
        } else {
          checkboxLabelId = "tabbrowser-ask-close-tabs-checkbox";
        }
    
    const [title, quitButtonLabel, checkboxLabel] =
          win.gBrowser.tabLocalization.formatMessagesSync([
          titleId,      
    	  quitButtonLabelId,
          checkboxLabelId,
        ]);
    
     // Only format the "close current tab" message if needed
       let closeTabButtonLabel;
       if (showCloseCurrentTabOption) {
         [closeTabButtonLabel] = win.gBrowser.tabLocalization.formatMessagesSync([
           closeTabButtonLabelId,
         ]);
       }
    
        let warnOnClose = { value: true };
        let flags;
       if (showCloseCurrentTabOption) {
         // Adds buttons for quit (BUTTON_POS_0), cancel (BUTTON_POS_1), and close current tab (BUTTON_POS_2).
         // Also sets a flag to reorder dialog buttons so that cancel is reordered on Unix platforms.
         flags =
           (Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
             Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1 +
             Services.prompt.BUTTON_TITLE_IS_STRING *
               Services.prompt.BUTTON_POS_2) |
           Services.prompt.BUTTON_POS_1_IS_SECONDARY;
           Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1;
       } else {
    	   // Adds quit and cancel buttons
         flags =
           Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
           Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1;
       }
    
        // 1 Fenster mit höchstens 1 nicht angehefteter Tab
        if (windowcount == 1 && pagecount < 2 && this._quitSource != "shortcut") {
       title.value = "Fenster schließen?";
       quitButtonLabel.value = "Schließen";
      checkboxLabel.value = null;
       }
    
       
        let buttonPressed = Services.prompt.confirmEx(
          win,
          title.value,
          null,
          flags,
          quitButtonLabel.value,
          null,
          showCloseCurrentTabOption ? closeTabButtonLabel.value : null,
          checkboxLabel.value,
          warnOnClose
        );
    		
        // If the user has unticked the box, and has confirmed closing, stop showing
        // the warning.
        if (buttonPressed == 0 && !warnOnClose.value) {
          if (shouldWarnForShortcut) {
            Services.prefs.setBoolPref("browser.warnOnQuitShortcut", false);
          } else {
            Services.prefs.setBoolPref("browser.tabs.warnOnClose", false);
          }
        }
       // Close the current tab if user selected BUTTON_POS_2
       if (buttonPressed === 2) {
         win.gBrowser.removeTab(win.gBrowser.selectedTab);
       }
       
        this._quitSource = "unknown";
    
        aCancelQuit.data = buttonPressed != 0;
      }
    
    })();
    Alles anzeigen
  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 14:50

    =O
    Oh Gott,
    ich bin gerade etwas verwirrt!
    Sorry.

  • Firefox beenden Warnung.uc.js funktioniert in Fx 159 nicht mehr

    • Mira_Belle
    • 7. Oktober 2026 um 14:29

    Bitte testen!

    Ersetze  'moz-src:///browser/components/BrowserGlue.sys.mjs'  durch  'moz-src:///browser/components/BrowserGlue.sys.mjs' 

  • Symbole in der URL Bar einfärben

    • Mira_Belle
    • 7. Oktober 2026 um 13:38
    Zitat von 2002Andreas

    Funktioniert so auch.

    Hatte ich dann auch festgestellt!
    Aber es sind dann beide "Sterne"!
    Der ausgefüllte und der unausgefüllte, wenn man das nicht separat haben möchte, weil weniger Code,
    ist Dein Code der geeignetere.

  • Symbole in der URL Bar einfärben

    • Mira_Belle
    • 7. Oktober 2026 um 13:26

    Aus meiner Poolsamlung noch ergänzt!

    CSS
      #trust-icon-container.secure  {
        fill: #00ff00 !important;
      }
      #trust-icon-container.inactive:not(.insecure) {
        fill: #ff0000 !important;
      }
    
      [data-l10n-id="urlbar-permissions-granted"] {
        fill: yellow !important;
      }
    
      [data-l10n-id="urlbar-autoplay-media-blocked"] {
        fill: green !important;
      }
    
       #permissions-granted-icon {
        fill: magenta !important;
      }
    Alles anzeigen

    2002Andreas Wozu ist [data-l10n-id="urlbar-star-add-bookmark"] da?
    Soll das für den Stern ganz am Ende der Adresszeile sein?

    Denn da hätte ich dies anzubieten!

    CSS
      #star-button:not([starred="true"]) {
        fill: lime !important;
      }
    
      #star-button[starred] {
        fill: orange !important;
      }
  • Youtube in der Suche deaktivieren

    • Mira_Belle
    • 6. Oktober 2026 um 15:48
    Zitat von 2002Andreas

    Öffne die Seite YouTube, oder auch: soeren-hentzschel.at Auf soeren-hentzschel.at gibt es die umfassendste Berichterstattung rund um Mozilla im deutschsprachigen Raum. http://www.soeren-hentzschel.at

    Dann wird das automatisch angezeigt.

    AH, danke!
    und mit :

    CSS
    .searchmode-switcher {
      &[addengines]::part(button)::after {
        display: none !important;
      }

    , ist's dann bei mir weg.

  • Youtube in der Suche deaktivieren

    • Mira_Belle
    • 6. Oktober 2026 um 14:49

    Ich muss da mal nachhaken! Sorry dafür. :saint:

    Sören Hentzschel & 2002Andreas

    Aber wo kommt das Plus-Symbol her?
    Also ich meine nicht den Separator oder so, sondern wie provoziere ich es, dass dies auch bei mir erscheint.
    Eine bestimmte Einstellung?

  • Addon für das Speichern von AI Chats

    • Mira_Belle
    • 6. Oktober 2026 um 10:06

    mr.b.
    Also wie ich schon schrieb, lässt sich Mistral so konfigurieren!
    Auch kann man ganze Chats, so ganz ohne Add-on, herunterladen und lokal speichern!
    Darauf hast Du mich erst gebracht!!
    Ich denke, dass das auch mit Gemini so oder so ähnlich funktioniert!
    Voraussetzung ist allerdings, man hat einen Account und ist angemeldet.
    Gemini werde ich, wie ich schon schrieb, noch ausprobieren!

  • Auf die Schnelle, Nova to Proton => Ein umfassendes CSS

    • Mira_Belle
    • 5. Oktober 2026 um 16:48

    Sooo:!:

    Habe da mal etwas vorbereitet.
    Es geht nur um die Radien:!::!:

    userChrome.css

    CSS
    /*
     * firefox-border-radius: Browser-Benutzeroberfläche (Registerkarten, Symbolleiste, URL-Leiste, Menüs, Bedienfelder)
     *
     * Der moderne Firefox leitet nahezu jede abgerundete Ecke von einer Handvoll Design-
     * Tokens ab, die unter :root definiert sind, und Shadow-DOM-Widgets erben diese. Das Überschreiben der
     * Tokens ist weitaus zuverlässiger als das Durchsuchen einzelner Selektoren, deren Namen Mozilla
     * häufig umbenennt (#urlbar-background, .panel-arrowcontent und
     * --arrowpanel-border-radius gibt es alle nicht mehr).
     *
     * --border-radius-circle wird absichtlich nicht verändert, damit Elemente, die
     * rund sein sollen (Avatare, Badges, Umschaltknöpfe), rund bleiben.
     */
    
    :root {
      --border-radius-xsmall: 8px !important; /* Hover in den Menüs */
      --border-radius-small: 8px !important;
      --border-radius-medium: 8px !important;
      --border-radius-large: 8px !important;
      --border-radius-xlarge: 8px !important;
    
      --button-border-radius: 8px !important;
      --toolbarbutton-border-radius: 8px !important; /* Buttons ("Hamburger") */
      --tab-border-radius: 2px !important;
      --urlbar-border-radius: 8px !important; /* Suchfeld */
      --panel-border-radius: 8px !important;
      --popup-border-radius: 8px !important;
      --panel-menuitem-border-radius: 8px !important; /* Hamburgermenü hover */
      --menuitem-border-radius: 8px !important; /* Menüleiste */
      --card-border-radius: 8px !important;
    }
    
    /* Das Dropdown-Menü der URL-Leiste legt den Radius für sein eigenes Host-Element neu fest. */
    :root,
    .urlbar,
    #urlbar,
    #searchbar {
      --urlbarview-border-radius: 8px !important;
    }
    
    /* Die Ecken des Seitenleisten-Panels verwenden eigene Variablen pro Ecke. */
    #sidebar-box {
      --sidebar-box-start-start-radius: 8px !important;
      --sidebar-box-start-end-radius: 8px !important;
    }
    
    /* Doppelte Absicherung für die Elemente, die dem Nutzer am meisten auffallen. */
    .tab-background {
      border-radius: 8px !important; /* unter anderem die Tabs */
    }
    Alles anzeigen

    Wo zu, bzw. was das beeinflusst habe ich noch nicht geschnallt!
    --tab-border-radius Wenn jemand das sieht, bitte ein Foto!
    Extra angemarkert und so, dass es auch ein Blindfisch sieht.

    userContent.cSS

    CSS
    /*
     * firefox-border-radius: interne Seiten (about:preferences, about:addons,
     * about:newtab, about:config, ...). Da es sich hierbei um Webinhalte handelt, 
     * wirkt sich userChrome.css nicht auf sie aus.
     */
    
    @-moz-document url-prefix("about:"), url-prefix("chrome:") {
      :root {
        --border-radius-xsmall: 8px !important;
        --border-radius-small: 8px !important;
        --border-radius-medium: 8px !important;
        --border-radius-large: 8px !important;
        --border-radius-xlarge: 8px !important;
    
        --button-border-radius: 8px !important;
        --panel-border-radius: 8px !important;
        --popup-border-radius: 8px !important;
        --card-border-radius: 8px !important;
      }
    
      /* Einstellungen / Add-ons-Seitenleiste; 
         die Navigations-Widgets definieren diese auf ihren eigenen Hosts neu. */
      :root,
      moz-page-nav,
      moz-page-nav-button {
        --page-nav-button-border-radius: 8px !important;
        --page-nav-button-border-radius-focused: 8px !important;
      }
    
      .card,
      .sidebar-item,
      .search-container,
      input[type="search"],
      .category {
        border-radius: 8px !important;
      }
    }
    Alles anzeigen

    Damit sollten die wesentlichen Radien abgedeckt sein.

  • Addon für das Speichern von AI Chats

    • Mira_Belle
    • 5. Oktober 2026 um 14:07

    Du, es ist doch absolut egal, wozu Du KI nutzt!

    Aber Du hast mich halt mit Deiner Frage nach einem Add-on neugierig gemacht und ich habe weiter nach geforscht.
    Also Mistral kann man so einrichten, dass es sich alle "Anfragen nicht nur merkt, sondern sich auch daran "erinnern" kann.
    Des Weiteren kann man dieser KI "beibringen", dass sie bestimmte Quellen benutzen soll!

    Ich möchte mich ganz Herzlich bei Dir für Deine Anfrage bedanken, denn mir wäre es wahrscheinlich erst
    in Tagen oder Wochen aufgefallen, dass Mistral sich nicht mehr an alle meine alten Chats "erinnern" kann.

    Ein Add-on, so wie Du es formuliert hast, gibt es z.Z. scheinbar nicht.
    Ob Gemini sich nicht doch irgendwie ähnlich wie Mistral konfigurieren lässt,
    muss ich noch herausfinden.
    Gebe Bescheid, wenn es geht.
    Wenn Du von mir hier nichts mehr "hörst", geht es wohl nicht.
    Gib mir aber ein paar Tage, schauen am Sonntag noch mal rein.

  • Auf die Schnelle, Nova to Proton => Ein umfassendes CSS

    • Mira_Belle
    • 5. Oktober 2026 um 13:14
    Zitat von grisu2099

    Warum ... - das hatte dir auch Sören schon geschrieben...

    Klasse.
    Stell Dir vor, ich kann nicht nur lesen, sondern verstehe und erfasse das gelesene auch!

    Und wie ich schon schrieb, bin ich (noch) am Testen, was genau da beeinflusst wird.
    Denn bisher konnte ich noch nirgends irgendwelche Darstellungsfehler entdecken,
    aber halt auch keine anderen Veränderungen!

    Aber Danke für Deinen Hinweis.

  • Addon für das Speichern von AI Chats

    • Mira_Belle
    • 5. Oktober 2026 um 12:46

    Du könntest recht haben!

    Habe bei mistral dies jetzt auch feststellen können.
    War mal anders!
    Das ist echt irgendwie doof.

    Bleibt also nur die Möglichkeit, die Chats lokal zu speichern.
    Dann kann man diese zwar durchsuchen, aber das ist/war aber auch schon alles.
    Schade.

  • Auf die Schnelle, Nova to Proton => Ein umfassendes CSS

    • Mira_Belle
    • 5. Oktober 2026 um 12:41

    sansnom & mkpcxxl Tut mir, und Euch, einen Gefallen und
    Komentiert erst einmal --border-radius-circle: 8px !important; /* Nova: undefined, Proton: 9999px */ aus:!:

    Ich konnte bisher noch nicht feststellen, ob das Nachteile und/oder Darstellungsfehler mit sich bringt.

Unterstütze uns!

Jährlich (2026)

76,1 %

76,1% (589,79 von 775 EUR)

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