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

Beiträge von Endor

  • ucjsDownloadsStatusModoki.uc.js

    • Endor
    • 19. November 2021 um 21:27

    Das kann ich jetzt so gar nicht sagen, da ich hier immer alles Benutzerdefiniert speichere.
    Und die Dateien bleibt dann auch nach dem Leeren der Liste erhalten.

    Mfg.
    Endor

  • ucjsDownloadsStatusModoki.uc.js

    • Endor
    • 19. November 2021 um 21:17

    Also hier funktioniert die Schaltfläche zum löschen.

    Das ist die hier verwendete Version, die akuellste verfügbare:

    CSS
    // ==UserScript==
    // @name           ucjsDownloadsStatusModoki.uc.js
    // @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description    Downloads Status Modoki
    // @include        main
    // @compatibility  Firefox 73+
    // @author         Alice0775
    // @note           ucjsDownloadsStatusModoki.uc.js.css Code muss über die userChrome.css Datei geladen werden
    // @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/09/08 19:30 fix scrollbox
    // @version        2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement
    // @version        2018/10/27 12:00 fix for 64+
    // @version        2018/06/12 21:00 fix for private window mode
    // @version        2018/06/07 12:00 fix file name for history
    // @version        2018/02/10 12:00 try catch error when DO_NOT_DELETE_HISTORY = true
    // @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, close button styling for 57.
    // @version        2016/06/10 12:00 modify style independent of font-family
    // @version        2016/06/10 07:00 modify style of close button, fix typo
    // @version        2016/06/10 00:00 Workaround Bug 1279329. adjust some padding
    // @version        2015/05/08 00:00 remove padding due to Bug 1160734
    // @version        2014/03/31 00:00 fix for browser.download.manager.showWhenStarting
    // @version        2013/12/22 13:00 chromehidden
    // @version        2013/12/19 17:10 rename REMEMBERHISTOTY to DO_NOT_DELETE_HISTORY
    // @version        2013/12/16 23:28 fixed initialize numDls
    // @version        2013/12/16 23:24 open only download added
    // @version        2013/12/16 23:10 open only download started
    // @version        2013/12/16 21:20 modify css Windows7 Aero
    // @version        2013/12/16 21:00 modify css
    // @version        2013/12/16 19:30 add autocheck false
    // @version        2013/12/16 18:31 fix pref name
    // @version        2013/12/16 18:30
    // @note
    // ==/UserScript== 
    var ucjsDownloadsStatusModoki = {
      _summary: null,
      _list: null,
    
      get downloadsStatusModokiBar() {
        delete downloadsStatusModokiBar;
        return this.downloadsStatusModokiBar = document.getElementById("downloadsStatusModokiBar");
      },
    
      get toggleMenuitem() {
        delete toggleMenuitem;
        return this.toggleMenuitem = document.getElementById("toggle_downloadsStatusModokiBar");
      },
    
      init: function() {
        if (document.documentElement.getAttribute("chromehidden") !="" )
          return;
    
        XPCOMUtils.defineLazyModuleGetter(window, "Downloads",
                  "resource://gre/modules/Downloads.jsm");
    
        var style = ` 
          @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 
          #ucjsDownloadsStatusModoki { 
            width: 100%; 
            max-height: 100px; 
            height: 39px; 
          } 
         `.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);
        };
    
    
        var toolbar = document.createXULElement("vbox");
        toolbar.setAttribute("id", "downloadsStatusModokiBar");
        toolbar.setAttribute("collapsed", true);
    
        var bottombox = document.getElementById("browser-bottombox");
        bottombox.appendChild(toolbar);
        var browser = toolbar.appendChild(document.createXULElement("browser"));
        browser.setAttribute("disablehistory", true);
        browser.setAttribute("remote", false);
        browser.setAttribute("id", "ucjsDownloadsStatusModoki");
        browser.addEventListener("load", function(event){ucjsDownloadsStatusModoki.onload(event)}, true);
        browser.setAttribute("src", "chrome://browser/content/downloads/contentAreaDownloadsView.xhtml?StatusModoki");
        var menuitem = document.createXULElement("menuitem");
        menuitem.setAttribute("id", "toggle_downloadsStatusModokiBar");
        menuitem.setAttribute("type", "checkbox");
        menuitem.setAttribute("autocheck", false);
        menuitem.setAttribute("label", "Download Leiste");
        menuitem.setAttribute("checked", false);
        menuitem.setAttribute("accesskey", "D");
        menuitem.setAttribute("oncommand", "ucjsDownloadsStatusModoki.toggleDownloadsStatusModokiBar()");
        var ref = document.getElementById("menu_customizeToolbars");
        ref.parentNode.insertBefore(menuitem, ref.previousSibling);
    
        // 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, Cu.reportError);
        }
        if (!this._list) {
          Downloads.getList(Downloads.ALL).then(list => {
            this._list = list;
            return this._list.addView(this);
          }).then(null, Cu.reportError);
        }
    
        window.addEventListener("unload", this, false);
      },
    
      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;
        }
      },
    
      toggleDownloadsStatusModokiBar: function() {
        var collapsed = this.downloadsStatusModokiBar.collapsed;
        this.downloadsStatusModokiBar.collapsed = !collapsed;
        this.toggleMenuitem.setAttribute("checked", collapsed);
      },
    
      openDownloadsStatusModoki: function() {
        this.downloadsStatusModokiBar.collapsed = false;
        this.toggleMenuitem.setAttribute("checked", true);
      },
    
      hideDownloadsStatusModoki: function() {
        this.downloadsStatusModokiBar.collapsed = true;
        this.toggleMenuitem.setAttribute("checked", false);
      },
    
      onDownloadAdded: function (aDownload) {
        Cu.import("resource://gre/modules/Services.jsm");
        var showWhenStarting = true;
        try {
          showWhenStarting = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.showWhenStarting");
        } catch(e) {}
        this.numDls = 0;
        if (showWhenStarting) {
          if (this._list) {
            this._list.getAll().then(downloads => {
              for (let download of downloads) {
                if (!download.stopped)
                  this.numDls++;
              }
              if (this.numDls > 0)
                this.openDownloadsStatusModoki(false);
            }).then(null, Cu.reportError);
          }
        }
      },
    
      onSummaryChanged: function () {
        Cu.import("resource://gre/modules/Services.jsm");
        if (!this._summary)
          return;
        if (this._summary.allHaveStopped || this._summary.progressTotalBytes == 0) {
          var closeWhenDone = false;
          try {
            closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone");
          } catch(e) {}
          if (closeWhenDone) {
            this.hideDownloadsStatusModoki();
          }
        }
      },
    
    
    
      // chrome://browser/content/downloads/contentAreaDownloadsView.xhtml
      onload: function(event) {
        var doc = event.originalTarget;
        var win = doc.defaultView;
        doc.documentElement.setAttribute("ucjsDownloadsStatusModoki", "true");
    
        var button = doc.createXULElement("button");
        button.setAttribute("label", "Löschen");
        button.setAttribute("id", "ucjs_clearListButton");
        button.setAttribute("accesskey", "L");
        var ref = doc.getElementById("downloadCommands");
        var vbox = doc.createXULElement("vbox");
        var box = vbox.appendChild(doc.createXULElement("hbox"));
        box.appendChild(button);
        box.appendChild(doc.createXULElement("spacer")).setAttribute("flex", 1);
        var textbox = doc.createElementNS("http://www.w3.org/1999/xhtml", "input");
        textbox.setAttribute("id", "downloadFilter");
        textbox.setAttribute("clickSelectsAll", true);
        textbox.setAttribute("type", "search");
        textbox.setAttribute("placeholder", "Suchen...");
        box.appendChild(textbox);
        var closebtn = doc.createXULElement("toolbarbutton");
        closebtn.setAttribute("id", "ucjsDownloadsStatusModoki-closebutton");
        closebtn.setAttribute("class", "close-icon");
        closebtn.setAttribute("tooltiptext", "Download-Leiste schließen");
        box.appendChild(closebtn);
        ref.parentNode.insertBefore(vbox, ref);
        doc.getElementById("ucjs_clearListButton").addEventListener("command", function(event) {
            win.ucjsDownloadsStatusModoki_clearDownloads();
          });
        doc.getElementById("downloadFilter")
                .addEventListener("input", function(event) {
            win.ucjsDownloadsStatusModoki_doSearch(event.target.value);
          });
        doc.getElementById("ucjsDownloadsStatusModoki-closebutton")
                .addEventListener("command", function(event) {
            win.ucjsDownloadsStatusModoki_doClose();
          });
    
    /*
        // xxx Bug 1279329 "Copy Download Link" of context menu in Library is grayed out
        var listBox = doc.getElementById("downloadsRichListBox");
        var placesView = listBox._placesView;
        if (placesView) {
          var place = placesView.place;
          placesView.place= null;
          placesView.place = place;
        }
    */
        win.ucjsDownloadsStatusModoki_clearDownloads = function ucjs_clearDownloads() {
          var DO_NOT_DELETE_HISTORY = true; /* custmizable true or false */
          var richListBox = doc.getElementById("downloadsRichListBox");
    
          Cu.import("resource://gre/modules/Services.jsm");
          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() {
            if (DO_NOT_DELETE_HISTORY &&
                !PrivateBrowsingUtils.isWindowPrivate(window)) {
              try {
                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)
                }
              } catch(ex) {}
            }
    
            // Clear List
            richListBox._placesView.doCommand('downloadsCmd_clearDownloads');
    
            if (DO_NOT_DELETE_HISTORY &&
                !PrivateBrowsingUtils.isWindowPrivate(window)) {
              try {
                if (places.length > 0) {
                  var asyncHistory = Components.classes["@mozilla.org/browser/history;1"]
                           .getService(Components.interfaces.mozIAsyncHistory);
                    asyncHistory.updatePlaces(places);
                }
              } catch(ex) {}
            }
          }
          var btn = doc.getElementById("ucjs_clearListButton");
          btn.setAttribute("disabled", true);
          moveDownloads2History();
          btn.removeAttribute("disabled");
    
          // close toolbar
          var closeWhenDone = false;
          try {
            closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone");
          } catch(e) {}
          if (closeWhenDone) {
            top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki();
          }
        };
    
        win.ucjsDownloadsStatusModoki_doSearch = function ucjs_doSearch(filterString) {
          var richListBox = doc.getElementById("downloadsRichListBox");
          richListBox._placesView.searchTerm = filterString;
        };
    
        win.ucjsDownloadsStatusModoki_doClose = function ucjs_doClose() {
          top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki();
        };
    
      }
    
    }
    ucjsDownloadsStatusModoki.init();
    Alles anzeigen

    Mfg.
    Endor

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

    • Endor
    • 19. November 2021 um 18:44

    Hallo milupo.

    So funktioniert es hier wieder einwandfrei.

    Prima. Vielen Dank.

    Mfg.
    Endor

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

    • Endor
    • 19. November 2021 um 17:05

    Leider sagt die Browserkonsole nichts zu diesem Script.

    Bei klick auf die Schaltfläche tut sich einfach nichts.

    Interessant wird es, wenn ich über Extras - Browser-Werkzeuge die

    Browser-Werkzeuge öffnen diese dann schließe funktioniert das Script

    wieder bis zum Neustart von Nightly. Keine Ahnung woran das liegt.

    Mfg.
    Endor

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

    • Endor
    • 19. November 2021 um 16:11

    Ja kann ich auch bestätigen.

    Im aktuellen Nightly geht es nicht mehr.

    Hoffen wir, dass aborix da was machen kann.

    Mfg.
    Endor

  • Der Glückwunsch-Thread

    • Endor
    • 17. November 2021 um 20:07

    Herzlichen Glückwunsch zum Geburtstag, TmoWizard !

    Vor allem Gesundheit wünsche ich Dir.

    Mfg.
    Endor

  • About Seiten mit CSS Codes anpassen

    • Endor
    • 13. November 2021 um 21:47

    Hallo edvoldi .
    Nein, da habe ich keine Symbole.
    Sieht hier so aus:

    Da hast Du wohl mal eine Änderung gemacht.

    Mfg.
    Endor

  • About:config Icon

    • Endor
    • 13. November 2021 um 11:56

    Freut mich wenn es passt.

    Mfg.
    Endor

  • Notepad++ Farbkästchen

    • Endor
    • 7. November 2021 um 18:52

    Hallo omar1979

    Es gibt ein Plugin für Notepad++

    Color picker vielleicht wäre das etwas für Dich:

    is there a color picker for the 64bit version 7.8.6?
    @guy038 OHH - yes I see that now. It does insert the correct hex, but the color picker window shows the hex as “backwards” even though the RGB decimal numbers…
    community.notepad-plus-plus.org

    Ich selbst verwende es nicht.

    Mfg.
    Endor

  • About Seiten mit CSS Codes anpassen

    • Endor
    • 6. November 2021 um 13:28

    Mal wieder etwas neues:

    about:unloads

    CSS
            @namespace url(http://www.w3.org/1999/xhtml);
    
            @-moz-document url(about:unloads) {
                
            html{background: white !important;}
            
            h1:before {
            content: "Endors Firefox:    "; 
            font-weight:bold !important;  
            color:red !important; 
            margin-left:500px !important; 
            margin-right: 15px !important; 
            padding-top: 100px !important;}
            
            h1{
            color: #cc0000 !important; 
            font-size: 22px !important; 
            font-weight: bold !important; 
            margin-bottom: 20px !important;}
            
            h2, body > table:nth-child(n+1) > tbody:nth-child(1) > tr:nth-child(1){color: #3377ff !important;}
            
            body {
            min-height: 93vh !important; 
            background-color: #fffff0 !important;
            max-width: 1420px !important;
            margin-left: 25px !important;
            margin-top: 25px !important;
            padding-top: 35px !important;
            padding-left: 25px !important;
            padding-right: 25px !important;
            border-left-color:  lightblue!important;
            border-top-color:  lightblue!important;
            border-right-color:  dodgerblue!important;
            border-bottom-color:  dodgerblue!important;
            border-radius: 20px !important;
            border-width:  4px !important;
            border-style: outset !important;}
            
            #button-unload {
            margin-top: 15px !important;
            text-decoration:none !important;
            display: inline-block !important;
            padding-left: 55px !important;
            padding-right: 35px !important;
            padding-top: 5px  !important;
            padding-bottom: 5px !important;
            color: black !important;
            background: #efefef url("..//icons/Fuchs4.png") no-repeat !important;
            background-position:16px 1px!important;
            border-left-color:  #E6E5E5 !important;
            border-top-color:  #E6E5E5 !important;
            border-right-color:  #5C5B5B !important;
            border-bottom-color:  #5C5B5B !important;  
            border-width:1px !important;
            border-style: outset !important;
            border-radius:22px!important;}
    
            #button-unload:hover{
            background: #CFE6F1 url("..//icons/Fuchs4.png") no-repeat !important;
             background-position:16px 1px!important;
            border-left-color:  #e4e3e3 !important;
            border-top-color:  #e4e3e3 !important;
            border-right-color:  #5c5b5b !important;
            border-bottom-color:  #5c5b5b !important;    
            border-width:1px !important;
            border-style: outset !important;
            border-radius:22px!important;}
            
            body > p:nth-child(3) > a:nth-child(1){
            text-decoration:none !important;
            padding-left: 55px !important;
            padding-right: 35px !important;
            padding-top: 3px  !important;
            padding-bottom: 5px !important;
            color: black !important;
            background: #efefef url("..//icons/general-20.png") no-repeat !important;
            background-position:16px 2px!important;
            border-left-color:  #E6E5E5 !important;
            border-top-color:  #E6E5E5 !important;
            border-right-color:  #5C5B5B !important;
            border-bottom-color:  #5C5B5B !important;  
            border-width:1px !important;
            border-style: outset !important;
            border-radius:22px!important;}
            
            
            body > p:nth-child(3) > a:nth-child(1):hover{
            background: #CFE6F1 url("..//icons/general-20.png") no-repeat !important;
             background-position:16px 2px!important;
            border-left-color:  #e4e3e3 !important;
            border-top-color:  #e4e3e3 !important;
            border-right-color:  #5c5b5b !important;
            border-bottom-color:  #5c5b5b !important;    
            border-width:1px !important;
            border-style: outset !important;
            border-radius:22px!important;}
            
            body > p:nth-child(3) > a:nth-child(1)
            
            td{background: #FFFFFF !important;}
            td:hover{background: #ffeb99 !important;}    
        
            th {background-color: #ee7621 !important;}
            th:hover {background-color: #b54f06 !important;}
            
            /* .build-platform-table > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1){
            border-top-left-radius:24px !important; border-top-right-radius:24px !important;
            min-width: 200px !important; padding-left: 20px !important;}
            
            .build-platform-table > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(1){
            border-bottom-right-radius:24px !important; border-bottom-left-radius:24px !important;
            min-width: 200px !important; padding-left: 20px !important; padding-top: 5px!important;
            padding-bottom: 8px !important;}
            
            .build-platform-table,
            .build-platform-table > tbody:nth-child(1),
            .container > table:nth-child(7) > tbody:nth-child(1),
            .container > table:nth-child(7) {border-radius:22px!important;}
            
            .container > table:nth-child(7) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1)
            {border-top-left-radius:24px !important; padding-top: 8px !important; padding-left: 13px !important;}
            
            .container > table:nth-child(7) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(3)
            {border-top-right-radius:24px !important;}
            
            .container > table:nth-child(7) > tbody:nth-child(1) > tr:nth-child(4) > td:nth-child(3)
            {border-bottom-right-radius:24px !important;}
            
            .container > table:nth-child(7) > tbody:nth-child(1) > tr:nth-child(4) > td:nth-child(1)
            {border-bottom-left-radius:24px !important; padding-bottom: 8px !important; padding-left: 12px !important;}
            
            .container > table:nth-child(7) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(1),
            .container > table:nth-child(7) > tbody:nth-child(1) > tr:nth-child(3) > td:nth-child(1){
            padding-left: 12px !important;} */
            
             
            }
    Alles anzeigen

    Symbole:  

    Das Symbol general-20.png braucht es erst ab Firefox 95 Beta.

    Mfg.
    Endor

  • Notepad++ Farbkästchen

    • Endor
    • 6. November 2021 um 13:19
    Zitat von Zitronella

    <KeyWord name="important" />

    Vielen Dank Zitronella .

    :thumbup:

    Mfg.
    Endor

  • About:config Icon

    • Endor
    • 6. November 2021 um 13:02

    Hallo zusammen.

    Vielen Dank für den Hinweis.
    Habe das Script mal aktualisiert.
    https://github.com/Endor8/userChr…ut-config.uc.js

    Mfg.
    Endor

  • BackupProfile.uc.js - div. Fragen dazu

    • Endor
    • 24. Oktober 2021 um 10:26

    .DeJaVu

    Schau mal:

    DejaVu – Wikipedia
    de.wikipedia.org

    ;)

    Mfg.
    Endor

  • In memoriam

    • Endor
    • 16. Oktober 2021 um 21:33

    Reinhold Roth ist tot.

    31 Jahr nach seinem schweren Motorrad Unfall.

    Ehemaliger Motorrad-Vizeweltmeister Reinhold Roth gestorben
    Der frühere Motorrad-Vizeweltmeister Reinhold Roth ist tot. Er zählte in den 1970er- und 80er-Jahren zu den besten Motorradfahrern der Welt. Ein schwerer…
    www.br.de

    R.I.P.

    Mfg.
    Endor

  • Forum hängt

    • Endor
    • 10. Oktober 2021 um 12:49

    Im Moment hängt es wieder...

  • Icons in Hamburger-Menü und den anderen Menüs einbauen.

    • Endor
    • 10. Oktober 2021 um 12:13

    Hallo zusammen.

    Mein Laptop hat mittlerweile Windows 10 bekommen.

    Da muss ich dann erst mal alles testen und anpassen, sobald ich dazu komme.
    Im Moment nicht absehbar wenn ich dazu komme.

    Wenn dann alles passt lade ich dann den neuen Code für alles hoch.

    Es wird aber mindestens November werden.

    Mfg.
    Endor

  • Forum hängt

    • Endor
    • 10. Oktober 2021 um 12:03

    Ging mir gestern auch so. Kann es also bestätigen.

    Mfg.
    Endor

  • RestartFirefox_plus.uc.js keine Funktion

    • Endor
    • 9. Oktober 2021 um 16:29

    milupo

    Siehe edit oben.

    ;)

    Mfg.
    Endor

  • RestartFirefox_plus.uc.js keine Funktion

    • Endor
    • 9. Oktober 2021 um 16:10

    Ok. Danke 2002Andreas.

    Ich habe es hier mal testweise in das Script restartfirefox-plus.uc.js eingebaut.

    Mit der Zeile von milupo. Funktioniert bestens.
    Hier wer Interesse hat:

    JavaScript
        //      RestartFirefox_plus.uc.js   3a
    
        (function() {
    
           if (location != 'chrome://browser/content/browser.xhtml') return;
           
           try {
              CustomizableUI.createWidget({
                 id: 'restart-button',
                 type: 'custom',
                 defaultArea: CustomizableUI.AREA_NAVBAR,
                 onBuild: function(aDocument) {         
                    var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                    var props = {
                       id: 'restart-button',
                       class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                       removable: false,
                       label: 'Neustart',
                       tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
                       style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAEZ0FNQQAAsY58%2B1GTAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAN8SURBVHjaVJFNTBxlAIafb2Z29gd2l4VdYCkokAUt1AJplQRTrVqjUWMPPWHSCzb21IOn9qIHY2xMahoTTb00NmkUm5qAjdpUI61VaCxCpCVYixt%2ByvKzCwu7LDs7zMw3HmhM%2Bt6fJ0%2FyCp69wiOzZBCPcqSmIXg0HPHuC4R8nkLWyOXyYiIzfuVHzMIA%2BZsLtH18EApntUdhpzUSD5577nDLi%2FGWKjx%2BHVfR8HpFwNwsxTMzza%2BOXJ1%2B58Ev2sVEV%2ByEawXqxf8FllNWEQ9ePXzsqQOecIDU8jampSAVD76Al2BIIx4Dv2Nz7%2FYq%2B5%2BP8sNXE6WdAhdQlOM9rzUdaGiN8M9UjnKvQjzuA0UjV3AxDIcHywqRoEbXoVrKgyBtKXYEUvprmiN9oaoyvr9wl62NHJbtJeDzOo17YmprVzWOppLO2RRNwf1FSOzSUAXsCIR4QdP13UPfjhUde2mjuBXUjcXNEabOnJmq7Y4Nd7z1fu%2BJ%2FR2Jpgrm0jauAI8GlnSlBi4I0bO6sLBWHc9esxRdmjOZf5n%2B5CLWzCzOvsbKupBZ1xgmElUoC%2BgoKtRGQfNomoaND8P8XS%2Bby1olO7O6GHTl1DejGDOrNB%2BvpO7I%2Ba31%2FDP9Z28YUmqoqhCKcG2EYD6ZMUTojZ8WHmsqD%2BI6wnWFajugCkuuZaV%2FZS47wp99R7E3LbxPV6rtr7dV1pmyuBWs3hr7dZ380LC2tzseffvUHm86C1JC2A%2FrGcn509cn%2BPvTk9ibc1R06qL91Ms1CadF000ll9rVS2VykLzVr0lHOgtpuJ9yUFyXxqhKZjbH2nJRI9IZwyw2kXjvXV%2FIOWgaBcc2a%2BtjdVXR1J3iBDx8QUpQUJAuJJclseogxz441H5vrPO72cm0VSyVPJq27ZaHm8ST3Y0M9d9Kkr19A1A1x4VIObTGBfNrsJ5XmE9b6KqgvrOGhr1Vns2sgeNIkXiigvHf1liZuHWZYjINSEXRVLewZjN6bYmYbvN4rcDvVzFKLnOpErMLBpvbklClznyyyPDA6DjTX3wJWICr%2Bnb3ffjXSGpl5Nxnn88uh2ORUCBaHfVQU%2BsjVuGhKqJT5lFYShr8fGH4j42bH53EnJ4EtgEEPQOTzHx9mqXLl9AT9TS82RvreOmVcMTXVh4JhIr5kp3LFu6u3Lk%2ByMylQazU3ENYAvw3AFUTimFqj5i7AAAAAElFTkSuQmCC)',
                       onclick: 'if (event.button == 0) { \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                  }; \
                                  if (event.button == 1 || event.button == 2) { \
                                      Services.appinfo.invalidateCachesOnRestart(); \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                  };'
                    };            
                    for (var p in props)
                       toolbaritem.setAttribute(p, props[p]);            
                    return toolbaritem;
                 }      
              });
              CustomizableUI.registerToolbarNode(tb);
           } catch(e) { };   
                 
           var menuitem = document.createXULElement('menuitem');   
           var props = {
              id: 'restartfirefox-fileMenu2',
              label: 'Neustart',
              tooltiptext: 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)',
              onclick: 'if (event.button == 0) { \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                  }; \
                                  if (event.button == 1 || event.button == 2) { \
                                      Services.appinfo.invalidateCachesOnRestart(); \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                  };'
           };            
           for (var p in props)
              menuitem.setAttribute(p, props[p]);      
           document.getElementById('menu_FilePopup').insertBefore(menuitem, document.getElementById('menu_FileQuitItem'));
    
           (function() {
    
           /* App (Hamburger) Menu */
           var menuitem = document.createXULElement('toolbarbutton');
               menuitem.id = 'restartfirefox-appMenu';
               menuitem.classList.add('subviewbutton', 'subviewbutton-iconic');
               menuitem.setAttribute('label' , 'Neustart');
               menuitem.setAttribute('tooltiptext' , 'Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)');
               menuitem.setAttribute('style', '-moz-image-region\: rect(0px 16px 16px 0px); padding-left\:15px;')
               menuitem.style.listStyleImage= 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAEZ0FNQQAAsY58%2B1GTAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAN8SURBVHjaVJFNTBxlAIafb2Z29gd2l4VdYCkokAUt1AJplQRTrVqjUWMPPWHSCzb21IOn9qIHY2xMahoTTb00NmkUm5qAjdpUI61VaCxCpCVYixt%2ByvKzCwu7LDs7zMw3HmhM%2Bt6fJ0%2FyCp69wiOzZBCPcqSmIXg0HPHuC4R8nkLWyOXyYiIzfuVHzMIA%2BZsLtH18EApntUdhpzUSD5577nDLi%2FGWKjx%2BHVfR8HpFwNwsxTMzza%2BOXJ1%2B58Ev2sVEV%2ByEawXqxf8FllNWEQ9ePXzsqQOecIDU8jampSAVD76Al2BIIx4Dv2Nz7%2FYq%2B5%2BP8sNXE6WdAhdQlOM9rzUdaGiN8M9UjnKvQjzuA0UjV3AxDIcHywqRoEbXoVrKgyBtKXYEUvprmiN9oaoyvr9wl62NHJbtJeDzOo17YmprVzWOppLO2RRNwf1FSOzSUAXsCIR4QdP13UPfjhUde2mjuBXUjcXNEabOnJmq7Y4Nd7z1fu%2BJ%2FR2Jpgrm0jauAI8GlnSlBi4I0bO6sLBWHc9esxRdmjOZf5n%2B5CLWzCzOvsbKupBZ1xgmElUoC%2BgoKtRGQfNomoaND8P8XS%2Bby1olO7O6GHTl1DejGDOrNB%2BvpO7I%2Ba31%2FDP9Z28YUmqoqhCKcG2EYD6ZMUTojZ8WHmsqD%2BI6wnWFajugCkuuZaV%2FZS47wp99R7E3LbxPV6rtr7dV1pmyuBWs3hr7dZ380LC2tzseffvUHm86C1JC2A%2FrGcn509cn%2BPvTk9ibc1R06qL91Ms1CadF000ll9rVS2VykLzVr0lHOgtpuJ9yUFyXxqhKZjbH2nJRI9IZwyw2kXjvXV%2FIOWgaBcc2a%2BtjdVXR1J3iBDx8QUpQUJAuJJclseogxz441H5vrPO72cm0VSyVPJq27ZaHm8ST3Y0M9d9Kkr19A1A1x4VIObTGBfNrsJ5XmE9b6KqgvrOGhr1Vns2sgeNIkXiigvHf1liZuHWZYjINSEXRVLewZjN6bYmYbvN4rcDvVzFKLnOpErMLBpvbklClznyyyPDA6DjTX3wJWICr%2Bnb3ffjXSGpl5Nxnn88uh2ORUCBaHfVQU%2BsjVuGhKqJT5lFYShr8fGH4j42bH53EnJ4EtgEEPQOTzHx9mqXLl9AT9TS82RvreOmVcMTXVh4JhIr5kp3LFu6u3Lk%2ByMylQazU3ENYAvw3AFUTimFqj5i7AAAAAElFTkSuQmCC)',
               menuitem.setAttribute('onclick', 'if (event.button == 0) { \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                      }; \
                                      if (event.button == 1 || event.button == 2) { \
                                      Services.appinfo.invalidateCachesOnRestart(); \
                                      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                                      };');
           var refItem = document.getElementById('appMenu-viewCache').content.getElementById('appMenu-quit-button2');
               refItem.parentNode.insertBefore(menuitem, refItem);
               })();
    
        })();
    Alles anzeigen

    Edit: so beides ist nun hier zu finden:

    userChrome.js/Firefox-93 at master · Endor8/userChrome.js
    Skripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.
    github.com

    Mfg.
    Endor

  • RestartFirefox_plus.uc.js keine Funktion

    • Endor
    • 9. Oktober 2021 um 15:59

    Nur noch eine kurze Frage, soll ich das als eigenständiges Script hochladen

    oder in das Script restartfirefox-plus.uc.js integrieren und dann hoch laden?

    Was sagt ihr?

    Ich würde sagen als eigenständiges Script wäre besser.

    Mfg.
    Endor

Unterstütze uns!

Jährlich (2026)

35,3 %

35,3% (273,24 von 775 EUR)

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