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

Beiträge von BrokenHeart

  • BackupProfile.uc.js - div. Fragen dazu

    • BrokenHeart
    • 5. August 2023 um 19:10
    Zitat von 2002Andreas

    Na man gut, dann kann ich den Schlauch ja wieder einrollen ;)

    Diese Meldung erscheint hier in Fx 116, 117 und 118 unter Win 10.

    Man lässt aber auch keine Schläuche einfach so rumliegen, können auch andere darauf stehen bleiben oder sogar zu Fall kommen, also ne ;) ...

    Danke für das Testen der 117 :thumbup: , habe ich hier nicht.

    Meine Einstellungen für die Benachrichtigung sehen hier genauso aus. Wäre vielleicht auch noch eine Baustelle für grisu2099 und Dharkness, die sie überprüfen könnten.

    Edit: hat sich laut #289 wohl erledigt :)

  • BackupProfile.uc.js - div. Fragen dazu

    • BrokenHeart
    • 5. August 2023 um 18:55

    grisu2099 Vielen Dank für die Antworten! :thumbup:

    Win11 kann ich nicht testen. Außerdem habe ich hier nur portable Versionen. Könnte zwar auch eine normale Version installieren, scheue ich momentan aber noch davor zurück. Wenn der Fehler aufgetreten wäre, wenn path leer wäre, würde es - wenn überhaupt - für mich etwas mehr Sinn ergeben. :/

    Zitat von 2002Andreas

    Meinst du damit das Popup von Windows wenn die Sicherung erfolgt ist :/

    Ja, die Meldung meinte ich und so hatte ich die beiden auch verstanden. Eine andere Benachrichtigung wird ja nicht erzeugt, oder habe ich jetzt was übersehen?

  • BackupProfile.uc.js - div. Fragen dazu

    • BrokenHeart
    • 5. August 2023 um 18:41
    Zitat von grisu2099

    Bei mir im Nightly auch nicht - bei der Release erscheint es...

    Zitat von Dharkness

    Bei mir bei beiden nicht.

    Hier funktioniert es sowohl in der Release, als auch in der Nightly immer. Ich habe es jetzt ungefähr 30 mal getestet und jedes mal wurde die Benachrichtigung angezeigt... :/.

    Nur noch mal zur Sicherheit ein paar Nachfragen:

    - Welche Windows(?)-Version habt ihr?

    - Benutzt ihr portable Versionen?

    - Das Backup wurde auch ohne Benachrichtigung korrekt durchgeführt und Firefox war wieder bedienbar?

    - Tritt der Fehler nur auf, wenn die path-Variable in Zeile 20 leer ist also path = ""?

    - Ohne die Anpassung von mir wird jedesmal die Benachrichtigung angezeigt?

  • BackupProfile.uc.js - div. Fragen dazu

    • BrokenHeart
    • 5. August 2023 um 14:30
    Zitat von 2002Andreas

    Funktioniert einwandfrei :thumbup:

    Danke fürs Testen! :)

  • BackupProfile.uc.js - div. Fragen dazu

    • BrokenHeart
    • 5. August 2023 um 14:20

    Ich habe mal den nicht mehr funktionierenden "FilePicker" reaktiviert. D.h. Wenn var path="" ist, dann wird jetzt wieder der Dialog für die Verzeichnis-Auswahl angezeigt.

    Das synchrone show funktionierte ja schon lang nicht mehr und wurde durch die asynchrone Variante open mittels Callback-Funktion ersetzt. Siehe Schnittstellendefinition:

    Code: nsIFilePicker.idl
       /**
      * Opens the file dialog asynchrounously.
      * The passed in object's done method will be called upon completion.
      */
      void open(in nsIFilePickerShownCallback aFilePickerShownCallback);

    Hier der geänderte Code, wenn das jemand testen und nutzen möchte:

    (Der Code ab Zeile 106 könnte vielleicht auch für andere Anwendungsfälle nützlich sein. )

    JavaScript
    // ==UserScript==
    // @name           BackupProfile.uc.js
    // @namespace      BackupProfile.github.com
    // @description    Schaltfläche zum Sichern des Firefoxprofils
    // @charset        UTF-8
    // @author         ywzhaiqi、defpt
    // @version        v2018.01.10
    // @note           Vorlage Script von ywzhaiqi (+ Mischung aus diversen Varianten aus dem Fuchsforum 1.11.21)
    // @note           Sicherungsdatei enthaelt auch Profilname
    // @reviewURL      http://bbs.kafan.cn/thread-1758785-1-1.html
    (function () {
        ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
        CustomizableUI.createWidget({
            id : "Backup-button",
            defaultArea : CustomizableUI.AREA_NAVBAR,
            label : "Profilsicherung",
            tooltiptext : "Sichern der aktuellen Konfiguration",
            onClick: function(){
                // Speicherort  
                var path = "";
                // Ausschlussliste
                var excludes = 'bookmarkbackups *cache* crashes fftmp *healthreport* minidumps safebrowsing *webapps* saved-telemetry-pings *thumbnails* *session* *Telemetry* *hotfix* *.sqlite-shm *.sqlite-wal *.bak parent.lock blocklist.xml content-prefs.sqlite directoryLinks.json mimeTypes.rdf compatibility.ini parent.lock formhistory.sqlite';
    
                let backup = path => {
                    
                    excludes = excludes.replace(/\./g, '\\.').replace(/\*/g, '.*').replace(/\s+/g, '|');
                    excludes = new RegExp(excludes, 'i');
    
                    var zw = Cc['@mozilla.org/zipwriter;1'].createInstance(Ci.nsIZipWriter);
                    var pr = {PR_RDONLY: 0x01, PR_WRONLY: 0x02, PR_RDWR: 0x04, PR_CREATE_FILE: 0x08, PR_APPEND: 0x10, PR_TRUNCATE: 0x20, PR_SYNC: 0x40, PR_EXCL: 0x80};
                    var fu = ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs').FileUtils;
                    var dir = new FileUtils.File(PathUtils.join(PathUtils.profileDir,[]));
    
                    let d = new Date();
                    d = d.getDate() + '.' + (d.getMonth() + 1).toString().padStart(2, '0') + '.' + d.getFullYear().toString().padStart(2, '0')  + '  '  + d.getHours().toString().padStart(2, '0') + '\uA789' + d.getMinutes().toString().padStart(2, '0') + '\uA789' + d.getSeconds().toString().padStart(2, '0');
    
                    // Die folgende Zeile formt den Archivnamen
                    var archiveName = 'Profil ' + ' ' + d + '.zip';  /* 'd' ersetzt 'localnow' */ 
    
                    var xpi = fu.File(path + '\\' + archiveName);
    
                    zw.open(xpi, pr.PR_RDWR | pr.PR_CREATE_FILE | pr.PR_TRUNCATE);
                    var dirArr = [dir];
                    for (var i=0; i<dirArr.length; i++) {
                        var dirEntries = dirArr[i].directoryEntries;
                        while (dirEntries.hasMoreElements()) {
                            var entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
                            if (entry.path == xpi.path) {
                                continue;
                            }
    
                            if (entry.isDirectory()) {
                               dirArr.push(entry);
                            }
    
                            var relPath = entry.path.replace(dirArr[0].path, '');
                            if (relPath.match(excludes)) {
                                continue;
                            }
    
                            var saveInZipAs = relPath.substr(1);
                            saveInZipAs = saveInZipAs.replace(/\\/g,'/');
                            // Konfigurationsdateien können gesperrt werden
                            try {
                                zw.addEntryFile(saveInZipAs, Ci.nsIZipWriter.COMPRESSION_FASTEST, entry, false);
                            } catch (e) {}
                        }
                    }
                    zw.close();
                    alert('Die aktuelle Konfiguration wurde als:\n'+ archiveName +'\ngesichert in:\n' + path);
    
                    function alert(aString, aTitle) {
                        Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlertNotification("", aTitle, aString, false, "", null);
                    }
    
                    function bupgetCurrentProfileName(){
                        function readFile(aFile){
                            var stream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);    stream.init(aFile, 0x01, 0, 0);
                            var cvstream = Cc["@mozilla.org/intl/converter-input-stream;1"].createInstance(Ci.nsIConverterInputStream);
                            cvstream.init(stream, "UTF-8", 1024, Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
                            var content = "", data = {};
                            while (cvstream.readString(4096, data)) {
                                content += data.value;
                            }
                            cvstream.close();
                            return content.replace(/\r\n?/g, "\n");
                        }
                        var PrefD = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("PrefD", Components.interfaces.nsIFile);
                        var ini = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("AppRegD", Components.interfaces.nsIFile);
    
                        ini.append("profiles.ini");
                        var ini = readFile(ini);
                        var profiles = ini.match(/Name=.+/g);
                        var profilesD = ini.match(/Path=.+/g);
                        for ( var i = 0; i < profiles.length;i++) {
                        if ((profilesD[i]+"$").indexOf(PrefD.leafName+"$") >= 0) {
                            profiles[i].match(/Name=(.+)$/);
                            return RegExp.$1;
                            }
                        }
                        return null;
                    }
                                    
                };
    
                if (!path) {
                    let nsIFilePicker = Ci.nsIFilePicker;
                    let fp = Cc["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
                    fp.init(window, 'Sicherungspfad wählen', nsIFilePicker.modeGetFolder);
                    fp.open( async aResult => {
                        let promise = new Promise(function(resolve) {
                                if(aResult == nsIFilePicker.returnOK) {
                                path = fp.file.path;
                                resolve(path);
                            }
                            else {
                                console.log("PATH-ERROR: " + path);
                                return;
                            }
                        })
                        await promise;
                        backup(path);
                    });
                }
                else {
                   backup(path);
                }
    
            },
            
        });
        
        var cssStr = '@-moz-document url("chrome://browser/content/browser.xhtml"){'
             + '#Backup-button .toolbarbutton-icon {'
             + 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1%2B%2FAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNC8xMS8wOGGVBZQAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABxklEQVQ4ja2UMUgbURjHfxeSFBzuBEuCkkAgIA5JDdzWohVnQe3UpRDE2UXpKKXdWro4ixlcdNJAydxiyHZkCIKIOEnLpZQSRFFz%2Bjqk73nvuDtb2j883nv%2F73u%2F%2B%2B69ewf%2FWUZgbgEFYDgiPw18B86An8DtQw%2BYdF1XRLVGoyGEEKJara4Bj0MKIhGYDxuGQVSTqtVqH0ql0uzvNzLigCQSicjmeZ7K63Q6u5VKZRoYigXGVWhZlpbbbrfrwKjfS4ZVGKVCoUCz2aTX65FOp6WdA04igf69CsqyLMrlctAWsRXGAf9EavXyFELEZT4A2TwYsLQKF%2BYXAJhb3VPep4%2BLzK3uqd7vS9Xr%2B2qsAW9u4eyoxcZSFoCVLZfTwxaA6v2xjaUsuYmnWrU60IOr%2FmD8etvl%2Fausikl%2FZcsFULEbD02hwPUdl7cvs1qiBAb9eOCdwdjEM2AABdh88wJA%2BbK%2FX6MDtVPmHyRPOfjRPfc87%2FPfgJLJ5AzwRc0BbNseB8a63e6TuKsXpnw%2BP5nJZAzgq%2BM4x3IPzwFM07woFovv%2Bv3%2BUDTiXqlU6tI0zQs%2FI%2FSe2bYt%2FyCPgJFA%2BAdwDeA4zrfg2l%2BwUqCoC1F3YQAAAABJRU5ErkJggg%3D%3D)'
             + '}}';
        var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
        var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
        sss.loadAndRegisterSheet(ios.newURI("data:text/css;base64," + btoa(cssStr), null, null), sss.USER_SHEET);
    
    })();
    Alles anzeigen
  • UserCSSLoader= Services.jsm entfernt, CSS Codes werden nicht geladen

    • BrokenHeart
    • 3. August 2023 um 17:31
    Zitat von Boersenfeger

    Danke, das ist die Lösung! :)

    Gerne... :)

  • UserCSSLoader= Services.jsm entfernt, CSS Codes werden nicht geladen

    • BrokenHeart
    • 3. August 2023 um 17:22

    Boersenfeger Das wundert mich nicht.

    JavaScript
    if (!window.Services)
    Cu.import("resource://gre/modules/Services.jsm"); // Wenn beim Start ein anderes Fenster angezeigt wird (das zweite Fenster), wird es beendet
    let list = Services.wm.getEnumerator("navigator:browser");

    So wie ich das sehe, kommt so was davon, wenn man (auch bei nur einem! Befehl) keine Klammern setzt.

    Jetzt bezieht sich if (!window.Services) auf die nächste Zeile und wenn das 'false' ist, dann wird da auch nichts mehr ausgeführt.

    Du musst if (!window.Services) auch noch löschen, dann sollte es gehen.

  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • BrokenHeart
    • 3. August 2023 um 17:10
    Zitat von Sören Hentzschel

    aber als Tipp daraus: Als Autor von Scripts lohnt sich manchmal ein Blick in die Konsole, ob es neue Warnungen gibt. :)

    Bei mir auf dem Rechner war in der Nightly der Fehler bereits behoben gewesen, eben wegen der Fehlermeldung und der Warnung. Ich hatte nur vergessen, dass auch in dem veröffentlichten Skript zu korrigieren... :(

    Jetzt habe ich das nachgeholt... ;)

  • Mozilla veröffentlicht Firefox 116

    • BrokenHeart
    • 3. August 2023 um 16:57
    Zitat von grisu2099

    Kann ich nicht bestätigen... :/

    Zitat von FuchsFan

    War hier auch nicht so. :/

    Zitat von milupo

    Und das Rechtschreibwörterbuch war noch installiert bzw. aktiviert?

    Hier war es definitiv so, da ich nichts geändert habe und das Wörterbuch war installiert und noch aktiv (von 'KaiRo') . Wenn das anscheinend nur bei mir aufgetreten ist, dann kann es sich natürlich auch um ein solitäres Problem handeln, welches nur unter bestimmten Rahmenbedingungen auftritt. Ist auch nicht so wichtig (für mich), da ja schnell behoben... :)

  • Mozilla veröffentlicht Firefox 116

    • BrokenHeart
    • 3. August 2023 um 09:56

    Sören Hentzschel :

    Danke für die ausführlichen Erläuterungen :thumbup:. Jetzt ist mir doch der Sinn dieser Ausführungsverhinderung weitgehend klar: also ein Sicherheitsmechanismus für Erweiterungen, der von Mozilla für bestimmte Websites aktiviert, aber vom Benutzer auch wieder deaktiviert werden kann.

    Bei meiner ursprünglichen Annahme war wohl der Wunsch der Vater des Gedankens... ;)

    Zitat von Sören Hentzschel

    Eine entsprechende Option hierfür gibt es erstens erst ab Firefox 117

    Ich hatte das auch auf Firefox 118 getestet...

    ------

    Noch etwas, weil ja thematisch passend:

    Nach dem Update auf FX116 war diese Option für die Rechtschreibprüfung ausgeschaltet, und musste neu eingeschaltet werden:

  • Mozilla veröffentlicht Firefox 116

    • BrokenHeart
    • 2. August 2023 um 20:19

    Danke an alle für die Hilfe! Ja, mal schauen, was Sören dazu sagt.. ...hat schon was gesagt ;) :

    Zitat von Sören Hentzschel

    Auf about:preferences können generell keine Erweiterungen wirken. Das ging mit WebExtensions noch nie und das lässt sich auch nicht ändern.

    Danke für die Bestätigung. Das hatte ich eh schon befürchtet. :(

    Zitat von Sören Hentzschel
    [...]

    auf einer bestimmten Website unterbunden

    [...]

    Was heißt bestimmte Webseite? Sind damit nur Webseiten von Mozilla mit gemeint?

    Edit: Oder ist das dann im Erweiterungs-Panel immer kontextbezogen für die aktuelle Webseite? Aber auch da sehe ich keine zusätzlichen Optionen...

  • Mozilla veröffentlicht Firefox 116

    • BrokenHeart
    • 2. August 2023 um 19:57
    Zitat von .DeJaVu

    Und die Antwort von Sören:

    Sören schreibt, dass es nur angezeigt wird, wenn es relevant und damit blockiert wird. Ich habe anscheinend nur unrelevante Erweiterungen, weil bei mir diese Einstellung nur bei 2 Erweiterungen angezeigt wird. Die Erweiterung, um die es mir aber hauptsächlich geht (Gesturefy), wird aber blockiert (z.B. auf about:preferences). Hier und bei fast allen anderen Erweiterungen erscheint diese Option nicht. Gibt es dafür einen anderen Grund, außer Relevanz? :/

  • Mozilla veröffentlicht Firefox 116

    • BrokenHeart
    • 2. August 2023 um 19:18
    Zitat von .DeJaVu

    Ab hier:

    Hilft mir jetzt irgendwie auch nicht weiter, da ich diese Option auch in der aktuellen Nightly FX118 nicht finden kann. Im zitierten Beitrag ist übrigens von FX117 die Rede. Ganz konkret: Wo finde ich denn diese angesprochene Berechtigung? :/

  • Cursor manchmal unsichtbar

    • BrokenHeart
    • 2. August 2023 um 18:56
    Zitat von 2002Andreas

    Fx 115

    Nach klick ins Antwortfenster blinkt der Cursor hier 6x, dann bleibt er stehen.

    Das ist hier (FX116) exakt genauso. Auch in der ESR102. Verschwinden tut der Cursor allerdings nicht. Wenn das "Stehenbleiben" nach einer bestimmten Zeit passiert, dann könnte das Verschwinden des Cursors auch damit zutun haben, dass je nach Blink-Rhythmus, der Cursor zu sehen ist oder eben nicht. Ich vermute mal, dass es an der Forensoftware liegt. :/

    PS: wtf, sehe gerade, dass meine Rechtschreibprüfung in FX116 nicht mehr ffunkktionnierrt... :(


    bvcncn

  • Mozilla veröffentlicht Firefox 116

    • BrokenHeart
    • 2. August 2023 um 18:32

    Danke für die Infos! :thumbup:

    Folgenden Absatz versteh ich nicht oder wahrscheinlich nur falsch:

    Zitat

    Seit Version 115 unterstützt Firefox einen neuen Mechanismus, über welchen die Ausführung von Erweiterungen auf bestimmten Websites durch Mozilla, beispielsweise aus Sicherheitsgründen, standardmäßig verhindert werden kann. Firefox 116 ergänzt in den Einstellungen des jeweiligen Add-ons eine Option, womit dieser Sicherheits-Mechanismus pro Erweiterung ein- oder ausgeschaltet werden kann.

    Kann man jetzt die Ausführung bestimmter (aller?) Add-ons, welche z.B auf Mozilla-Seiten nicht funktionieren, erlauben? Und wenn ja, wo finde ich diese Einstellung? Unter den Einstellungen meiner Add-Ons finde ich dafür keine Option...

  • rechte Maustaste auf Lesezeichen - bestimmten Eintrag ändern (Farbe)

    • BrokenHeart
    • 30. Juli 2023 um 20:32
    Zitat von grisu2099

    ...hab ich doch... :D :D

    Pahh, du hast ja nicht mal 'ne schwarze Brille! 8) 8)


    grisu2099:

  • rechte Maustaste auf Lesezeichen - bestimmten Eintrag ändern (Farbe)

    • BrokenHeart
    • 30. Juli 2023 um 20:14
    Zitat von grisu2099

    Dann mach mal... ;) :D

    Was? Keine Ahnung, wovon du redest... :/ 8)

    Zitat von BrokenHeart

    streng geheimes Undercover-Projekt

    8)

    Bilder

    • men-in-black-will-smith.gif
      • 840,5 kB
      • 498 × 286
  • rechte Maustaste auf Lesezeichen - bestimmten Eintrag ändern (Farbe)

    • BrokenHeart
    • 30. Juli 2023 um 20:10
    Zitat von 2002Andreas

    Dann gäbe es ein Skript für alles, und wir hätten nichts mehr zu tun hier ;)

    Das hatte ich mir auch vorher überlegt und da ist wirklich was dran... :thumbup:

    Von daher darf das nur als streng geheimes Undercover-Projekt durchgeführt werden und nur Leute mit den entsprechenden Sicherheitsfreigaben dürfen sich daran beteiligen. Ok, man muss es ja nicht gleich in die Wüste von Mexiko verlegen... ;) :/

  • rechte Maustaste auf Lesezeichen - bestimmten Eintrag ändern (Farbe)

    • BrokenHeart
    • 30. Juli 2023 um 20:01

    Um mal den Threadtitel direkt aufzunehmen: Wäre es nicht wirklich genial, wenn man bestimmte CSS-Anpassungen eben interaktiv und sofort ändern könnte? :)

    Z.B. beim angesprochenen Lesezeichen-Eintrag:

    Rechte Maustaste-> aus aufpoppendem Menü 'Farbe ändern' wählen -> Farbauswahldialog geht auf -> Farbe auswählen -> OK

    ...und sofort wird der Eintrag eingefärbt und der notwendige Code dafür persistent in die 'userChrome.css' bzw. Extra-Datei eingefügt.

    Im Prinzip so ähnlich, wie Aris es früher mit dem 'Classic Theme Restorer' gemacht hat. Nur noch interaktiver... ;)

    Sollte ja eigentlich alles mit den (OS-spezifischen) Services aus XPCOM machbar sein (hoffe ich) :/ .

    Nur mal so, als Idee.

  • Zweiten Reload-Stop-Button machen

    • BrokenHeart
    • 24. Juli 2023 um 22:00
    Zitat von Horstmann

    Die Funktionen, auch für Stop, sind aber da. :/

    Testen kann man das mit einer langsam ladenden Website, wie zB dieser (offizieller Mozilla Link).

    Das kann ich hier nicht bestätigen. Ich hatte es schon vorher getestet und jetzt nochmal mit der Mozilla-Seite, aber bei mir unterbricht er den Ladevorgang nicht, wenn ich den neuen Button betätige. :/

    Zitat von Horstmann

    In den Browsertools sieht man, dass beim neuen Button nur das erste child - der Reload Button - geladen wird, und auch nur der Button, und nicht die untergordnete Animation.

    Ja wie gesagt, es handelt sich um einen neuen Reload-Button. Der hat auch wie das Original eine 'animatable-box'. Das, was jetzt 'stop-reload-button-2' heißt, ist kein kombinierter Reload/Stop-Button. Im Inspektor wird es deutlicher:

Unterstütze uns!

Jährlich (2025)

101,9 %

101,9% (662,48 von 650 EUR)

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