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

Beiträge von FuchsFan

  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • FuchsFan
    • 13. Juni 2023 um 12:18
    Zitat von pirate man

    Habt ihr irgendwelche Tipps und Lösungsansätze für mich?

    Funktionieren denn andere Scripte?

    Wenn nicht , dann sollte das nachgeholt werden:

    Thema

    Funktionelle Änderungen am Firefox durch Skripte

    Als Ersatz für einige Erweiterungen bzw. Funktionen daraus kann man auch diverse Skripte benutzen.

    ( damit sind nicht optische Änderungen am Firefox gemeint)

    Diese werden mit einer userChrome.css Datei erstellt.

    Skripte werden als .uc.js Datei im Unterordner chrome gespeichert.

    Hinweise:

    Ab Firefox Version 139 muss der neue Eintrag in about:config:

    security.allow_unsafe_dangerous_privileged_evil_eval

    auf true umgestellt werden, damit manche Skripte wieder funktionieren.

    Hier der Gund dafür:

    RE:…
    2002Andreas
    15. November 2017 um 16:49
  • Hamburger Menü - neuer Button " Seite übersetzen"

    • FuchsFan
    • 10. Juni 2023 um 11:58
    Zitat von Sören Hentzschel

    In finalen Versionen nicht vor Firefox 117

    Danke, Sören, ist registriert.

  • Hamburger Menü - neuer Button " Seite übersetzen"

    • FuchsFan
    • 10. Juni 2023 um 11:53
    Zitat von 2002Andreas

    Sorry

    Alles wird gut, das kennst Du doch. :)

    Danke, Andreas, passt. :thumbup:

  • Hamburger Menü - neuer Button " Seite übersetzen"

    • FuchsFan
    • 10. Juni 2023 um 11:32

    Ab Version 115 gibt es diesen Button, der bei Inaktivität den Text leicht Grau erscheinen lässt. Erst wenn eine Seite aufgerufen wird, so erhöht sich der Kontrast.

    Nun möchte ich nur bei Aktivität die Farbe ändern, was mir nicht gelingen will. Mit dem Code wird die Farbe generell angesprochen:

    CSS
    #appMenu-translate-button {              /* Seite übersetzen */
      color: blue !important;
      font-weight: bold !important; }

    Was muss da zusätzlich eingetragen werden. Bitte helfen.

  • Entwicklung Firefox

    • FuchsFan
    • 9. Juni 2023 um 19:55
    Zitat von .DeJaVu

    Die Nightly vom 8. (gestern) ist teilweise englisch

    Gerade bereinigt, wieder Deutsch.

  • Offenbar funktionieren alle Benutzerskripte nicht mehr im Nightly

    • FuchsFan
    • 8. Juni 2023 um 23:03
    Zitat von milupo

    Bei beiden Skripten?

    Ja, milupo, alles bestens. Danke! :thumbup:

  • Offenbar funktionieren alle Benutzerskripte nicht mehr im Nightly

    • FuchsFan
    • 8. Juni 2023 um 20:36
    Zitat von 2002Andreas

    Das ist dein Skript, ich musste Zeile 18 auskommentieren.

    Ich habe sie ganz raus genommen, und siehe da, das war der Übeltäter.


    Zitat von milupo

    Ich habe hier z. B. noch das Skript Appmenu.uc.js, das ein Menü Firefox mit verschiedenen Einträgen anlegt, wie es wohl mal bis Firefox 4? war. Dort bitte mal Folgendes ersetzen:

    milupo

    In zwei Profilen nutze ich das Script auch, wo ich für den Aufruf der Browser-Werkzeuge bisher den Code verwendet habe:

    Code
    {
                name: 'Browser-Werkzeuge',
                subdir: 'Firefox Funktionen',
                command: "var { require } = ChromeUtils.import('resource://devtools/shared/Loader.jsm', {});\
                          var { BrowserToolboxLauncher } = require('resource://devtools/client/framework/browser-toolbox/Launcher.jsm');\
                          BrowserToolboxLauncher.init();",
            },

    Button und Icon alles da, nur der Aufruf schlägt fehl. Auch mit den von Dir gezeigten Änderungen dazu.

    Wie müsste der Eintrag denn genau aussehen?

    Edit:

    Danke, hat sich erledigt. Habe immer v114 versucht, da funktioniert es natürlich noch nicht, aber im Nightly schon.

  • Offenbar funktionieren alle Benutzerskripte nicht mehr im Nightly

    • FuchsFan
    • 8. Juni 2023 um 20:23
    Zitat von 2002Andreas

    Teste bitte mal mein Skript

    Das funktioniert, was ist denn da wieder los. Muss ich mal auf Spurensuche, danke, Andreas.

  • Offenbar funktionieren alle Benutzerskripte nicht mehr im Nightly

    • FuchsFan
    • 8. Juni 2023 um 20:14
    Zitat von 2002Andreas

    Hast du das so eingetragen?

    Im aktuellen Nightly:

    CSS
    // ==UserScript==
    // @include       chrome://mozapps/content/downloads/unknownContentType.xhtml
    // @charset       UTF-8
    // @version       Fx104+
    // ==/UserScript==
    (function () {
      const Cu = Components.utils;
      if (!window.FileUtils) ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs');
      if (!window.Services) Cu.import('resource://gre/modules/Services.jsm');
    
      setTimeout(function () {
        saveTo();
      }, 200);
    
      function saveTo() {
        // Config
        const dirArray = [
          [FileUtils.getDir('UChrm', []).path, 'chrome'],
          ['D:\\Download Firefox', 'Download Firefox'],
                ['D:\\Download Firefox\\Dokumente'],
                ['D:\\Download Firefox\\Bilder'],
                ['D:\\Download Firefox\\Software'], 
                ['D:\\Download Firefox\\Ablage'],
                ['D:\\Download Firefox\\Sonstiges'],
                ["C:\\", "C:"],
                ["E:\\", "E:"],
                ];
        const button = document.getElementById('unknownContentType').getButton('cancel');
        const saveTo = button.parentNode.insertBefore(document.createXULElement('button'), button);
        const saveToMenu = saveTo.appendChild(document.createXULElement('menupopup'));
    
        saveTo.classList.toggle('dialog-button');
        saveTo.label = 'Speichern nach';
        saveTo.type = 'menu';
    
    
        const css =`
          hbox.dialog-button-box button.dialog-button menupopup {
            background: gold !important;
            min-width: 220px !important;
            padding: 5px !important;
            margin: 15px 0 0 -62px !important;
            border: 3px solid dodgerblue !important;
        }
            hbox.dialog-button-box button.dialog-button menupopup menuitem{
            appearance: none !important;
            color: blue !important;
            background: #fefefc !important; 
            border: 1px solid silver !important;
            margin-top: 1px !important;
            border-radius: 7px !important;
            padding-left: 12px !important;
        }
            hbox.dialog-button-box button.dialog-button menupopup menuitem:hover {
            background: greenyellow !important;
            border: 1px solid red !important;
        }    
            hbox.dialog-button-box button.dialog-button menupopup menuitem.menuitem-iconic label.menu-iconic-text {
            color: blue !important;    
            font-size: 15px !important;
            font-weight: 600 !important;
            margin-left: 12px !important;
            margin-top: 1px !important;
        } `;
    
        const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
        sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
        dirArray.forEach(function (directory) {
          const [name, dir] = [directory[1], directory[0]];
          const mi = document.createXULElement('menuitem');
          const item = saveToMenu.appendChild(mi);
          item.setAttribute('label', (name || (dir.match(/[^\\/]+$/) || [dir])[0]));
          item.setAttribute('image', 'moz-icon:file:///' + dir + '\\');
          item.setAttribute('class', 'menuitem-iconic');
          item.addEventListener('command', function () {
            const locationtext = document.getElementById('locationtext');
            const pathFile = dir + '\\' + (locationtext ? locationtext.value : document.getElementById('location').value);
            const file = new FileUtils.File(pathFile);
            dialog.mLauncher.saveDestinationAvailable(file);
            dialog.onCancel = function () {};
            close();
          });
        });
      }
    }());
    Alles anzeigen
  • Offenbar funktionieren alle Benutzerskripte nicht mehr im Nightly

    • FuchsFan
    • 8. Juni 2023 um 19:21
    Zitat von milupo

    Was die Zeilen in deinen beiden Skripten angeht, so gilt für saveTo104+.uc.js ab Firefox 113:

    Leider funktioniert es dann nicht mehr, weil der Button nicht mehr angezeigt wird. Hat wer einen Tipp dazu?

  • Offenbar funktionieren alle Benutzerskripte nicht mehr im Nightly

    • FuchsFan
    • 8. Juni 2023 um 15:50

    milupo

    Danke für Deine Hinweise, werde ich abends dann verarbeiten, melde mich dann wieder

    Dann entschuldige ich mich noch für das Durcheinander, dass ich mit dem Script userChromeShadow.uc.js angerichtet habe.

    Es ist nämlich so, dass ich zwei Scripte vereinigt habe, dort ist auch dieses enthalten, hat aber mit der Thematik nichts zu tun, dafür ist der zweite Teil zuständig.

    Code
    // userChromeShadow.uc.js by aborix
    // 28.07.2022 FF104+ Fix: using PathUtils.join (Sören Hentzschel)
    // https://www.camp-firefox.de/forum/thema/132865-shadowroot-neue-aufruf-methode-f%C3%BCr-css-regeln-wichtiges-update-28-07-2022/?postID=1175307#post1175307
    
    (async function() {
    
       if (location != 'chrome://browser/content/browser.xhtml') return;
           
        try {
              let path = PathUtils.join(PathUtils.profileDir, 'chrome', 'userChromeShadow.css');
              let cssIn = await IOUtils.readUTF8(path);
    
              let sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
              let uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(cssIn));
              sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
        
           } catch(e) { 
            
             console.log("UserChromeShadow-Error: " + e.name + ': ' + e.message );
     
           };        
       
    })();
    
    
    // legt einen Button für userShadow.css (im Ordner chrome) an, und ruft die Datei direkt auf
    
    
    (function() {
        if (location != AppConstants.BROWSER_CHROME_URL) return;
    
        try {
            //ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
            Components.utils.import("resource:///modules/CustomizableUI.jsm");
            CustomizableUI.createWidget({
                id: "OpenCSSShadowbutton",
                defaultArea: CustomizableUI.AREA_NAVBAR,
                removable: true,
                label: "OpenCSSShadowbutton",
                tooltiptext: "userChromeShadow.css",
                onClick: function(event) {
                    
                    if (event.button != 0){
                        return;
                    }
                
                    var dir = Services.dirsvc.get('UChrm', Ci.nsIFile);
                    dir.append('userChromeShadow.css');
                    // dir.append('Test.css');
                    dir.launch();
        
                },
                onCreated: function(aNode) {
                    aNode.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABqUlEQVQokWP89OkTAymABc76+fb99YnzXuw7xsrP67RpLiMzMz4NXx8/2+eV8OXhE05JMW45KQYGRgI2nM6r//r4qemEeuX4ELjZf7//+PX+I6eUOLIGJgYGhm9PXrzYf1wuyEslKRyu+sW+Yxs0HDdqO3958ARDw9Pn///9EzbRRZY4XdjIwMCgXZbJKSmGroFdSJCBgeHL/ccI4f//v9x/LOFgqVuZzczOxvD//49Xb/7//QvVwKMkJ6Ctdm/xurdnLqF4kImRgYHh9+cv+3yTNqg53Ji8AKqBkZnJdEI9AwPDHvfYQ+HZ13pn/f//H67r5tRFLw+dlPFxFnewhGpgYGAQMTd03r5QxNzgxb6jN6ct/v/nL1zD5zsPmNjYzGe0CRloMSBHnJChjvO2hb8/f2VkYvzz5SsDAwMTKwsDA8N/BgZGRgZGRiaEp5EBKy/3wzXbNht6MjAwSDrbMGAAFixCXJx86koKod4KYT5EaZAP9ZYP9YZzf3/6wsDIyMjMhFMDHHx79vJQaOaHKzfF7S2YOdix+wEF/P/PyMoiH+JlOacTLgYAnMqRpg2c0p8AAAAASUVORK5CYII=)';
                    return aNode;
                }
            });
        } catch (e) {
            Components.utils.reportError(e);
        };
    
    })();
    Alles anzeigen
  • Offenbar funktionieren alle Benutzerskripte nicht mehr im Nightly

    • FuchsFan
    • 8. Juni 2023 um 09:47
    Zitat von milupo

    Wenn du möchtest, könntest du deine Skripte mal nach eingebundenen JSM-Modulen durchsuchen.

    Im Script saveTo104+.uc.js :

    (function () {

    const Cu = Components.utils;

    if (!window.FileUtils) Cu.import('resource://gre/modules/FileUtils.jsm');

    if (!window.Services) Cu.import('resource://gre/modules/Services.jsm');

    in den Scripten userChromeShadow.uc.js und BackupProfile.uc.js :

    Components.utils.import("resource:///modules/CustomizableUI.jsm");

  • Offenbar funktionieren alle Benutzerskripte nicht mehr im Nightly

    • FuchsFan
    • 7. Juni 2023 um 22:14

    milupo

    Ich danke Dir, milupo, das habe ich gleich mal umgesetzt, und es funktioniert. Hier mit dem Script von aborix :

    Code
    //  Browser-Werkzeuge.uc.js
    //  Author @aborix
    
    (function() {
        if (location != AppConstants.BROWSER_CHROME_URL) return;
    
        try {
            CustomizableUI.createWidget({
                id: 'browser-toolbox-button',
                defaultArea: CustomizableUI.AREA_NAVBAR,
                label: 'Browser-Werkzeuge',
                tooltiptext: 'Browser-Werkzeuge',
                onCommand: onCommand,
                onCreated: function(button) {
                    button.style.listStyleImage = 'url("file:///C:/FoxIcons/browserwerkzeuge.png")';
                }
            });
        } catch(e) {
            return;
        };
    
        function onCommand(event) {
            var document = event.target.ownerDocument;
            if (!document.getElementById('menu_browserToolbox')) {
            let { require } = ChromeUtils.importESModule("resource://devtools/shared/loader/Loader.sys.mjs", {});
                require("devtools/client/framework/devtools-browser");
            };
            document.getElementById('menu_browserToolbox').click();
        };
    
    })();
    Alles anzeigen
  • About Seiten mit CSS Codes anpassen

    • FuchsFan
    • 17. Mai 2023 um 16:36
    Zitat von Endor

    Darf ich diesen Code von Dir wieder als Alternative
    im entsprechenden Thread verwenden?

    Ohne Frage, Du darfst, 99% davon gehören Dir. ;) :)

  • About Seiten mit CSS Codes anpassen

    • FuchsFan
    • 17. Mai 2023 um 16:31

    Endor

    Das sieht gut aus, Endor.

  • About Seiten mit CSS Codes anpassen

    • FuchsFan
    • 17. Mai 2023 um 16:26

    Wie schon gesagt, im Nightly habe ich meinen Code schon geändert. Sieht dann damit so aus:

    Hier dann der Code dazu (zum Vergleich):

    CSS
    @namespace url(http://www.w3.org/1999/xhtml);
    @-moz-document url-prefix(about:support) {
    
    
    body::before {content: "Design by Endor und FuchsFan  01.2021";
    margin-left: 0px;
    font-size: 16px;
    color: grey;}
    
    
    /* gesamte Hintergrund */
    html{
    background: gainsboro !important; 
    }
    
    /* Informationen zur Fehlerbehebung */
    body > h1:nth-child(2){ 
    margin-top: 10px !important;
    }
    
    
    body{
    margin-top: 15px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 1200px !important; 
    border: 5px solid dodgerblue! important;
    padding: -60px -60px !important;
    background: #f8f8ff !important;
    border-width:  8px !important;
    box-shadow: 15px 15px 0px 0px #fdd342 inset !important;
    border-style: double  !important;
    }
    
    /* Button - Nightly bereinigen - einblenden */
    #reset-box {
        display: block !important;
    }
    
    .action-box{
    width: 30% !important;
    border-radius:24px !important;
    border: 2px solid coral! important;
    margin-top: -85px !important;
    }
    .action-box {
    background: #FDF5E6 !important;
    }
    
    #contents{
        margin-top: -50px !important;
    }
    
    
    #reset-box, #safe-mode-box {
    margin-left: 11px !important;
    }
    
    
    #clear-startup-cache-box > h3:nth-child(1){
    margin-left: 17px !important;}
    
    
    td, th{
    padding-left: 15px !important;
    }
    
    
    #copy-raw-data-to-clipboard {
    min-width: 330px !important;
    }
    
    
    #clear-startup-cache-box > h3,
    #safe-mode-box > h3, #reset-box > h3, h2, h1 {
    color: #057A7A !important;
    }
    
    
    #prefs-user-js-section > h3, h2 {
    margin-left: 8px !important;
    color: red !important;
    }
    
    
    #safe-mode-box > h3, #reset-box > h3 {
    margin-left: 4px !important;
    }
    
    
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table,
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr > td {
    border: none! important;
    }
    
    
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr > td:hover,
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr:hover {
    border: none! important;
    }
    
    
    #graphics-decisions-tbody > tr:nth-child(n+2) > td:nth-child(2) > table:nth-child(1) {
    margin-left: -15px!important;
    }
    
    
    #graphics-decisions-tbody > tr:nth-child(n+1) > td:nth-child(2) > table:nth-child(1),
    #graphics-decisions-tbody > tr:nth-child(n+1) > td:nth-child(2) > table:nth-child(1) > tr:nth-child(1) {
    border: none! important;
    }
    
    
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr > td:hover,
    #graphics-decisions-tbody > tr:nth-child(n+1) > td > table > tr:hover {
    border: none! important;
    }
    
    
    #media-input-devices-tbody > tr:nth-child(n+1) > td:nth-child(2),
    #media-output-devices-tbody > tr:nth-child(n+1) > td:nth-child(2){
    word-break: break-all !important;
    min-width: 10em !important;}
    
    
    td {
    background: #FFFFF0 !important;
    }
    td:hover {
    background: #ffeb99 !important;
    }
    
    
    th {
    background-color: #ee7621 !important;
    }
    th:hover {
    background-color: #b54f06 !important;
    }
    
    /* Externe Prozesse */
    #remoteprocesses-row > td:nth-child(2) > a:nth-child(1){
    -moz-appearance:none!important;
    margin-left: -4px !important;
    background: #F0F0F0 url("..//icons/Bild125.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:50px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 3px!important;
    border-radius:20px!important;}
    
    #remoteprocesses-row > td:nth-child(2) > a:nth-child(1):hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild125.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 3px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    #remoteprocesses-row,
    #remoteprocesses-row > th:nth-child(1),
    #remoteprocesses-row > td:nth-child(2) {
        padding-bottom: 10px !important; 
        padding-top: 10px !important;}
    
    /* Rohdaten in die Zwischenablage kopieren */
    #copy-raw-data-to-clipboard{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild73.png")no-repeat !important;
    padding-left:30px!important;
    padding-bottom: 5px!important;
    background-position:14px 4px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:20px!important;
    margin-right:10px!important;
    color:black !important;}
    
    
    #copy-raw-data-to-clipboard:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild73.png")no-repeat !important;
    padding-left:30px!important ;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    background-position:14px 4px!important;}
    
    
    /* Text in Zwischenablage kopieren */
    #copy-to-clipboard {
        min-width: 290px !important;}
    
    #copy-to-clipboard{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild74.png")no-repeat !important;
    padding-left:30px!important;
    padding-bottom: 5px!important;
    background-position:14px 4px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:20px!important;
    color:black !important;}
    
    
    #copy-to-clipboard:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild74.png")no-repeat !important;
    padding-left:30px!important ;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    background-position:14px 4px!important;}
    
    /* Update-Chronik anzeigen */
    #show-update-history-button{min-width: 220px !important;}
    
    #show-update-history-button{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild75.png")no-repeat !important;
    padding-left:19px!important;
    padding-bottom: 3px!important;
    padding-top: 1px!important;
    background-position:8px 5px!important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:8px!important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    border-radius:20px!important;}
    
    #show-update-history-button:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild75.png")no-repeat !important;
    background-position:8px 5px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    /* Update-Ordner */
    #update-dir-button{
    min-width: 160px !important;}
    
    #update-dir-button{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild76.png")no-repeat !important;
    padding-left:20px!important;
    padding-bottom: 3px!important;
    padding-top: 0px!important;
    background-position:8px 5px!important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    border-radius:20px!important;}
    
    
    #update-dir-button:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild76.png")no-repeat !important;
    background-position:8px 5px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    
    /* Profilordner */
    #profile-dir-button {
    min-width: 160px !important;}
    
    #profile-dir-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild76.png")no-repeat !important;
    padding-left:15px!important;
    padding-right:10px!important;
    background-position:8px 4px!important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    border-radius:20px!important;}
    
    #profile-dir-button:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild76.png")no-repeat !important;
    padding-left:15px!important ;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    background-position:8px 4px!important;}
    
    /* Nightly bereinigen */
    #reset-box-button{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild77.png")no-repeat !important;
    padding-left:40px!important;
    padding-right: 20px !important;
    padding-bottom: 4px!important;
    background-position:14px 5px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:20px !important;
    color:black !important; }
    
    
    #reset-box-button:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild77.png")no-repeat !important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    background-position:14px 5px!important;}
    
    /* Fehlerbehebungsmodus... */
    #restart-in-safe-mode-button{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild78.png")no-repeat !important;
    padding-left:40px!important;
    padding-right:20px!important;
    background-position:14px 5px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:20px !important;
    color:black !important; }
    
    
    #restart-in-safe-mode-button:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild78.png")no-repeat !important;
    background-position:14px 5px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    /* Start-Cache löschen... */
    #clear-startup-cache-button{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/database_delete.png")no-repeat !important;
    padding-left:40px!important;
    padding-right:20px!important;
    margin-left: 10px !important;
    background-position:14px 6px!important;
    font-size:14.0px!important;
    border-style: outset !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-width:2px !important;
    border-radius:20px !important;
    color:black !important; }
    
    
    #clear-startup-cache-button:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/database_delete.png")no-repeat !important;
    background-position:14px 6px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    
    #supportLink{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild52.gif") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:13px!important;
    padding-left:29px!important;
    padding-bottom: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width: 2px !important;
    background-position:6px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    #supportLink:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild52.gif") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:13px!important;
    padding-left:29px!important;
    background-position:6px 2px!important;
    border-radius:14px!important;
    border-style: outset !important;
    border-width:2px !important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;}
    
    
    a[href="about:plugins"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14.0px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 0px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    min-height: 28px !important;
    line-height: 2.2 !important;}
    
    a[href="about:plugins"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    a[href="about:buildconfig"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14.0px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 0px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    a[href="about:buildconfig"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    /* Alle Absturzberichte */
    #crashes-allReportsWithPending{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:15px!important;
    padding-left:35px!important;
    padding-bottom: 5px !important;
    padding-top: 2px !important;
    max-width: 125px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;}
    
    
    #crashes-allReportsWithPending:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:15px!important;
    padding-left:35px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;}
    
    
    
    
    
    
    
    
    a[href="about:serviceworkers"]{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 0px !important;
    max-width: 125px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    a[href="about:serviceworkers"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-left:35px!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    a[href="about:memory"]{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14.0px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 0px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    a[href="about:memory"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    a[href="about:processes"]{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14.0px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 0px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 3px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    a[href="about:processes"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    #prefs-user-js-link{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:15px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 0px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;}
    
    
    #prefs-user-js-link:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important; 
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:15px!important;
    padding-left:35px!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    a[href="about:third-party"]{
        appearance:none!important;
        background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        margin-left: -3px !important;
        margin-top: 3px !important;
        font-size:14px!important;
        text-decoration:none!important;
        padding-right:20px!important;
        padding-left:35px!important;
        padding-bottom: 2px !important;
        padding-top: 0px !important;
        border-left-color:  lightblue!important;
        border-top-color:  lightblue!important;
        border-right-color:  dodgerblue!important;
        border-bottom-color:  dodgerblue!important;
        border-style: outset !important;
        border-width:2px !important;
        background-position:8px 2px!important;
        border-radius:14px!important;
        line-height: 2.2 !important;}
        
    a[href="about:third-party"]:hover{
        appearance:none!important;
        background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        background-position:8px 2px!important;
        border-radius:14px!important;
        border-left-color:  #bbddff !important;
        border-top-color:  #bbddff !important;
        border-right-color:  #11508d !important;
        border-bottom-color:  #11508d !important;
        border-style: outset !important;
        border-width:2px !important;}
    
    
    a[href="about:performance"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 0px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    a[href="about:performance"]:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    a[href="about:profiles"]{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:brown!important;
    font-weight: 600 !important;
    margin-left: -3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 4px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 3px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    a[href="about:profiles"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 3px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    a[href="about:studies"]{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 6px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 0px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    a[href="about:studies"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    #policies-status-row td#policies-status a{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: -3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:25px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    line-height: 2.2 !important;}
    
    
    #policies-status-row td#policies-status a:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 2px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}    
    
    
    #verify-place-integrity-button{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 4px!important;
    border-radius:20px!important;}
    
    
    #verify-place-integrity-button:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 4px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    #place-database-stats-toggle{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 4px!important;
    border-radius:20px!important;}
    
    
    #place-database-stats-toggle:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild3.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 4px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}    
    
    
    button[data-l10n-id="reset-on-next-restart"]{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild85.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 5px!important;
    border-radius:20px!important;}
    
    
    button[data-l10n-id="reset-on-next-restart"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild85.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 5px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    button[data-l10n-id="gpu-process-kill-button"]{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild117.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 5px!important;
    border-radius:20px!important;}
    
    
    button[data-l10n-id="gpu-process-kill-button"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild117.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 5px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    button[data-l10n-id="gpu-device-reset-button"]{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild21.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:40px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 5px!important;
    border-radius:20px!important;}
    
    
    button[data-l10n-id="gpu-device-reset-button"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild21.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 6px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    button[id="enumerate-database-button"]{
    -moz-appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild7.png") no-repeat !important;
    color:black!important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:40px!important;
    padding-left:35px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:8px 6px!important;
    border-radius:20px!important;}
    
    
    button[id="enumerate-database-button"]:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/Bild7.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:8px 5px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    #support-printing-clear-settings-button{
    -moz-appearance:none!important;
    margin-left: -4px !important;
    background: #F0F0F0 url("..//icons/printer_delete.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:20px!important;
    padding-left:40px!important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    border-left-color: lightblue!important;
    border-top-color: lightblue!important;
    border-right-color: dodgerblue!important;
    border-bottom-color: dodgerblue!important;
    border-style: outset !important;
    border-width:2px !important;
    background-position:12px 6px!important;
    border-radius:14px!important;}
    
    
    #support-printing-clear-settings-button:hover{
    -moz-appearance:none!important;
    background: #B2EDFA url("..//icons/printer_delete.png") no-repeat !important;
    color:black!important;
    font-size:14px!important;
    text-decoration:none!important;
    background-position:12px 6px!important;
    border-radius:14px!important;
    border-left-color: #bbddff !important;
    border-top-color: #bbddff !important;
    border-right-color: #11508d !important;
    border-bottom-color: #11508d !important;
    border-style: outset !important;
    border-width:2px !important;}
    
    
    
    }
    Alles anzeigen

    Deinen neuen Code teste ich auch gleich mal, melde mich wieder.

  • About Seiten mit CSS Codes anpassen

    • FuchsFan
    • 17. Mai 2023 um 16:01

    Endor

    Sei gegrüßt, Endor! :)

    Ab Version 113 (damals noch Nightly) beobachte ich about:support, wo sich im oberen Teil einige Änderungen ergeben haben.

    Kannst Du das bitte auch mal in Deiner originalen Version überprüfen. Für mich habe ich das im Nightly schon geändert.

  • Symbole für Pop-up

    • FuchsFan
    • 17. Mai 2023 um 15:55
    Zitat von 2002Andreas

    das Kontextmenü erscheint wohl, aber man kann das Vides dann nicht speichern:

    Danke, Andreas, eventuell finden wir das noch raus. :)

  • Symbole für Pop-up

    • FuchsFan
    • 17. Mai 2023 um 15:45
    Zitat von 2002Andreas

    Dazu musst du aber erst einen config Eintrag ändern

    Der heißt wie, bitte?

  • Gibt es eine Version vom AddOnLister für Fx?

    • FuchsFan
    • 16. Mai 2023 um 17:17
    Zitat von Dharkness

    hier taucht es nämlich nirgendwo auf?

    Hmmm :/

    Dann stelle ich es hier mal rein:

    JavaScript
    // ==UserScript==
    // @name           AddOnLister.uc.js
    // @compatibility  Firefox 36.*, 37.*, 60.*
    // @include        main
    // @version        1.0.20180512
    // ==/UserScript==
    
    var ADONLI = {
    
    // ----- Start Konfiguration
        // folgende Add-ons nicht auflisten Beispiel: ["InfoLister","AddOnLister.uc.js"]
        BLACKLIST:            [],
        // einige Tests der Konfiguration durchführen (true oder false)?
        CHECKCONFIG:        true,
        // ans eigene System anpassen - Pfad mit Verzeichnistrenner abschliessen. Unter Windows den \ bitte verdoppeln
        EXPORTPATH:            "C:\\Users\\XXXX\\Documents\\Firefox\\",
        //Dateinamen ohne(!) Erweiterung eingeben - diese wird weiter unten im Wert "fileext" pro Ausgabeformat definiert
        EXPORTFILE:            "addonlister",
        // Ausgabeformat bbcode, html oder custom
        FORMAT:                "bbcode",
        // Erstellungsdatum anzeigen (true oder false)
        SHOWDATE:            true,
        // Useragent anzeigen (true oder false)
        SHOWUSERAGENT:        true,
        // Versuche folgende userChromeJS-Skripte *nicht* mit GitHub zu verlinken, weil nicht gewünscht oder möglich. ["*"] für gar keine Verlinkung
        GITHUBBLACKLIST:    ["about-config.uc.js", "about-plugins.uc.js" ,"AddonsSidebar.uc.xul", "autopopupablepatch1.uc.js", "autopopupablepatch3.uc.js", "Chronik-Lesezeichen.uc.js", "Close-other-tabs.uc.js", "ContextHistory.uc.xul", "CustomAppMenu.uc.js", "Download-button.uc.js", "Einstellungen-Customize.uc.js", "element_inspector.uc.js", "Entwickler-Werkzeug.uc.js", "expandsidebar40.uc.js", "favicon-about-plugins.uc.js", "feedbutton-urlbar.uc.js",    "Fehlerkonsole.uc.js", "Link-per-Email.uc.js", "liste-leeren.uc.js", "memorymonitor.uc.js", "open-folder.uc.js", "OpenDownloadFolderButtonM.uc.js", "OpenLibraryContextMenu.uc.xul", "Preferences.uc.js", "RestartFirefox_plus.uc.js", "savefoldermodoki.uc.xul", "scrollTotop-bottom.uc.js", "searchplugin-4-aboutconfig.uc.js", "speedupErrorConsole.uc.js", "Statusbar-Date.uc.js", "Stylish-Fenster-Sidebar.uc.js", "Tabmixplus-Einstelungen-in-Tabkontext.uc.js", "Tabmixplus-Options.uc.js", "ucjs_PrivateToolMenus-APP.uc.js", "ucjs_statusbar_zoom_panel_1.3.uc.js", "WebDeveloper-Menu.uc.js"],
        // In der folgenden Zeile  den Pfad zum Texteditor eintragen (unter Ubuntu 10.04 z.B.: '/usr/bin/gedit'). Bei Fehleintrag wird view_source.editor.path ausgelesen:
        TEXTOPENEXE :        'C:\\Program Files (x86)\\Notepad++\\notepad++.exe',
        // Aufzulistende Add-On-Typen festlegen - möglich sind: ["extension","theme","plugin","dictionary","service","userstyle","greasemonkey-user-script","userchromejs"]
        WHICHTYPES:            ["extension","theme","plugin","dictionary","userchromejs"],
    // ----- Ende Konfiguration
    
    // ----- Start Expertenkonfiguration
        ICON_URL:    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACGUlEQVR42mL8//8/AzJYtWy+G5ByB2IrINaECl8H4mNAvDMsKnEXsnqAAGIEGXDv1nmGM2cuKAD5OUCcAcTcDNjBVyCeAcRTTEwMHiipGTIABBALSBSquRmIY5iZmT8ICvI/FxQU4OHm5mID6/r67df79x++vH//kfPv37/FQCFxoJ5aoAEPAAKIBWoyyOYYdnb2Z9LSkqxCQgKSyNby8/OxAzEvH9+H10+fPn/28+fPGKDwSyAuAQggZi01eZCfu4E2f5OVlWYAahaFaTx95jyDnaM3Ax8fL4OhgS4DJycHNysr649Pnz7/Bnrd/OrlC2cAAogJGmDcQGd/Q9YMAv8YORmSkpIY+Hh54GIgNSC10HByBwggFmhoMwD9LIgeYrKSAgz+Ps4MOtqaKOIgtW/evAMxrQACiAkWVcAAY0JWBHQmg7d/ONgb6ABJrSZAADHhiC6G3Xv2gw1xdXFgwAcAAogJmkhAUfUPWeL+w8cMamoqDDLSUgxMbKi+Q1J7HSCAmKApjAEYz++RFV2/fouBg52dYeXqDQzHj+xGMQBJ7TGAAAIZsBNkKDCRcL179+E1TJGXpysDCysbw4dPPxjMzUzgmkFqQGqhqXInQACBkzIw/fcAOcVICUkUm39BmoEJ6TcwIUkBub3AfFECEECwlDgFlDxBKezhw8cfPn36hC8pgwxfAtXDABBAFGcmgABipDQ7AwQYAOqo3UvZE3l2AAAAAElFTkSuQmCC",
        MYTPLS:{
            'html':    //für Darstellung als vollständiges html5-Dokument
                {
                'fileext':'html',
                'opendatauri': false,
                'intro':'<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n'
                    +'<title>Meine Firefox-Informationen</title>\n</head>\n<body>\n<h1>Meine Firefox-Informationen</h1>\n',
                'tpllastupd':'<div>\nLetzte Aktualisierung: %%lastupd%%\n</div>',
                'tpluseragent':'<div>\nUser Agent: %%useragent%%\n</div>',
                'tpladdongrp_title':{
                                    'extension':'<div id="extensions">\n<h2>Erweiterungen <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'theme':'<div id="themes">\n<h2>Themes <small>(%%count%%)</small></h2>',
                                    'plugin':'<div id="plugins">\n<h2>Plugins <small>(%%count%%)</small></h2>',
                                    'dictionary':'<div id="dictionaries">\n<h2>Wörterbücher <small>(%%count%%)</small></h2>',
                                    'service':'<div id="services">\n<h2>Dienste <small>(%%count%%)</small></h2>',
                                    'userstyle':'<div id="userstyles">\n<h2>Userstyles <small>(%%count%%)</small></h2>',
                                    'greasemonkey-user-script':'<div id="gmscripts">\n<h2>Greasemonkey <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'userchromejs':'<div id="userchromejs">\n<h2>userChromeJS <small>(%%count%%)</small></h2>'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'<p>Greasemonkey-Skripte können Webseiten um diverse Funktionen erweitern.</p>',
                                    'userchromejs':'<p>Durch die Erweiterung <a href="http://userchromejs.mozdev.org/">userChromeJS</a> eingebundene Skripte ergänzen den Firefox um diverse Funktionen.</p>'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'<ul>'
                                    },
                'tpladdon':'<li class="%%class%%"><a href="%%homepageURL%%">%%name%%</a> %%version%%: %%description%%%%disabled%%</li>\n',
                'tpladdon_without_url':'<li class="%%class%%">%%name%% %%version%%: %%description%%%%disabled%%</li>\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':'<small><span style="color:#ff0000;">[deaktiviert]</span></small>',
                'tpladdongrp_list_outro':'</ul>\n',
                'tpladdongrp_outro':'</div>\n\n',
                'outro':'</body>\n</html>'
                },
            'bbcode':    //für Postings in Foren, die bbcode unterstützen
                {
                'fileext':'txt',
                'opendatauri': true,
                'intro':'Meine Firefox-Informationen\n\n',
                'tpllastupd':'Letzte Aktualisierung: %%lastupd%%',
                'tpluseragent':'User Agent: %%useragent%%\n',
                'tpladdongrp_title':{
                                    'extension':'[b]Erweiterungen[/b] (aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)',
                                    'theme':'[b]Themes[/b] (%%count%%)',
                                    'plugin':'[b]Plugins[/b] (%%count%%)',
                                    'dictionary':'[b]Wörterbücher[/b] (%%count%%)',
                                    'service':'[b]Dienste[/b] (%%count%%)',
                                    'userstyle':'[b]Userstyles[/b] (%%count%%)',
                                    'greasemonkey-user-script':'[b]Greasemonkey[/b] (aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)',
                                    'userchromejs':'[b]userChromeJS[/b] (%%count%%)'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'Greasemonkey-Skripte können Webseiten um diverse Funktionen erweitern.',
                                    'userchromejs':'Durch die Erweiterung [url=http://userchromejs.mozdev.org/]userChromeJS[/url] eingebundene Skripte ergänzen den Firefox um diverse Funktionen.'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'[list]'
                                    },
                'tpladdon':'[*][url=%%homepageURL%%]%%name%%[/url] %%version%%: %%description%%%%disabled%%\n',
                'tpladdon_without_url':'[*]%%name%% %%version%%: %%description%%%%disabled%%\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':' [color=red][deaktiviert][/color]',
                'tpladdongrp_list_outro':'[/list]\n',
                'tpladdongrp_outro':'\n',
                'outro':''
                },
            'custom':    //Beispiel - für Darstellung als "include" in einem anderen (x)html-Dokument
                {
                'fileext':'txt',
                'opendatauri': true,
                'intro':'<p id="bsbuttons">\n'
                    +'<a class="tab active" href="http://www.ardiman.de/sonstiges/fxconfig.html?mode=windows">Windows 7</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html?mode=ubuntu">XUbuntu</a>\n'
                    +'</p>\n'
                    +'<div id="buttons">\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#extensions">Erweiterungen</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#themes">Themes</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#plugins">Plugins</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#dictionaries">Wörterbücher</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#services">Dienste</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#userstyles">Userstyles</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#gmscripts">Greasemonkey</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#userchromejs">userChromeJS</a>\n'
                    +'<br/></div>\n',
                'tpllastupd':'<div class="lastupd">\nLetzte Aktualisierung: %%lastupd%%\n</div>',
                'tpluseragent':'<div class="useragent">\nUser Agent: %%useragent%%\n</div>',
                'tpladdongrp_title':{
                                    'extension':'<div id="extensions" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_extensions.png" />Erweiterungen <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'theme':'<div id="themes" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_themes.png" />Themes <small>(%%count%%)</small></h2>',
                                    'plugin':'<div id="plugins" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_plugins.gif" />Plugins <small>(%%count%%)</small></h2>',
                                    'dictionary':'<div id="dictionaries" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_dictionaries.png" />Wörterbücher <small>(%%count%%)</small></h2>',
                                    'service':'<div id="services" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_services.png" />Dienste <small>(%%count%%)</small></h2>',
                                    'userstyle':'<div id="userstyles" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_styles.png" />Userstyles <small>(%%count%%)</small></h2>',
                                    'greasemonkey-user-script':'<div id="gmscripts" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_monkey.png" />Greasemonkey <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'userchromejs':'<div id="userchromejs" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_javascript.gif" />userChromeJS <small>(%%count%%)</small></h2>'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'<p>Einige Skripte stammen direkt von mir (s. auch <a href="http://www.ardiman.de/sonstiges/fxconfig/gmskripte.html">Greasemonkey-Skripte</a> bzw. <a class="extlink" href="https://openuserjs.org/users/ardiman/scripts" rel="nofollow">https://openuserjs.org/users/ardiman/scripts</a>), andere wurden nur geringf&uuml;gig angepasst.</p>',
                                    'userchromejs':'<p id="fxcuclisteintro">Durch die Erweiterung userChromeJS eingebundene Skripte erg&auml;nzen den Firefox um diverse Funktionen.</p>'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'<ul>',
                                    'userchromejs':'<ul id="fxcucliste">'
                                    },
                'tpladdon':'<li class="%%class%%"><a href="%%homepageURL%%" rel="nofollow" class="extlink">%%name%%</a> %%version%%: %%description%%%%disabled%%</li>\n',
                'tpladdon_without_url':'<li class="%%class%%">%%name%% %%version%%: %%description%%%%disabled%%</li>\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':' <small>[deaktiviert]</small>',
                'tpladdongrp_list_outro':'</ul>\n',
                'tpladdongrp_outro':'</div>\n\n',
                'outro':''
                }
        },
    // ----- Ende Expertenkonfiguration
    
        MYSTOR: {},
        FILEUTILS: Cu.import("resource://gre/modules/FileUtils.jsm").FileUtils,
    
        init: function() {
            // legt verschiebbaren Button und Menü unter Extras an
            // Button
            if (location != "chrome://browser/content/browser.xul") return;
            try {
                CustomizableUI.createWidget({
                    id: 'adonli-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 attributes = {
                            id: 'adonli-button',
                            class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                            removable: 'true',
                            label: 'AddonLister',
                            tooltiptext: 'AddOnLister starten (Erstellung im Format »'+ADONLI.FORMAT+'«):\nLinksklick öffnet Ergebnis im Editor\nMittelklick öffnet Ergebnis als Tab im Browser\nRechtsklick exportiert die Liste ohne Anzeige im Editor oder Browser',
                            style: 'list-style-image: url(' + ADONLI.ICON_URL + ')',
                            onclick: 'event.preventDefault(); return ADONLI.launch(event.button, \"' + ADONLI.FORMAT +'\");'
                        };
                    for (var a in attributes)
                        toolbaritem.setAttribute(a, attributes[a]);
                        return toolbaritem;
                    }
                });
            } catch(e) { };
            // Menü
            function addNode(parentId, type, attributes) {
                let node = document.createElement(type);
                for (let a in attributes) {
                    node.setAttribute(a, attributes[a]);
                };
                document.getElementById(parentId).appendChild(node);
            };
            addNode("menu_ToolsPopup", "menu", {
                id: "menu_ucjsAddonLister",
                accesskey: "L",
                label: "AddonLister",
                class: "menu-iconic",
                style: "list-style-image: url(" + ADONLI.ICON_URL + ")"
            });
            document.getElementById("menu_ToolsPopup")
                .insertBefore(document.getElementById("menu_ucjsAddonLister"),
                              document.getElementById("menu_openAddons").nextSibling);
            addNode("menu_ucjsAddonLister", "menupopup", {
                id: "menu_ucjsAddonLister-popup"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-bbcode",
                accesskey: "B",
                label: "BBCODE",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-bbcode", "menupopup", {
                id: "menu_ucjsAddonLister-popup-bbcode"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_editor-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'bbcode\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_browser-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'bbcode\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_write-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'bbcode\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-html",
                accesskey: "H",
                label: "HTML",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-html", "menupopup", {
                id: "menu_ucjsAddonLister-popup-html"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_editor-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'html\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_browser-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'html\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_write-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'html\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-custom",
                accesskey: "C",
                label: "Custom",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-custom", "menupopup", {
                id: "menu_ucjsAddonLister-popup-custom"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_editor-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'custom\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_browser-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'custom\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_write-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'custom\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_editor",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'" + ADONLI.FORMAT + "\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_browser",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'" + ADONLI.FORMAT + "\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_write",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'" + ADONLI.FORMAT + "\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
        },
    
        launch: function(e,format) {
            // ruft alle noetigen Funktionen nach Klick auf Toolbarbutton auf
            var ctrlConf = "";
            if (this.CHECKCONFIG) ctrlConf = this.configCheck();
            if (ctrlConf === "") {
                var expfile =  this.EXPORTPATH + this.EXPORTFILE + "." + this.MYTPLS[format].fileext;
                this.getOtherValues();
                this.resetStor();
                this.getAddons();
                if (this.WHICHTYPES.indexOf('userchromejs') !== -1) this.getScripts();
                var result = this.writeAddons(expfile,format);
                this.showAddons(e,this.TEXTOPENEXE,expfile,format,result);
            } else {
                alert ("Lt. Konfigurationstest des AddonListers muss folgendes kontrolliert werden:\n" + ctrlConf);
            }
        },
    
        configCheck: function() {
            var fehler = "";
            // Kontrolle des Pfades
            if (this.EXPORTPATH.substr(-1) !== "\\" && this.EXPORTPATH.substr(-1) !== "/") fehler += "\n - Der Pfad in EXPORTPATH endet nicht mit einem Verzeichnistrenner.";
            if (!this.fileExists(this.EXPORTPATH)) fehler += "\n - Der Pfad »" + this.EXPORTPATH + "« in EXPORTPATH existiert nicht.";
            // Kontrolle des Dateinamens
            if (this.EXPORTFILE.indexOf(".") !== -1) fehler += "\n - Der Dateiname in EXPORTFILE sollte keinen Punkt enthalten (ohne Erweiterung sein).";
            if (this.EXPORTFILE.length === 0) fehler += "\n - Es wurde kein Dateiname in EXPORTFILE hinterlegt.";
            // Kontrolle des Formates
            var formate = ["bbcode", "custom", "html"];
            if (formate.indexOf(this.FORMAT) === -1) fehler += "\n - Ungültiges FORMAT »" + this.FORMAT + "«.";
            // Kontrolle des Editors
            if (!this.fileExists(this.TEXTOPENEXE)) {
                var pref = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
                if (!this.fileExists(pref.getCharPref("view_source.editor.path"))) {
                    fehler += "\n - Der in TEXTOPENEXE und about:config [view_source.editor.path] hinterlegte Editor kann nicht gefunden werden.";
                }
            }
            // Kontrolle der gewünschten Addon-Typen, folgende sind momentan gültig:
            var addontypes = ["extension","theme","plugin","dictionary","service","userstyle","greasemonkey-user-script","userchromejs"];
            var w;
            for (w = 0; w < this.WHICHTYPES.length; w++) {
                if (addontypes.indexOf(this.WHICHTYPES[w]) === -1) {
                    fehler += "\n - In WHICHTYPES wurden ein oder mehrere unbekannte Add-on-Typen (z.B. »" + this.WHICHTYPES[w] + "«) gewählt.";
                    break;
                }
            }
            return fehler;
        },
    
        fileExists: function(mypath) {
            // kontrolliert, ob Pfad oder Datei gültig/vorhanden ist
            var file = new this.FILEUTILS.File(mypath);
            return file.exists();
        },
    
        resetStor: function() {
            // setzt das JSON-Object (bzw. die "Listen" darin) zurueck
            var h;
            for (h = 0; h < this.WHICHTYPES.length; h++) {
                this.MYSTOR[this.WHICHTYPES[h]] = [];
            }
        },
    
        getOtherValues: function() {
            // speichert momentan Auswertungsdatum und useragent im JSON-Object
            var options;
            options = {weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric", hour12: false};
            if (this.SHOWDATE) this.MYSTOR["lastupd"] = new Date().toLocaleDateString("de-DE", options);
            if (this.SHOWUSERAGENT) this.MYSTOR["useragent"] = window.navigator.userAgent;
        },
    
        getAddons: function() {
            // speichert die gewaehlten Addons (s. WHICHTYPES) im JSON-Object
            var i, x, j, iAo, Addons, added, storedItems;
            AddonManager.getAddonsByTypes(this.WHICHTYPES).then(function(addonlist) {
                Addons = addonlist;
            });
            var thread = Cc['@mozilla.org/thread-manager;1'].getService().mainThread;
            while (Addons === void(0)) {
                thread.processNextEvent(true);
            }
            // Schleife ueber Addons
            for (i = 0; i < Addons.length; i++) {
                iAo = Addons[i];
                added = false;
                storedItems = this.MYSTOR[iAo.type].length;
                // nächste Aktionen nur, wenn Addon *nicht* in BLACKLIST steht
                if (this.BLACKLIST.indexOf(iAo.name) === -1) {
                    // Ablage gleich sortiert vornehmen
                    for (j = 0; j < storedItems; j++) {
                        if (iAo.name.toLowerCase() < this.MYSTOR[iAo.type][j].name.toLowerCase()) {
                            this.MYSTOR[iAo.type].splice(j,0,{ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
                            added = true;
                            break;
                        }
                    }
                    if (!added) this.MYSTOR[iAo.type].push({ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
                }
            }
        },
    
        getScripts: function() {
            // speichert ggf. im Chrome-Ordner vorhandene uc.js und uc.xul-Dateien im JSON-Object
            var hp, j, storedItems, added;
            // Suchmuster, also die Dateierweiterungen uc.js und uc.xul
            let extjs = /\.uc\.js$/i;
            let extxul = /\.uc\.xul$/i;
            let aFolder = Cc["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("UChrm", Components.interfaces.nsIFile);
            // files mit Eintraegen im Chrome-Ordner befuellen
            let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
            // Ordner bzw. Dateien durchlaufen und kontrollieren, ob gesuchte Dateien dabei sind
            while (files.hasMoreElements()) {
                let file = files.getNext().QueryInterface(Ci.nsIFile);
                // keine gewuenschte Datei, deshalb continue
                if ((!extjs.test(file.leafName) && !extxul.test(file.leafName)) || this.BLACKLIST.indexOf(file.leafName) !== -1) continue;
                // uc.js bzw. uc.xul gefunden, die nicht in der Blacklist stehen -> Ablage sortiert (unter Linux erforderlich) im JSON vornehmen
                hp = this.githubLink(file.leafName);
                added = false;
                storedItems = this.MYSTOR.userchromejs.length;
                for (j = 0; j < storedItems; j++) {
                    if (file.leafName.toLowerCase() < this.MYSTOR.userchromejs[j].name.toLowerCase()) {
                        this.MYSTOR.userchromejs.splice(j,0,{'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
                        added = true;
                        break;
                    }
                }
                if (!added) this.MYSTOR.userchromejs.push({'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
            }
        },
    
        githubLink: function(sName) {
            // übergibt für gegebenen Skriptnamen den Link zu github
            // früher Ausstieg, da Skript nicht verlinkt werden soll
            if (this.GITHUBBLACKLIST.indexOf(sName) !== -1 || this.GITHUBBLACKLIST.indexOf("*") !== -1) return null;
            sName = sName.toLowerCase();
            /* Das folgende Array enthaelt regulaere Ausdruecke, um ungueltige Zeichenfolgen entfernen:
            /Datei-Erweiterungen am Ende/, /"ucjs_" am Anfang/, /"_"gefolgtVonZahlUndDanachBeliebigenZeichen/
            / "_fx"gefolgtVonZahl(en)/, /"-" oder "+" oder "."/, /"_v"gefolgtVonZahlen
            */
            var regs = [/\.uc\.js$/,/\.uc\.xul$/,/^ucjs_/,/_\d.+/,/_fx\d+/,/[-+\.]/g,/_v\d+/];
            for (var i = 0; i < regs.length; i++) {
                sName = sName.replace(regs[i],"");
            }
            return "https://github.com/ardiman/userChrome.js/tree/master/" + sName;
        },
    
        writeAddons: function(file,format){
            var a, t, c, n, d, atype, aout, thisaddon;
            var output = "";
            var addontpl = "";
            var addontplwithouturl = "";
            Cu.import("resource://gre/modules/osfile.jsm");
    
            addontpl = this.MYTPLS[format].tpladdon;
            addontplwithouturl = this.MYTPLS[format].tpladdon_without_url;
            output += this.MYTPLS[format].intro;
    
            if (this.SHOWDATE) output +=  this.MYTPLS[format].tpllastupd.replace(/%%lastupd%%/g,this.MYSTOR.lastupd)+"\n";
            if (this.SHOWUSERAGENT) output +=  this.MYTPLS[format].tpluseragent.replace(/%%useragent%%/g,this.MYSTOR.useragent)+"\n";
    
            for (t = 0; t < this.WHICHTYPES.length; t++) {
                atype = this.WHICHTYPES[t];
                c = this.MYSTOR[atype].length;
                n = 0;
                d = 0;
                output += this.MYTPLS[format].tpladdongrp_title[atype].replace(/%%count%%/g,c)+"\n";
                if (this.MYTPLS[format].tpladdongrp_intro[atype] == undefined) {
                    output += this.MYTPLS[format].tpladdongrp_intro.default + (this.MYTPLS[format].tpladdongrp_intro.default.length > 0 ? "\n" : "");
                } else {
                    output += this.MYTPLS[format].tpladdongrp_intro[atype] + (this.MYTPLS[format].tpladdongrp_intro[atype].length > 0 ? "\n" : "");
                }
                if (this.MYTPLS[format].tpladdongrp_list_intro[atype] == undefined) {
                    output += this.MYTPLS[format].tpladdongrp_list_intro.default+"\n";
                } else {
                    output += this.MYTPLS[format].tpladdongrp_list_intro[atype]+"\n";
                }
                for (a = 0; a < c; a++) {
                    thisaddon =  this.MYSTOR[atype][a];
                    // console.log(atype + " " + thisaddon.name + " " + thisaddon.active);
                    if (thisaddon.homepage == undefined) {
                        aout = addontplwithouturl;
                    } else {
                        aout = addontpl;
                        aout = aout.replace(/%%homepageURL%%/g,thisaddon.homepage.replace(/&(?!amp;)/g,'&amp;'));
                    }
                    aout = aout.replace(/%%name%%/g,thisaddon.name);
                    if (thisaddon.version == undefined) {
                        if (thisaddon.description != undefined) {
                            aout = aout.replace(/ %%version%%: /g,": ");
                        } else {
                            aout = aout.replace(/ %%version%%: /g,"");
                        }
                    }
                    aout = aout.replace(/%%version%%/g,thisaddon.version);
                    if (thisaddon.description != undefined) {
                        aout = aout.replace(/%%description%%/g,thisaddon.description);
                    } else {
                        aout = aout.replace(/%%description%%/g,"");
                    }
                    if (thisaddon.active !== true) {
                        aout = aout.replace(/%%class%%/g,this.MYTPLS[format].inactiveclass);
                        aout = aout.replace(/%%disabled%%/g,this.MYTPLS[format].disabledtext);
                        d++;
                    } else {
                        aout = aout.replace(/%%class%%/g,this.MYTPLS[format].activeclass);
                        aout = aout.replace(/%%disabled%%/g,"");
                        n++;
                    }
                    output += aout;
                }
                output = output.replace(/%%countactive%%/g,n).replace(/%%countinactive%%/g,d);
                output += this.MYTPLS[format].tpladdongrp_list_outro;
                output += this.MYTPLS[format].tpladdongrp_outro;
            }
            output += this.MYTPLS[format].outro+"\n";
            let encoder = new TextEncoder();
            let myarray = encoder.encode(output);
            let promise = OS.File.writeAtomic(file, myarray);
            return output;
        },
    
        showAddons: function(e,RanPath,OpenPath,format,myoutput) {
            // zeigt das EXPORTFILE im Editor oder im Browser (Mittelklick) an
            switch (e) {
                case 0:
                    var file = new this.FILEUTILS.File(RanPath);
                    var proc = Cc["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
                    var args = [OpenPath];
                    // falls der im Konfigurationsabschnitt definierte Editor nicht gefunden wird, auf Einstellung in about:config ausweichen:
                    if (!this.fileExists(RanPath)) {
                        console.log("AddonLister meldet: Editor nicht gefunden, ausweichen auf about:config.");
                        var pref = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
                        RanPath = pref.getCharPref("view_source.editor.path");
                        file = new this.FILEUTILS.File(RanPath);
                    }
                    proc.init(file);
                    proc.run(false, args, args.length);
                    break;
                case 1:
                    if (this.MYTPLS[format].opendatauri) {
                        var datastring = myoutput.replace(/\n/g,"%0A").replace(/#/g,"%23");
                        getBrowser().selectedTab = getBrowser().addTab('data:text/plain;charset=utf-8,' + datastring);
                        XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    } else {
                        // alert sorgt ein wenig dafür, dem OS Zeit fürs Speichern der Datei zu geben ...
                        alert("Export nach »"+ OpenPath + "« ("+ format + "-format) ist erfolgt.");
                        getBrowser().selectedTab = getBrowser().addTab(OpenPath);
                    }
                    break;
                default:
                    XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    break;
            }
        }
    
    };
    
    ADONLI.init();
    Alles anzeigen

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

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