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

Beiträge von Boersenfeger

  • Reaktionen des Cursors

    • Boersenfeger
    • 27. Mai 2023 um 14:56

    Das sind 2 verschiedene Systeme und daher nicht vergleichbar :)

  • FF startet nur nach Umbenennen der .exe

    • Boersenfeger
    • 25. Mai 2023 um 14:21

    :thumbup:

  • FF startet nur nach Umbenennen der .exe

    • Boersenfeger
    • 25. Mai 2023 um 14:13

    .. oder eben als Beipack bei AMO...

  • FF startet nur nach Umbenennen der .exe

    • Boersenfeger
    • 25. Mai 2023 um 14:10

    ich schrieb "ggf." !

    Wenn die Erweiterung bei AMO heruntergeladen wurde und so einen Dreck mitgebracht hat, wäre es eine Meldung wert... ;)

  • FF startet nur nach Umbenennen der .exe

    • Boersenfeger
    • 25. Mai 2023 um 14:04

    // WEDRO

    ggf. in Zukunft Downloadportale wie CHIP etc meiden, beim Anbieter direkt herunterladen und Tipps und Empfehlungen in Computerzeitschriften immer kritisch hinterfragen...

  • Liste leeren - Button in Bibliothek ganz rechts anzeigen

    • Boersenfeger
    • 25. Mai 2023 um 13:59

    Vielen Dank, habe mich mal bedient... :)

  • In memoriam

    • Boersenfeger
    • 25. Mai 2023 um 12:26

    ... andererseits hat ein jahrelanges Krankheitsmartyrium ein Ende gefunden. Auch ich bin traurig.... nie werde ich ein Konzert mit ihr im Niedersachsenstadion vergessen, das war einfach grandios.. :) :(

  • Updaten ohne Spiel zu zerstören

    • Boersenfeger
    • 23. Mai 2023 um 10:39

    // @Feuerwind Einfach mal Spiel unterbrechen, UpDate machen lassen und so lange 3 Stunden um den Block gehen. Lüftet das Hirn und ist gesund ;)

  • Firefox-Release

    • Boersenfeger
    • 23. Mai 2023 um 10:36
    Zitat von Sören Hentzschel

    Mit leerem Cache neu laden scheint die Wahrscheinlichkeit zu erhöhen, dass es funktioniert, kann aber auch Zufall in meinen Tests gewesen sein.

    3 maliges Cachebefreites Neuladen lies die Seite dann erscheinen. Da müssen die wohl mal nachbessern.

    Getestet mit aktuellem Nightly

  • Tableisten CSS anpassen

    • Boersenfeger
    • 19. Mai 2023 um 17:08

    Wenn man natürlich den Code ändert und dann deinen Code damit vergleicht, findet man auch nix... :D

  • Tableisten CSS anpassen

    • Boersenfeger
    • 19. Mai 2023 um 17:06

    Vielen Dank! :)

  • Tableisten CSS anpassen

    • Boersenfeger
    • 19. Mai 2023 um 16:49

    Passt, wo war der Fehler? ;)

    Mit Compare wurde kein Unterschied gefunden...

  • Tableisten CSS anpassen

    • Boersenfeger
    • 19. Mai 2023 um 16:25

    Habe gerade meinen langjährigen Code für die Tabs-Gestaltung geändert:

    CSS
         @-moz-document url(chrome://browser/content/browser.xhtml){ 
    
        /* Tabs rund und farbig */
    
        /* Angaben für die TAB-Leiste */
    
        /* TAB bei bei angewähltem TAB (aktiv): */
        /* Hintergrundfarbe, Rahmen,*/
        /* Schriftfarbe. */
     
       .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) > .tab-stack > .tab-background {
        background: red !important;
        border-radius: 18px 18px !important;
        margin-top: 1px !important;  
        border: none !important;
        color: black ! important; 
        margin-bottom: 0 !important;
        }
        
        
        /* Schliessen-Button nur wenn angewählt */
    
        tab:not([selected]) .tab-close-button {display: none !important; 
        }
    
     
        /* Schriftgröße Tabs */
    
        .tab-text {
        font-size: 17px !important;
        }
        
        /* Damit wird der Tabtext am Ende nicht ausgeblendet */
        
        .tab-label-container[textoverflow][labeldirection=ltr]:not([pinned]),
        .tab-label-container[textoverflow]:not([labeldirection]):not([pinned]):-locale-dir(ltr) {
        direction: ltr;
        mask-image: linear-gradient(to left, transparent, black 1em) !important; 
        }
        
        /* Doppelte Schliessung ausblenden */
    
        #TabsToolbar > .titlebar-buttonbox-container {
        display:none !important; 
        }
    
        
        .tabbrowser-tab[visuallyselected="true"] .tab-label {
        font-weight:  bold !important;
        }
    
        #TabsToolbar .tabbrowser-tab:not([selected="true"]) {
        border-radius: 16px 16px !important;
        height: 20px ! important;
        margin-top: 2px !important;
        padding: 0 !important;
        color: black ! important; 
        }
        
        
        /* Tab-Icon etwas größer,
        * links weniger, unten etwas mehr Abstand zum TAB-Rand */
     
        #TabsToolbar .tab-icon-image {
        height: 20px !important;
        width:  20px !important;
        margin-left: -5px !important;    
        margin-bottom: 2px !important;
        }
            
        /* Tab-Schließen-Button:
        * Rechts weniger Abstand zum TAB-Rand, etwas größer,
        * Textfarbe (Kreuz)
        * Hintergrundfarbe, an den Eckenradius des Buttons angepasst */
     
        #TabsToolbar .tab-close-button {
        margin-right: -8px !important; 
        font-weight: bold !important;    
        color: black !important; 
        }
    
        #TabsToolbar .tab-close-button .toolbarbutton-icon {
        height: 20px !important;
        width:  20px !important;    
        background-color: red !important;
        border-radius: 12px !important; 
        }
        
        /* Aktiver Tab breiter */
        
        .tabbrowser-tab:not([pinned]):not([selected]) {
        min-width: 200px !important;
        max-width: 200px !important;
        }
        .tabbrowser-tab:not([pinned])[selected] {
        min-width: 200px !important;
        max-width: 200px !important;
        }
        
        /* Lautsprechersymbol größer */
        
        .tab-icon-overlay {
        transform: scale(1.8, 1.8) !important;
        }
        
        image.tab-icon-overlay {
        margin-top: 3px !important;
        }
        
         /* Lautsprechersymbol violet bei Sound */
        
        .tab-icon-overlay[soundplaying] {
        fill: blueviolet !important;
        margin-left: -5px !important;
        }
    
        /* Lautsprechersymbol gelb bei Stumm */
        
        .tab-icon-overlay[muted] {
        fill: yellow !important;
        margin-left: -5px !important;
        }
      
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-blocked-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-playing-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-muted-label"] {
        display: none !important;
        }
    
        
        /* Tab Beschriftung mittig */
        
        .tab-content {
        display: flex !important; 
        margin-top: -10px !important;
        justify-content: center !important;
        align-items: center !important;
        }
        
        #TabsToolbar .tabbrowser-tab[selected="true"] .tab-content {
        margin-top: 2px !important;
        }
    
        .tab-label-container {
        margin: auto !important;
        }
    
        .tabbrowser-tab > .tab-stack > .tab-content > .tab-close-button {
        flex-shrink: 0 !important; 
        padding: 0 !important; 
        width: 16px !important;
        }
        
        /* Kein Schatten drum */
        
        #TabsToolbar:not([brighttext]) 
        #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"],
        [multiselected]) > .tab-stack > .tab-background
        {
        box-shadow: none !important;
        }
        
        /* Kein blauer Kasten */
        
        tab.tabbrowser-tab {
        --focus-outline-width: 0 !important;
        --focus-outline-color: transparent !important;
        --focus-outline: var(--focus-outline-width) solid var(--focus-outline-color)!important;
        }
        
        /* Tabs Proton-Design */
    
        :root {
        --proton-tab-radius: 0 !important;
        --proton-tab-block-margin: 0 !important;
        --inline-tab-padding: 10px !important;
        }
    
        #TabsToolbar .toolbarbutton-1 {
        min-height: 34px !important;    
        margin-top: 2px !important;    
        margin-bottom: 2px !important;
        }
        
        #TabsToolbar .tabbrowser-tab:not([selected="true"])  {
        min-height: 34px !important;
        border: 1px solid #B2B2B2 !important;
        }
    
        #TabsToolbar .toolbarbutton-1 > image {
        padding: 2px 4px !important;
        }
    
        /* Rahmen um die Tableiste durchsichtig */
    
        #TabsToolbar {
        border: 0.2px solid transparent !important;
        }
         
        #TabsToolbar:hover {
        border: 0.2px solid transparent !important;
        }
        
        
        /* Tabs in Tableiste mittig */
    
        scrollbox[smoothscroll="true"] {
        display: flex !important;
        justify-content: center !important ;
        }
        }
    Alles anzeigen

    In Zeile 96-97 stand vorher 237px. Nachdem Neustart sieht die Tableiste nach Schließen eines Tabs jetzt so aus:

    Wo ist der Haken? :/

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

    • Boersenfeger
    • 19. Mai 2023 um 16:07

    Prima, funktioniert jetzt in beiden Browsern. Vielen Dank an alle Beteiligten! :thumbup: :)

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

    • Boersenfeger
    • 19. Mai 2023 um 13:25

    Danke! Teste ich dann hier auch mal. Ich bin ja eigentlich nur noch mit Nightly unterwegs. :)

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

    • Boersenfeger
    • 19. Mai 2023 um 12:53
    Zitat von Dharkness

    Das wäre hier fasst identisch mit Deinem, die Unterschiede schließe ich als Fehlerquelle eher aus.

    Danke! Ich habe also keinen Tipp- oder Logikfehler bei meinen Anpassungen drin. :)

    Du bekommst eine Ausgabe, die verwertbar ist?

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

    • Boersenfeger
    • 19. Mai 2023 um 11:29
    Zitat von BrokenHeart

    Kann ich bestätigen. Perfekt...! :thumbup: :thumbup:

    Könntet ihr bitte mal euren gesamten Code posten?

    Ich habe die Änderungen aus # 28 und 32 gemacht, aber bei mir will es einfach nicht, ich kriege keinerlei Ausgabe via Extras--AddonLister--...

    Der Button funktioniert auch komplett nicht...

    Hier nochmal mein verwendetes Script...

    JavaScript
    /* AddonLister */
    
    // ==UserScript==
    // @name           AddOnLister.uc.js
    // @compatibility  Firefox 36.*, 37.*, 60.*, 63.* 115.*
    // @include        main
    // @version        1.0.20181102
    // ==/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:\\Unzipped\\",
        //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 :        'H:\\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 geringfuegig 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,
        FILEUTILS: ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs').FileUtils,
    
        init: function() {
            // legt verschiebbaren Button und Menü unter Extras an
            // Button
            if (location != "chrome://browser/content/browser.xhtml") 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.createXULElement(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().addTrustedTab('data:text/plain;charset=utf-8,' + datastring);
                        openTrustedLinkIn('data:text/plain;charset=utf-8,' + datastring, "tab");
                        //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.");
                        openTrustedLinkIn(OpenPath, "tab");
                        //getBrowser().selectedTab = getBrowser().addTrustedTab(OpenPath);
                    }
                    break;
                default:
                    //XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    break;
            }
        }
    
    };
    
    ADONLI.init();
    Alles anzeigen
  • Gibt es eine Version vom AddOnLister für Fx?

    • Boersenfeger
    • 18. Mai 2023 um 19:01

    Hm, bei mir ist das Script installiert, ich habe sowohl im Menü Extra wie auch in meiner AddonBar einen Eintrag bzw einen Button, allerdings funktioniert nirgends die Ausgabe ...

    Zwei Änderungen habe ich gemacht:

    Der Ort der Ausgabe

    EXPORTPATH: "C:\\Unzipped\\",

    Der Editor

    TEXTOPENEXE : 'H:\\Notepad++\\notepad++.exe',

    Warum funktioniert es nicht? :/

    Hier nochmal mein Code vom Script:

    JavaScript
    /* AddonLister */
    
    // ==UserScript==
    // @name           AddOnLister.uc.js
    // @compatibility  Firefox 36.*, 37.*, 60.*, 63.* 115.*
    // @include        main
    // @version        1.0.20181102
    // ==/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:\\Unzipped\\",
        //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 :        'H:\\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 geringfuegig 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.xhtml") 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.createXULElement(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().addTrustedTab('data:text/plain;charset=utf-8,' + datastring);
                        openTrustedLinkIn('data:text/plain;charset=utf-8,' + datastring, "tab");
                        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.");
                        openTrustedLinkIn(OpenPath, "tab");
                        //getBrowser().selectedTab = getBrowser().addTrustedTab(OpenPath);
                    }
                    break;
                default:
                    XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    break;
            }
        }
    
    };
    
    ADONLI.init();
    Alles anzeigen

    Klick auf den Button mit Links oder Rechts ergibt keine Reaktion und keine Fehleranzeige im Firefox.

    Fehlerkonsole:

    Uncaught NS_ERROR_FILE_NOT_FOUND: Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXPCComponents_Utils.import]

    writeAddons file:///C:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/............/chrome/AddOnLister.uc.js:473

    launch file:///C:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/............./chrome/AddOnLister.uc.js:334

    onclick chrome://browser/content/browser.xhtml:1

    AddOnLister.uc.js:473

    Und fortlaufend:

    AbortError: Actor 'Conduits' destroyed before query 'RuntimeMessage' was resolved 2 ConduitsParent.jsm:375

  • About Seiten mit CSS Codes anpassen

    • Boersenfeger
    • 18. Mai 2023 um 11:59

    Ich wollte mit meinem Statement ja auch nur darauf hinweisen, das es genau mit der Breite zu tun hat und sich bei mir mit den neunen Versionen von Firefox und Nightly nichts verändert hat.

    Diese abweichende Breite verwende ich in allen about:.... Codes, da diese auf meinen Bildschirm angepasst ist. :)

  • About Seiten mit CSS Codes anpassen

    • Boersenfeger
    • 18. Mai 2023 um 11:38

    Nur zur Information:

    Ich habe, hatte hier mit diesem Code keine Probleme....

    CSS
    /* About:Support */
    
    @namespace url(http://www.w3.org/1999/xhtml);
    @-moz-document url-prefix(about:support) {
    
    
    body::before {content: "Boersenfegers Nightly";
    margin-left: 0px;
    font-size: 25px;
    font-weight: bold;
    color: red;}
    
    
    html{background:#ffffff !important;}
    
    
    body > h1:nth-child(2){margin-top: 10px !important;}
    
    
    body{margin-left: 80px !important; max-width: 1540px !important;}
    
    
    .action-box{width: 30% !important; border-radius:24px !important;}
    #reset-box, #safe-mode-box {margin-left: 11px !important;}
    
    
    #security-software-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(33) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    table.prefs-table:nth-child(23) > thead:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(37) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #intl-localeservice-tbody > tr:nth-child(1) > th:nth-child(1),
    #sandbox-tbody > tr:nth-child(1) > th:nth-child(1),
    #libversions-tbody > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(27) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    table.prefs-table:nth-child(18) > thead:nth-child(1) > th:nth-child(1),
    table.prefs-table:nth-child(20) > thead:nth-child(1),
    table.prefs-table:nth-child(20) > thead:nth-child(1) > th:nth-child(1),
    #media-info-tbody > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(10) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(8) > thead:nth-child(1) > tr:nth-child(1),
    #contents > table:nth-child(8) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #graphics-features-tbody > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(14),
    #graphics-features-tbody,
    #contents > table:nth-child(29) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(12) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(2){border-top-left-radius:24px !important;}
    
    
    #contents > table:nth-child(2) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1)
    {border-top-left-radius:24px !important; padding-top: 8px !important; padding-bottom: 8px !important;}
    
    
    #security-software-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(2),
    #startup-cache-disk-cache-path,
    table.prefs-table:nth-child(23) > thead:nth-child(1) > th:nth-child(2),
    #remote-debugging-accepting-connections,
    #intl-localeservice-tbody > tr:nth-child(1) > th:nth-child(1),
    #sandbox-tbody > tr:nth-child(1) > td:nth-child(2),
    #libversions-tbody > tr:nth-child(1) > th:nth-child(3),
    #a11y-activated,
    table.prefs-table:nth-child(18) > thead:nth-child(1) > th:nth-child(2),
    #media-info-tbody > tr:nth-child(1) > td:nth-child(2),
    #contents > table:nth-child(10) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(4),
    #contents > table:nth-child(8),
    #contents > table:nth-child(8) > thead:nth-child(1),
    #contents > table:nth-child(8) > thead:nth-child(1) > tr:nth-child(1),
    #contents > table:nth-child(8) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(3),
    #graphics-features-tbody > tr:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(14),
    #graphics-features-tbody,
    #graphics-features-tbody > tr:nth-child(1),
    #contents > table:nth-child(2),
    table.prefs-table:nth-child(20) > thead:nth-child(1),
    table.prefs-table:nth-child(20) > thead:nth-child(1) > th:nth-child(2),
    #remote-processes-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(2),
    #contents > table:nth-child(12) > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(4),
    #application-box {border-top-right-radius:24px !important;}
    
    
    #security-software-table > tbody:nth-child(2) > tr:nth-child(3) > th:nth-child(1),
    tr.no-copy:nth-child(25) > th:nth-child(1),
    #contents > table:nth-child(33) > tbody:nth-child(1) > tr:nth-child(4) > th:nth-child(1),
    #graphics-decisions-tbody > tr:last-child > th:nth-child(1),
    #media-capabilities-tbody > tr:nth-child(2) > td:nth-child(1),
    #locked-prefs-tbody > tr:last-child > td:nth-child(1),
    #contents > table:nth-child(37) > tbody:nth-child(1) > tr:nth-child(2) > th:nth-child(1),
    #intl-ospreferences-tbody > tr:nth-child(3) > th:nth-child(1),
    #libversions-tbody > tr:nth-child(6) > td:nth-child(1),
    #contents > table:nth-child(27) > tbody:nth-child(1) > tr:nth-child(4) > th:nth-child(1),
    #prefs-tbody > tr:last-child > td:nth-child(1),
    #features-tbody > tr:last-child > td:nth-child(1),
    #contents > table:nth-child(8),
    #contents > table:nth-child(14),
    #prefs-tbody > tr:nth-child(79),
    #contents > table:nth-child(2),
    tr.no-copy:nth-child(22) > th:nth-child(1),
    #contents > table:nth-child(2) > tbody:nth-child(1),
    #contents > table:nth-child(29) > tbody:nth-child(1) > tr:nth-child(4) > th:nth-child(1),
    #graphics-workarounds-tbody > tr:last-child > th:nth-child(1),
    #prefs-tbody > tr:last-child > td:nth-child(1),
    #processes-tbody > tr:last-child > td:nth-child(1),
    #graphics-failures-tbody > tr:last-child > th:nth-child(1),
    #extensions-tbody > tr:last-child > td:nth-child(1),
    tr.no-copy:nth-child(24) > th:nth-child(1),
    tr.no-copy:nth-child(21) > th:nth-child(1){border-bottom-left-radius:24px !important;}
    
    
    #security-software-firewall,
    tr.no-copy:nth-child(25) > td:nth-child(2),
    #startup-cache-wrote-to-disk-cache,
    #graphics-decisions-tbody > tr:last-child > td:nth-child(2),
    #media-capabilities-tbody > tr:nth-child(2) > td:nth-child(1),
    #locked-prefs-tbody > tr:last-child > td:nth-child(2),
    #remote-debugging-url,
    #intl-osprefs-regionalprefs,
    #sandbox-tbody > tr:nth-child(2) > td:nth-child(2),
    #libversions-tbody > tr:nth-child(6) > td:nth-child(3),
    #a11y-instantiator,
    #prefs-tbody > tr:last-child > td:nth-child(2),
    #extensions-tbody > tr:last-child > td:nth-child(4),
    #features-tbody > tr:last-child > td:nth-child(3),
    #contents > table:nth-child(14),
    #prefs-tbody > tr:nth-child(79),
    #contents > table:nth-child(2),
    tr.no-copy:nth-child(22) > td:nth-child(2),
    #prefs-tbody > tr:last-child > td:nth-child(2),
    #processes-tbody > tr:last-child > td:nth-child(2)
    #graphics-failures-tbody > tr:last-child > td:nth-child(2),
    #graphics-workarounds-tbody > tr:last-child > td:nth-child(2),
    #processes-tbody > tr:last-child > td:nth-child(2),
    tr.no-copy:nth-child(24) > td:nth-child(2),
    tr.no-copy:nth-child(21) > td:nth-child(2) {border-bottom-right-radius:24px !important;}
    
    
    #contents > table:nth-child(25) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1),
    table.prefs-table:nth-child(21) > thead:nth-child(1) > th:nth-child(1),
    #contents > table:nth-child(10),
    #contents > table:nth-child(8),
    #crashes-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(1)
    {border-top-left-radius:24px !important; border-bottom-left-radius:24px !important;}
    
    
    #javascript-incremental-gc,
    table.prefs-table:nth-child(21) > thead:nth-child(1) > th:nth-child(2),
    #contents > table:nth-child(10),
    #contents > table:nth-child(8),
    #crashes-table > thead:nth-child(1) > tr:nth-child(1) > th:nth-child(2)
    {border-bottom-right-radius:24px !important; border-top-right-radius:24px !important;}
    
    
    #extensions-tbody > tr:nth-child(13),
    #intl-ospreferences-tbody > tr:nth-child(3),
    #sandbox-tbody, #contents > table:nth-child(8),
    #contents > table:nth-child(25) > tbody:nth-child(1),
    table.prefs-table:nth-child(21), #prefs-tbody > tr:nth-child(140),
    #contents > table:nth-child(29),
    #contents > table:nth-child(27){line-height: 2.0 !important;}
    
    
    #graphics-workarounds-tbody > tr:nth-child(2),
    #graphics-workarounds-tbody > tr:nth-child(2) > th:nth-child(1),
    #graphics-workarounds-tbody > tr:nth-child(2) > td:nth-child(2){line-height: 2.5 !important;}
    
    
    #graphics-decisions-tbody > tr:nth-child(n+2) > td:nth-child(2) > table:nth-child(1)
    {margin-left: -15px!important;}
    
    
    #security-software-table,
    #contents > table:nth-child(n+1),
    table.prefs-table:nth-child(n+1),
    #crashes-table{border-radius:24px !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;}
    #clear-startup-cache-box > h3 {margin-left: 4px !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;}
    
    
    .action-box{background: #FDF5E6 !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;}
    
    
    td{background: #FFFFF0 !important;}
    td:hover{background: #ffeb99 !important;}
    
    
    th {background-color: #ee7621 !important;}
    th:hover {background-color: #b54f06 !important;}
    
    
    #copy-raw-data-to-clipboard{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild73.png")no-repeat !important;
    padding-left:20px!important;
    padding-bottom: 5px!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:12px!important;
    margin-right:10px!important;
    color:black !important;}
    
    
    #copy-raw-data-to-clipboard:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild73.png")no-repeat !important;
    padding-left:20px!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 6px!important;}
    
    
    #copy-to-clipboard {min-width: 290px !important;}
    
    
    #copy-to-clipboard{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild74.png")no-repeat !important;
    padding-left:20px!important;
    padding-bottom: 5px!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:12px!important;
    color:black !important;}
    
    
    #copy-to-clipboard:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild74.png")no-repeat !important;
    padding-left:20px!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 6px!important;}
    
    
    #show-update-history-button{min-width: 220px !important;}
    
    
    #show-update-history-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild75.png")no-repeat !important;
    padding-left:19px!important;
    padding-bottom: 5px!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:14px!important;}
    
    
    #show-update-history-button:hover{
    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-dir-button{min-width: 220px !important;}
    
    
    #update-dir-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild76.png")no-repeat !important;
    padding-left:19px!important;
    padding-bottom: 5px!important;
    background-position:8px 5px!important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:76px!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:14px!important;}
    
    
    #update-dir-button:hover{
    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;}
    
    
    #profile-dir-button {min-width: 217px !important;}
    
    
    #profile-dir-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild76.png")no-repeat !important;
    padding-left:32px!important;
    background-position:8px 4px!important;
    color:black!important;
    margin-left: -3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:76px!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:14px!important;}
    
    
    #profile-dir-button:hover{
    appearance:none!important;
    background: #B2EDFA url("..//icons/Bild76.png")no-repeat !important;
    padding-left:32px!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;}
    
    
    #reset-box-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild77.png")no-repeat !important;
    padding-left:40px!important;
    padding-right: 130px !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:12px !important;
    color:black !important; }
    
    
    #reset-box-button:hover{
    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;}
    
    
    #restart-in-safe-mode-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/Bild78.png")no-repeat !important;
    padding-left:40px!important;
    padding-right:5px!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:12px !important;
    color:black !important; }
    
    
    #restart-in-safe-mode-button:hover{
    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;}
    
    #clear-startup-cache-button{
    appearance:none!important;
    background: #F0F0F0 url("..//icons/database_delete.png")no-repeat !important;
    padding-left:40px!important;
    padding-right:116px!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:12px !important;
    color:black !important; }
    
    
    #clear-startup-cache-button:hover{
    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{
    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{
    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:96px!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;
    min-height: 28px !important;
    line-height: 2.2 !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:73px!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;}
    
    
    #crashes-allReportsWithPending{
    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: 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{
    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:plugins"]: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:buildconfig"]: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:serviceworkers"]{
    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:50px!important;
    padding-left:35px!important;
    padding-bottom: 2px !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;
    line-height: 2.2 !important;}
    
    
    a[href="about:serviceworkers"]: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-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"]{
    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:88px!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;}
    
    
    
    
    a[href="about:memory"]: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;}
    
    
    #prefs-user-js-link{
    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: 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;}
    
    
    #prefs-user-js-link:hover{
    appearance:none!important;
    color:black!important; background: #B2EDFA url("..//icons/Bild3.png") no-repeat !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: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:63px!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;}
    
    
    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:black!important;
    margin-left: -3px !important;
    margin-top: 3px !important;
    font-size:14px!important;
    text-decoration:none!important;
    padding-right:94px!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;}
    
    
    a[href="about:profiles"]: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;}
    
    
    #verify-place-integrity-button{
    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:14px!important;}
    
    
    #verify-place-integrity-button: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 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"]{
    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:14px!important;}
    
    
    button[data-l10n-id="reset-on-next-restart"]:hover{
    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"]{
    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:14px!important;}
    
    
    button[data-l10n-id="gpu-process-kill-button"]:hover{
    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"]{
    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:14px!important;}
    
    
    button[data-l10n-id="gpu-device-reset-button"]:hover{
    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"]{
    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:14px!important;}
    
    
    button[id="enumerate-database-button"]:hover{
    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;}
    
    #remoteprocesses-row > td:nth-child(2) > a:nth-child(1){
    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:160px!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:14px!important;}
    
    
    #remoteprocesses-row > td:nth-child(2) > a:nth-child(1):hover{
    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;}
    
    #support-printing-clear-settings-button{
    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{
    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;}
    
    
        tr.no-copy:nth-child(17) > td:nth-child(2) > a:nth-child(1) { 
        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:71px!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;}
        
        tr.no-copy:nth-child(17) > td:nth-child(2) > a:nth-child(1):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;}
        
        #place-database-stats-toggle{
        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:14px!important;    }
            
        #place-database-stats-toggle: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 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;}    
        
        a[href="about:processes"]{
        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:80px!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;}
    
        a[href="about:processes"]: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;}
        
        #policies-status > a:nth-child(1){
        appearance:none!important;
        margin-left: -4px !important;
        background: #F0F0F0 url("..//icons/Bild3.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        padding-right:145px!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:14px!important;}
    
        #policies-status > a:nth-child(1):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 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;}
        
        #about-studies-section > p:nth-child(1) > a:nth-child(1){
        appearance:none!important;
        margin-left: -2px !important;
        background: #F0F0F0 url("..//icons/studi.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: 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:12px 5px!important;
        border-radius:14px!important;}
            
        #about-studies-section > p:nth-child(1) > a:nth-child(1):hover{
        appearance:none!important;
        background: #B2EDFA url("..//icons/studi.png") no-repeat !important;
        color:black!important;
        font-size:14px!important;
        text-decoration:none!important;
        background-position:12px 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;}
        
        #about-studies-section > p:nth-child(1){
        line-height: 2 !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:71px!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;}
        
        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;}
    }
    Alles anzeigen

Unterstütze uns!

Jährlich (2025)

108,6 %

108,6% (705,72 von 650 EUR)

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