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

  • Mozilla veröffentlicht Firefox 138 mit neuer Profilverwaltung

    • Mira_Belle
    • 30. April 2025 um 22:23

    Horstmann Webmark mag keine Scherze, schon gar nicht, wenn es um ihn geht.
    Is so, deshalb habe ich meinen Scherz wieder gelöscht.

  • Skript "newTabButtonUndoTabList.uc.js" funktioniert nicht mehr im Nightly - (seit Nightly 139)

    • Mira_Belle
    • 30. April 2025 um 22:19
    Zitat von 2002Andreas

    Besser wäre natürlich immer, die Skripte anzupassen, da gebe ich dir recht.

    Nur darum geht es mir hauptsächlich!
    Das Problem das sich aus dem "Schalter" zusätzlich ergibt,
    es würden dann noch mehr Skripte hier im Board herumschwirren.
    Die einen, die NUR mit diesem "Schalter" funktionieren und die anderen,
    die auch ohne funktionieren.
    Muss man dann in Zukunft immer fragen, hast die den Wert
    security.allow_unsafe_dangerous_privileged_evil_eval auf true oder false stehen?

  • Skript "newTabButtonUndoTabList.uc.js" funktioniert nicht mehr im Nightly - (seit Nightly 139)

    • Mira_Belle
    • 30. April 2025 um 22:06
    Zitat von 2002Andreas

    Der neue Eintrag für die config wurde extra von Mozilla für Nutzer von Skripten ab Fx Version 139 erst erstellt. ;)

    Und ob das auch so bleibt?
    Es braucht diese "Lücke" dann ja nur von pösen Buben mal angegriffen und ausgenutzt zu werden.
    Oder sie kommen einfach doch auf die Idee, dass das zu unsicher ist.

  • Skript "newTabButtonUndoTabList.uc.js" funktioniert nicht mehr im Nightly - (seit Nightly 139)

    • Mira_Belle
    • 30. April 2025 um 22:00

    :D Da hat sich mein edit und Dein Post überschnitten.

  • Skript "newTabButtonUndoTabList.uc.js" funktioniert nicht mehr im Nightly - (seit Nightly 139)

    • Mira_Belle
    • 30. April 2025 um 21:47

    Kopfkratz.

    Neu


    JavaScript
    // newTabButtonUndoTabList.uc.js
    
    "use strict";
    /* ******************************************************************************************************** */
    /* Beschreibung                                                                                             */
    /* Bei Rechtsklick auf die Neuen Tab Schaltfläche, wird im Kontextmenü,                                     */
    /* der Eintrag zum Wiederherstellen des zuletzt geschlossenen Tabs angezeigt.                               */
    /* Customized by BrokenHeart                                                                                */
    /*                                                                                                          */
    /* https://www.camp-firefox.de/forum/thema/112673/?postID=1223733#post1223733                               */
    /* https://www.camp-firefox.de/forum/thema/112673/?postID=1228286#post1228286                               */
    /*                                                                                                          */
    /* ******************************************************************************************************** */
    
    (function () {
    
        if (!window.gBrowser){
            return;
        }
        
        gBrowser.tabContainer.addEventListener('click', function (e) {
            if (e.originalTarget.id != 'tabs-newtab-button') return;
            switch (e.button) {
                case 1:
                    undoCloseTab(0);
                    break;
                case 2:
                    UCT.makePopup(e);
                    e.preventDefault();
                    break;
            }
        }, false);
    
    })();
    
    var UCT = {
        init: function () {
            var mp = document.createXULElement("menupopup");
            mp.id = "undo-close-tab-list";
            mp.addEventListener('popupshowing', function(event) {
    			UCT.onpopupshowing(event);
    		}, true);		
            mp.setAttribute("placespopup", true);
            mp.setAttribute("tooltip", "bhTooltip");
            mp.setAttribute("popupsinherittooltip", true);
            document?.getElementById("mainPopupSet")?.appendChild(mp);
        },
    
        makePopup: function (e) {
            if (SessionStore.getClosedTabCountForWindow(window) != 0) {
                document.getElementById("undo-close-tab-list").openPopupAtScreen(e.screenX +2, e.screenY +2, false);
            }
            else
            {
                console.log("--- Es gibt keinen Tab, der wiederhergestellt werden kann ---");
            }
        },
    
        onpopupshowing: function (e) {
            var popup = e.target;
            var m;
            while (popup.hasChildNodes())
                popup.removeChild(popup.firstChild);
    
            let undoItems = SessionStore.getClosedTabDataForWindow(window);
            undoItems.map(function (item, id) {
              //  var m = document.createXULElement('menuitem');
                m = document.createXULElement("menuitem");
                m.setAttribute('label', item.title);
                m.setAttribute('image', item.image);
                m.setAttribute('class', 'menuitem-iconic bookmark-item');            
                m.addEventListener('command', () => {
                        undoCloseTab(id);
                    }
                );
                popup.appendChild(m);
            });
    
            popup.appendChild(document.createXULElement("menuseparator"));
            m = document.createXULElement("menuitem");
            m.setAttribute("label", "Chronik in der Sidebar öffnen");
            m.setAttribute("image", "chrome://browser/skin/history.svg");
            m.setAttribute("class", "menuitem-iconic");
    		m.addEventListener('command', function() {
    			SidebarController.toggle('viewHistorySidebar');
    		}, true);		
            popup.appendChild(m);
        },
    };
    
    setTimeout(function() {
          UCT.init();
      },250);
    Alles anzeigen

    Besser?

  • Skript "newTabButtonUndoTabList.uc.js" funktioniert nicht mehr im Nightly - (seit Nightly 139)

    • Mira_Belle
    • 30. April 2025 um 21:22

    Das mit dem Wert ist aber nicht auf Dauer!
    So wird Euch das Problem zu einem späteren Zeitpunkt wieder einholen.
    Besser ist es, das Skript anzupassen!


    Zitat von BrokenHeart

    Allerdings ist in allen bisher geposteten Skripten noch ein Fehler drin: die Variable m, wurde innerhalb einer Funktion deklariert und damit auch nur da sichtbar (beim Skript von Mira_Belle in Zeile 66). Die Variable muss also außerhalb dieser Funktion deklariert werden, damit man später noch einmal auf der gleichen oder niedrigeren (Klammer-)Ebene darauf zugreifen kann.

    Das muss so! Kein Fehler.

  • Skript "newTabButtonUndoTabList.uc.js" funktioniert nicht mehr im Nightly - (seit Nightly 139)

    • Mira_Belle
    • 30. April 2025 um 21:12
    Zitat von milupo
    Zitat von Mira_Belle

    Bitte testen.

    Das Skript wurde jetzt zum dritten Mal angegeben. Das Skript ist nicht das Problem. grisu2099 hat die gleiche Skript-Version und die funktioniert bei mir auch. Also kann es nicht am Skript selbst liegen.

    Nein! Wurde es nicht. Euer Skript ist sehr wohl das Problem.
    Ab Zeile 70.
    Dieses funktioniert in der Nightly.

  • Skript "newTabButtonUndoTabList.uc.js" funktioniert nicht mehr im Nightly - (seit Nightly 139)

    • Mira_Belle
    • 30. April 2025 um 20:36

    Bitte testen.

    JavaScript
    // newTabButtonUndoTabList.uc.js
    
    "use strict";
    /* ******************************************************************************************************** */
    /* Beschreibung                                                                                             */
    /* Bei Rechtsklick auf die Neuen Tab Schaltfläche, wird im Kontextmenü,                                     */
    /* der Eintrag zum Wiederherstellen des zuletzt geschlossenen Tabs angezeigt.                               */
    /* Customized by BrokenHeart                                                                                */
    /*                                                                                                          */
    /* https://www.camp-firefox.de/forum/thema/112673/?postID=1223733#post1223733                               */
    /* https://www.camp-firefox.de/forum/thema/112673/?postID=1228286#post1228286                               */
    /*                                                                                                          */
    /* ******************************************************************************************************** */
    
    (function () {
    
        if (!window.gBrowser){
            return;
        }
        
        gBrowser.tabContainer.addEventListener('click', function (e) {
            if (e.originalTarget.id != 'tabs-newtab-button') return;
            switch (e.button) {
                case 1:
                    undoCloseTab(0);
                    break;
                case 2:
                    UCT.makePopup(e);
                    e.preventDefault();
                    break;
            }
        }, false);
    
    })();
    
    var UCT = {
        init: function () {
            var mp = document.createXULElement("menupopup");
            mp.id = "undo-close-tab-list";
            mp.addEventListener('popupshowing', function(event) {
    			UCT.onpopupshowing(event);
    		}, true);		
            mp.setAttribute("placespopup", true);
            mp.setAttribute("tooltip", "bhTooltip");
            mp.setAttribute("popupsinherittooltip", true);
            document?.getElementById("mainPopupSet")?.appendChild(mp);
        },
    
        makePopup: function (e) {
            if (SessionStore.getClosedTabCountForWindow(window) != 0) {
                document.getElementById("undo-close-tab-list").openPopupAtScreen(e.screenX +2, e.screenY +2, false);
            }
            else
            {
                console.log("--- Es gibt keinen Tab, der wiederhergestellt werden kann ---");
            }
        },
    
        onpopupshowing: function (e) {
            var popup = e.target;
            while (popup.hasChildNodes())
                popup.removeChild(popup.firstChild);
    
            let undoItems = SessionStore.getClosedTabDataForWindow(window);
            undoItems.map(function (item, id) {
                var m = document.createXULElement('menuitem');
                m.setAttribute('label', item.title);
                m.setAttribute('image', item.image);
                m.setAttribute('class', 'menuitem-iconic bookmark-item');            
                m.addEventListener('command', () => {
                        undoCloseTab(id);
                    }
                );
                popup.appendChild(m);
            });
    
            popup.appendChild(document.createXULElement("menuseparator"));
            m = document.createXULElement("menuitem");
            m.setAttribute("label", "Chronik in der Sidebar öffnen");
            m.setAttribute("image", "chrome://browser/skin/history.svg");
            m.setAttribute("class", "menuitem-iconic");
    		m.addEventListener('command', function() {
    			SidebarController.toggle('viewHistorySidebar');
    		}, true);		
            popup.appendChild(m);
        },
    };
    
    setTimeout(function() {
          UCT.init();
      },250);
    Alles anzeigen
  • Mozilla veröffentlicht Firefox 138 mit neuer Profilverwaltung

    • Mira_Belle
    • 30. April 2025 um 13:20

    Danke.
    Dachte, ich hätte schon wieder mal was verstellt!
    Dann warte ich einfach ab, so dringend brauche ich das nicht!
    In der Nightly ist es ja "aktiviert" und genutzt habe ich es bisher noch nicht.

  • Mozilla veröffentlicht Firefox 138 mit neuer Profilverwaltung

    • Mira_Belle
    • 30. April 2025 um 12:56

    Frage zur neuen Profilverwaltung!
    Habe ich nicht, kann es sein, dass ich das in der about:config "ausgeschaltet" habe?
    Blöd wie ich bin, habe ich, wenn ich es gemacht habe, sofern möglich, natürlich nicht dokumentiert.

    Ach ja, about:newprofile geht bei mir nicht.

  • Skripte funktionieren nicht mehr

    • Mira_Belle
    • 30. April 2025 um 11:53
    Zitat von .DeJaVu

    Nur erklärt das nicht deklarierte Problem mit dem Profil.

    Ist mir ehrlich gesagt egal. Hatte ja eines dann über den Profilmanager neu erstellt.
    Merkwürdig ist es schon, aber was soll's, ich kann ihn wieder starten und meine Skripts testen.

    Das ist mir das wichtigste!

  • Skripte funktionieren nicht mehr

    • Mira_Belle
    • 30. April 2025 um 10:35

    Guten Morgen.

    So eben die Nightly gestartet, keine Skripte, ein Update wurde angeboten, durchgeführt
    und siehe da, Skripte funktionieren wieder.

  • Skripte funktionieren nicht mehr

    • Mira_Belle
    • 30. April 2025 um 00:47

    Warum?
    Ich verstehe nicht, was das bezwecken soll.
    Dann kann ich auch nicht mehr meinen Firefox starten!
    Aber ich schrieb ja, dass ich einen Profilordner im Profilmanager des Nightly angelegt habe.
    Er startet jetzt auch, nur lädt kein einziges JavaScript.

  • Skripte funktionieren nicht mehr

    • Mira_Belle
    • 30. April 2025 um 00:07
    Zitat von milupo

    Kann gar nicht sein, ohne Profil startet Firefox gar nicht. Bei einer Neuinstallaation würde wahrscheinlich sogar ein neues angelegt werden. Sei einigen Jahren ist default-release Standard. Bei einer Neuinstallation wäre das dann default-release-1, default-release-2, default-release-3 usw.

    Äh, doch!
    Es wurde kein Profil angelegt!
    Und klar, die Nightly startete dann auch nicht.
    Habe dann im Profilmanager eines anlegen lassen.
    So weit, so gut.
    Per Hand, bzw. zu Fuß die Anpassungen zum Nutzen von JavaScript vorgenommen.

    Danach die wichtigsten Dateien aus dem Backup wieder hergestellt.
    css, js.

    Dann die Nightly gestartet und .... festgestellt, dass auch mit der neuen Installation die Skripte alle nicht ausgeführt werden.
    Jetzt warte ich einfach mal das nächste Update ab.

  • Skripte funktionieren nicht mehr

    • Mira_Belle
    • 29. April 2025 um 23:30
    Zitat von .DeJaVu

    Muss/sollte der Script-Cache geleert werden?

    Nicht mehr möglich.
    Habe geputzt.

    Danach Rechner gebootet und die Nightly neu installiert:
    Problem, es wird kein Profil angelegt!

  • Script ucjsDownloadsManager.uc.js, kleines Problem seit FF138

    • Mira_Belle
    • 29. April 2025 um 23:20

    Nimm doch einfach die neuere Version.

    JavaScript
    // ==UserScript==
    // @name           ucjsDownloadsManager.uc.js
    // @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description    Donloads Manager
    // @include        main
    // @include        chrome://browser/content/downloads/contentAreaDownloadsView.xhtml
    // @compatibility  Firefox 135
    // @author         Alice0775
    // @version        2024/12/22 fix Bug 1936336 - Disallow inline event handlers
    // @version        2024/03/11 19:00 fix progressbar
    // @version        2023/11/17 00:00 Bug 1857999 - Stop using xml-stylesheet processing instructions for styling non-test xhtml documents
    // @version        2023/07/17 00:00 use ES module imports
    // @version        2023/06/20 remove Bug 1780695 - Remove Services.jsm
    // @version        2023/04/02 fix document.title
    // @version        2022/11/22 Bug 877389 - [meta] Replace calls to Cu.reportError, etc. from browser code, replace with console.error, etc.
    // @version        2022/11/08 11:00 Bug 1798212
    // @version        2022/05/04 11:00 missing scope of DownloadIntegration
    // @version        2022/04/01 23:00 Convert Components.utils.import to ChromeUtils.import
    // @version        2022/02/16 Bug 1747422 - Remove preprocessor variable use from downloads CSS
    // @version        2020/12/19 WIP:Workaround to avoid closing the manager if download.error/download.canceled.
    // @version        2020/12/18 fix closeWhenDone if small size downloaded
    // @version        2020/09/24 fix emptylist layout
    // @version        2019/12/11 fix for 73 Bug 1601094 - Rename remaining .xul files to .xhtml in browser
    
    // @version        2019/10/20 12:30 workaround Bug 1497200: Apply Meta CSP to about:downloads, Bug 1513325 - Remove textbox binding
    // @version        2019/05/21 08:30 fix 69.0a1 Bug 1534407 - Enable browser.xhtml by default
    // @version        2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement
    // @version        2018/07/01 16:30 revert Disable btn
    // @version        2018/06/12 21:30 remove unused
    // @version        2018/06/12 21:00 fix for private window mode
    // @version        2018/06/07 12:00 fix file name for history
    // @version        2018/04/14 00:00 de XUL overlay
    // @version        2017/12/10 12:00 fix error when DO_NOT_DELETE_HISTORY = true
    // @version        2017/12/10 12:00 remove workaround Bug 1279329. Disable btn while clear list is doing
    // @version        2016/06/10 00:00 Workaround Bug 1279329
    // @version        2016/05/04 20:30 remove typo
    // @version        2016/05/04 20:00 remove in-content css, add preference for Taskbar Progress
    // @version        2016/05/03 01:00 Indicate Taskbar Progress
    // @version        2016/04/19 07:00 change title dexcription "/" instead of " of "
    // @version        2015/05/08 00:00 remove padding due to Bug 1160734
    // @version        2015/03/29 00:00 Check window.windowState instead of sizemode attribute
    // @version        2014/12/28 23:00 Skip save window size if closed immediately
    // @version        2014-12-23 23:00 number of files
    // @version        2014-10-23 22:00 number of files
    // @version        2014/10/18 20:00 fix posiotion
    // @version        2014/06/07 20:00 Woraround closes
    // @version        2014/06/03 12:00 
    // @version        2014/05/15 22:00 clean up
    // @version        2014/05/15 20:00 removed the following oraround
    // @version        2014/05/15 19:00 Woraround closes the manager 10 seconds after download completion
    // @version        2014/03/31 00:00 fix for browser.download.manager.showWhenStarting
    // @version        2014/03/01 12:00 Bug 978291
    // @version        2013/12/19 17:10 rename REMEMBERHISTOTY to DO_NOT_DELETE_HISTORY
    // @version        2013/12/19 17:00 fix do not close the Manager if there is main window
    // @version        2013/12/18 23:10 
    // @version        2013/12/16 23:10 open only download added
    // @version        2013/12/16 02:00 defineLazyModuleGetter for Firefox26
    // @version        2013/12/15 22:00 typo and correct version date
    // @version        2013/12/15 08:00 label placeholder size
    // @version        2013/12/14 20:10 Search
    // @version        2013/12/14 19:30 getBoolPref
    // @version        2013/12/14 18:30 typo and fix closeWhenDone
    // @version        2013/12/14 18:00 browser.download.manager.showWhenStarting , browser.download.manager.closeWhenDone
    // @version        2013/12/02 00:00 
    // @note           Require Sub-Script/Overlay Loader v3.0.40mod
    // ==/UserScript== 
    // preferences:
    // 自動で開く(デフォルト true):
    //   (bool) browser.download.manager.showWhenStarting
    // 自動で閉じる(デフォルト false):
    //   (bool) browser.download.manager.closeWhenDone
    // 上記falseの場合,自動で開いたときにのみ自動で閉じる(デフォルト false):
    //   (bool) browser.download.manager.closeWhenDoneIfAutoOpened
    // タスクバーにプロフレスメーターを表示(デフォルト true):
    //   (bool) browser.download.manager.showProgressInTaskButton
    
    if (location.href == "chrome://browser/content/browser.xhtml") {
    
      window.ucjs_downloadManager = {
        delay: 500, //自動で閉じる設定の場合、 自動表示しない閾値(ミリ秒)
    
        _summary: null,
        _list: null,
        kshowWhenStarting: "browser.download.manager.showWhenStarting",
        kcloseWhenDone:    "browser.download.manager.closeWhenDone",
        kcloseWhenDoneIfAutoOpened:
                           "browser.download.manager.closeWhenDoneIfAutoOpened",
    
        createElement: function(localName, arryAttribute) {
          let elm = document.createXULElement(localName);
          for(let i = 0; i < arryAttribute.length; i++) {
            elm.setAttribute(arryAttribute[i].attr, arryAttribute[i].value);
          }
          return elm;
        },
    
        init: function() {
          window.addEventListener("unload", this, false);
    
          let ref = document.getElementById("menu_openDownloads");
          let menu = ref.parentNode.insertBefore(
            this.createElement("menuitem",
              [{attr: "id", value:"menu_openDownloadManager"},
               {attr: "label", value:"Open Download Manager"},
               {attr: "accesskey", value:"D"},
               //{attr : "oncommand", value: "ucjs_downloadManager.openDownloadManager(true);"}
              ]), ref);
          document.getElementById("menu_openDownloadManager").addEventListener("command", () => ucjs_downloadManager.openDownloadManager(true));
    
          ChromeUtils.defineESModuleGetters(this, {
            Downloads: "resource://gre/modules/Downloads.sys.mjs",
          });
          // Ensure that the DownloadSummary object will be created asynchronously.
          if (!this._summary) {
            this.Downloads.getSummary(this.Downloads.ALL).then(summary => {
              this._summary = summary;
              return this._summary.addView(this);
            }).then(null, console.error);
          }
    
          if (!this._list) {
            this.Downloads.getList(this.Downloads.ALL).then(list => {
              this._list = list;
              return this._list.addView(this);
            }).then(null, console.error);
          }
        },
    
        uninit: function() {
          window.removeEventListener("unload", this, false);
    
          if (this._summary) {
            this._summary.removeView(this);
          }
          if (this._list) {
            this._list.removeView(this);
          }
        },
    
        handleEvent: function(event) {
          switch (event.type) {
            case "unload":
              this.uninit();
              break;
          }
        },
    
        getDMWindow: function() {
          var enumerator = Services.wm.getEnumerator(null);
          while(enumerator.hasMoreElements()) {
            var win = enumerator.getNext();
            if (win.location == "chrome://browser/content/downloads/contentAreaDownloadsView.xhtml"
              && PrivateBrowsingUtils.isWindowPrivate(window) ==
                 PrivateBrowsingUtils.isWindowPrivate(win)) {
              return win;
            }
          }
          return null;
        },
    
        openDownloadManager: function ucjs_openDownloadManager(aForceFocus) {
          var win = this.getDMWindow();
          if (win) {
            if (aForceFocus) {
              win.focus();
              win.autoOpened = false;
            }
            return false; //既存
          }
    
          try {
            var height = Math.max(100,Services.prefs.getIntPref("browser.download.manager.size.height"));
            var width  = Math.max(300,Services.prefs.getIntPref("browser.download.manager.size.width"));
            var screenX = Math.min(Math.max(0,Services.prefs.getIntPref("browser.download.manager.size.screenX")), screen.availWidth - width);
            var screenY = Math.min(Math.max(0,Services.prefs.getIntPref("browser.download.manager.size.screenY")), screen.availHeight - height);
          } catch(r){
            height = 300;
            width  = 600;
            screenX = 0;
            screenY = 0;
          }
          win = window.open("chrome://browser/content/downloads/contentAreaDownloadsView.xhtml",
                                "Download" +
                                (PrivateBrowsingUtils.isWindowPrivate(window) ? " - Private Window"
                                                                             : ""),
                                "outerWidth=" + width + ",outerHeight=" + height +
                                ",left=" + screenX + ",top=" + screenY +
                                ",chrome,toolbar=yes,dialog=no,resizable");
           this.success = true;
           if (aForceFocus)
             win.autoOpened = false;
           return win; //新規
        },
    
        success: true,
        onDownloadChanged: function (aDownload) {
          this.success = this.success && !(aDownload.canceled || aDownload.error);
        },
    
        closeTimer: null,
        onSummaryChanged: function (aDownload) {
          var showWhenStarting = Services.prefs.getBoolPref(this.kshowWhenStarting, true);
          if (!showWhenStarting) //自動オープンでないならDMを開かない
            return
    
          var win = this.getDMWindow();
          if (win) {  // すでに開らかれている
            return;
          }
    
          if (this.success && this._summary.allHaveStopped) //エラーもダウンロード中がないならDMを開かない
            return;
    
          var closeWhenDone = Services.prefs.getBoolPref(this.kcloseWhenDone, false);
          var closeWhenDoneIfAutoOpened
                            = Services.prefs.getBoolPref(this.kcloseWhenDoneIfAutoOpened, false);
          if (!this.success || !(closeWhenDone || closeWhenDoneIfAutoOpened)) { //エラーがあるまたは自動クローズでないならDMを開く
            var newWindow = this.openDownloadManager(false);
            if (newWindow) {
              newWindow.autoOpened = true;
            }
          }
          
          this.closeTimer = setTimeout(() => {
           if (this.success && this._summary.allHaveStopped) //エラーもダウンロード中もない
              return;
    
            newWindow = this.openDownloadManager(false); 
            if (newWindow) {
              newWindow.autoOpened = true;
            }
          }, this.delay);
    
        }
      };
      ucjs_downloadManager.init();
    }
    
    
    if (window.opener && location.href == "chrome://browser/content/downloads/contentAreaDownloadsView.xhtml") {
      
      ChromeUtils.importESModule(
        "resource://gre/modules/DownloadIntegration.sys.mjs"
       );
    
      window.ucjs_downloadManagerMain = {
        originalTitle:"",
        _hasDowbload: false,
        _summary: null,
        _list: null,
        _wait:false,
        kshowWhenStarting: "browser.download.manager.showWhenStarting",
        kcloseWhenDone:    "browser.download.manager.closeWhenDone",
        kcloseWhenDoneIfAutoOpened:
                           "browser.download.manager.closeWhenDoneIfAutoOpened",
    
        createElement: function(localName, arryAttribute) {
          let elm = document.createXULElement(localName);
          for(let i = 0; i < arryAttribute.length; i++) {
            elm.setAttribute(arryAttribute[i].attr, arryAttribute[i].value);
          }
          return elm;
        },
    
        createElementNS: function(NS, localName, arryAttribute) {
          let elm = document.createElementNS(NS, localName);
          for(let i = 0; i < arryAttribute.length; i++) {
            elm.setAttribute(arryAttribute[i].attr, arryAttribute[i].value);
          }
          return elm;
        },
    
        init: function() {
          window.addEventListener("unload", this, false);
    
          // xxx remove in-content css
          var element = document.querySelector("link[href='chrome://browser/skin/downloads/contentAreaDownloadsView.css']");
          if (element) {
            element.parentNode.removeChild(element);
          }
    /*      var elements = document.childNodes;
          for (var i = 0; i <= elements.length; i++) {
            var element = elements[i];
            if (element.nodeValue.indexOf("chrome://browser/skin/downloads/contentAreaDownloadsView.css") > -1) {
              document.removeChild(element);
              break;
            }
          }
    */
          /*
          var style = ' \
            @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); \
            #contentAreaDownloadsView { \
              padding: 0 ; \
            } \
            #downloadsListBox:empty + #downloadsListEmptyDescription { \
              pointer-events: none; \
            } \
           '.replace(/\s+/g, " ");
          var sspi = document.createProcessingInstruction(
            'xml-stylesheet',
            'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"'
          );
          document.insertBefore(sspi, document.documentElement);
          sspi.getAttribute = function(name) {
            return document.documentElement.getAttribute(name);
          };
          */
    
          document.getElementById("downloadsListEmptyDescription").setAttribute("flex", "1");
          let ref = document.documentElement;
          ref = ref.appendChild(this.createElement("hbox", []));
          ref.appendChild(this.createElement("button",
            [{attr: "id", value: "ucjs_clearListButton"},
             {attr: "label", value: "Clear List"},
             {attr: "accesskey", value: "C"}
            ]));
          ref.appendChild(this.createElement("spacer",
            [{attr: "flex", value: "1"}]));
          ref.appendChild(this.createElementNS("http://www.w3.org/1999/xhtml", "input",
            [{attr: "id", value: "ucjs_downloadManagerMain_input"},
             {attr: "clickSelectsAll", value: "true"},
             {attr: "type", value: "search"},
             {attr: "placeholder", value: "Search..."},
             {attr: "aria-autocomplete", value: "list"}
            ]));
    
            document.getElementById("ucjs_clearListButton").addEventListener("command", function(event) {
                ucjs_downloadManagerMain.clearDownloads();
              });
            document.getElementById("ucjs_downloadManagerMain_input")
                    .addEventListener("input", function(event) {
                ucjs_downloadManagerMain.doSearch(event.target.value);
              });
    
          this.originalTitle = document.title +
                               (PrivateBrowsingUtils.isWindowPrivate(window) ? " - Private Window"
                                                                             : "");
          document.title = this.originalTitle;
          
    /*
          // xxx Bug 1279329 "Copy Download Link" of context menu in Library is grayed out
          var listBox = document.getElementById("downloadsListBox");
          var placesView = listBox._placesView;
          var place = placesView.place;
          placesView.place= null;
          placesView.place = place;
    */
    
          setTimeout(function(){this._wait = true}.bind(this), 0);
    
          // Ensure that the DownloadSummary object will be created asynchronously.
          if (!this._summary) {
            Downloads.getSummary(Downloads.ALL).then(summary => {
              this._summary = summary;
              return this._summary.addView(this);
            }).then(null, console.error);
          }
    
          if (!this._list) {
            Downloads.getList(Downloads.ALL).then(list => {
              this._list = list;
              return this._list.addView(this);
            }).then(null, console.error);
          }
    
          const lazy = {};
          ChromeUtils.defineLazyGetter(lazy, "gWinTaskbar", function () {
            if (!("@mozilla.org/windows-taskbar;1" in Cc)) {
              return null;
            }
            let winTaskbar = Cc["@mozilla.org/windows-taskbar;1"].getService(
              Ci.nsIWinTaskbar
            );
            return winTaskbar.available && winTaskbar;
          });
    
          var showProgressInTaskButton = Services.prefs.getBoolPref("browser.download.manager.showProgressInTaskButton", true);
          if (showProgressInTaskButton) {
            setTimeout(function() {
              try {
                let { docShell } = window.browsingContext.topChromeWindow;
                this._taskbarProgress = lazy.gWinTaskbar.getTaskbarProgress(docShell);
              } catch(ex) {
                this._taskbarProgress = null;
              }
            }.bind(this), 10);
          }
        },
    
        uninit: function() {
          window.removeEventListener("unload", this, false);
    
          this._taskbarProgress = null;
          if (this._wait)
            this.saveSizePosition();
    
          if (this._summary) {
            this._summary.removeView(this);
          }
          if (this._list) {
            this._list.removeView(this);
          }
        },
    
        handleEvent: function(event) {
          switch (event.type) {
            case "unload":
              this.uninit();
              break;
          }
        },
    
        saveSizePosition: function() {
          if (window.windowState == 3) {
            Services.prefs.setIntPref("browser.download.manager.size.height", window.outerHeight);
            Services.prefs.setIntPref("browser.download.manager.size.width", window.outerWidth);
            Services.prefs.setIntPref("browser.download.manager.size.screenX", window.screenX);
            Services.prefs.setIntPref("browser.download.manager.size.screenY", window.screenY);
          }
        },
    
        success: true,
        onDownloadChanged: function (aDownload) {
          this.success = this.success && !(aDownload.canceled || aDownload.error);
        },
        onSummaryChanged: function () {
          if (!this._summary)
            return;
    
          if (!this._hasDowbload) {
            this._hasDowbload = true;
            return;
          }
          if (this._summary.allHaveStopped || this._summary.progressTotalBytes == 0) {
            document.title = this.originalTitle;
            if (this._taskbarProgress) {
              this._taskbarProgress.setProgressState(
                                         Ci.nsITaskbarProgress.STATE_NO_PROGRESS, 0, 0);
            }
    
    
            var closeWhenDone = Services.prefs.getBoolPref(this.kcloseWhenDone, false);
            var closeWhenDoneIfAutoOpened = Services.prefs.getBoolPref(this.kcloseWhenDoneIfAutoOpened, false) && window.autoOpened;
            if (this.success && (closeWhenDone || closeWhenDoneIfAutoOpened)) {
              window.DownloadIntegration?._store?.save();
              window.close();
            }
    
          } else {
    
            // If the last browser window has been closed, we have no indicator any more.
            if (this._taskbarProgress) {
              if (this._summary.allHaveStopped || this._summary.progressTotalBytes == 0) {
                this._taskbarProgress.setProgressState(
                                         Ci.nsITaskbarProgress.STATE_NO_PROGRESS, 0, 0);
              } else {
                // For a brief moment before completion, some download components may
                // report more transferred bytes than the total number of bytes.  Thus,
                // ensure that we never break the expectations of the progress indicator.
                let progressCurrentBytes = Math.min(this._summary.progressTotalBytes,
                                                    this._summary.progressCurrentBytes);
                this._taskbarProgress.setProgressState(
                                         Ci.nsITaskbarProgress.STATE_NORMAL,
                                         progressCurrentBytes,
                                         this._summary.progressTotalBytes);
              }
            }
    
            // Update window title
            var numDls = 0;
            if (!this._list)
              return;
            this._list.getAll().then(downloads => {
              for (let download of downloads) {
                if (download.hasProgress && !download.succeeded)
                  numDls++;
              }
    
              let progressCurrentBytes = Math.min(this._summary.progressTotalBytes,
                                                this._summary.progressCurrentBytes);
              let percent = Math.floor(progressCurrentBytes / this._summary.progressTotalBytes * 100);
              let text = percent + "%/" + numDls + (numDls < 2 ? " file - " : " files - ") ;
              document.title = text + this.originalTitle;
            }).then(null, console.error);
          }
        },
    
        clearDownloads: function ucjs_clearDownloads() {
          var DO_NOT_DELETE_HISTORY = true; /* custmizable true or false */
          var richListBox = document.getElementById("downloadsListBox");
    
          var places = [];
          function addPlace(aURI, aTitle, aVisitDate) {
            places.push({
              uri: aURI,
              title: aTitle,
              visits: [{
                visitDate: (aVisitDate || Date.now()) * 1000,
                transitionType: Ci.nsINavHistoryService.TRANSITION_LINK
              }]
            });
          }
          function moveDownloads2History(d) {
            if (DO_NOT_DELETE_HISTORY &&
                !PrivateBrowsingUtils.isWindowPrivate(window)) {
              for (let element of richListBox.childNodes) {
                let download = element._shell.download;
                let aURI = makeURI(download.source.url);
                // let aTitle = document.getAnonymousElementByAttribute(element, "class", "downloadTarget").value
                let aTitle = download.target.path;
                aTitle = aTitle.match( /[^\\]+$/i )[0];
                aTitle = aTitle.match( /[^/]+$/i )[0];
    
                let aVisitDate = download.endTime || download.startTime;
                addPlace(aURI, aTitle, aVisitDate)
              }
            }
    
            // Clear List
            richListBox._placesView.doCommand('downloadsCmd_clearDownloads');
    
            if (DO_NOT_DELETE_HISTORY &&
                !PrivateBrowsingUtils.isWindowPrivate(window)) {
              if (places.length > 0) {
                var asyncHistory = Components.classes["@mozilla.org/browser/history;1"]
                         .getService(Components.interfaces.mozIAsyncHistory);
                  asyncHistory.updatePlaces(places);
              }
            }
          }
          var btn = document.getElementById("ucjs_clearListButton");
          moveDownloads2History(0);
        },
    
        doSearch: function ucjs_doSearch(filterString) {
          var richListBox = document.getElementById("downloadsListBox");
          richListBox._placesView.searchTerm = filterString;
        }
      };
      ucjs_downloadManagerMain.init();
    }
    Alles anzeigen
  • Skripte funktionieren nicht mehr

    • Mira_Belle
    • 29. April 2025 um 22:38
    Zitat von milupo

    Wie hattest du denn eigentlich denn das Update gemacht? Über den Aktualisierungseintrag/Pfeil im Hamburger-Menü?

    Hilfe \ Über Firefox

    Dann im Dialog das Update angeworfen.

  • Skripte funktionieren nicht mehr

    • Mira_Belle
    • 29. April 2025 um 22:24
    Zitat von milupo

    Da bleibt dir nichts anderes übrig, als die Vorbereitung für Skripte noch einmal zu machen bzw. zu überprüfen.

    Habe ich schon zweimal gemacht! Und alles von Hand!

    Zitat von 2002Andreas

    Abgesehen davon, dass das Runterlanden vom Update (10MB) über eine Minute gedauert hat, funktionieren hier auch alle Skripte.

    Mh, bei mir nicht. Kann man die aktuelle Nightly irgendwo herunterladen?
    Damit ich diese noch einmal von Hand drüber bügeln kann?

    Zitat von .DeJaVu

    Du hast dir nicht zufällig irgendwas verbogen mit dem neuen Script? ;)

    Eher unwahrscheinlich.
    Die Tests habe ich heute Mittag gemacht und der Firefox sowie die Nightly wurden zwischendurch auch ein paar Mal neugestartet.
    Vor dem Update, das war jetzt vor ca. 2h, liefen noch alle Skripte mit der Version 139.0a1 (2025-04-28) (64-Bit).
    Nach dem Update auf 140.0a1 (2025-04-29) (64-Bit) nicht mehr!

  • Skripte funktionieren nicht mehr

    • Mira_Belle
    • 29. April 2025 um 22:02

    Mh, dann hat mein altersschwaches Hirn da was verwechselt!

    Dennoch geht nicht ein Skript!

  • Skripte funktionieren nicht mehr

    • Mira_Belle
    • 29. April 2025 um 21:52
    Zitat von milupo

    Hast du irgendetwas an den notwendigen Skriptdateien geändert? Also an der userChrome.js im Profil und an den Dateien/dem Ordner userChromeJS im Installationsverzeichnis? Hast du ein neues Profilverzeichnis oder Installationsverzeichnis?

    Nein!
    Bis eben, vor ca. einer Stunde, funktionierten alle Skripte noch!
    Es war aber noch die Nightly von Gestern:!:
    Dann das Update gemacht, nicht ein Skript geht!

    Mir war, mir ist, als hätte Sören Hentzschel irgendwo erwähnt, dass das passieren könnte
    und dass es dazu in der about:config etwas umgestellt werden müsste.

Unterstütze uns!

Jährlich (2025)

94,2 %

94,2% (612,48 von 650 EUR)

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