Funktion in Config.js funktioniert nicht mit Firefox 115.0 ESR

  • Firefox-Version
    115.0 ESR
    Betriebssystem
    Windows 10 und Windows Server 2019

    Moin Zusammen,

    ich benutze diese Code zum löschen oder kopieren Dateien in Benutzer Profile und auch Automatik Bookmarks Backup und Restore. Leider funktioniert nicht mehr mit Firefox 115.0 ESR aber mit 102.12.0 ESR funktioniert.

    Damals hat aborix geholfen.

    Bestimmte Ordner in Benutzer Profile löschen

    Code
    try {  Components.utils.import("resource://gre/modules/Services.jsm");  Components.utils.import("resource://gre/modules/osfile.jsm");   Services.obs.addObserver(  { observe: () =>      OS.File.makeDir(OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\"))  	  },  "profile-do-change",  false);  Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\userChrome.css", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\userChrome.css"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\userContent.css", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\userContent.css"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\userChrome.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\userChrome.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\printpreview.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\printpreview.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\Schnelleinstellungen.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\Schnelleinstellungen.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\PasteAndGoForms.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\PasteAndGoForms.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.remove(OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\LoadingBar.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\fixsearchEngineIcon.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\fixsearchEngineIcon.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\favicon_in_urlbar.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\favicon_in_urlbar.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\ExtendedCopy.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\ExtendedCopy.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.remove(OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\Einstellungen.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\downloadb.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\downloadb.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\ContextTranslate.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\ContextTranslate.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\bookmarks_backup_restore_button.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\bookmarks_backup_restore_button.uc.js"))	  },  "profile-do-change",  false); Services.obs.addObserver(  { observe: () =>      OS.File.copy("C:\\Program Files (x86)\\Mozilla Firefox\\UserChromeDIR\\bildschirm.uc.js", OS.Path.join(OS.Constants.Path.profileDir + "\\chrome\\bildschirm.uc.js"))	  },  "profile-do-change",  false); } catch(e) {  Cu.reportError(e);};//**** Automatik Benutzer Favoriten Sicherung (als .json format) in User Home==>Documents Ordner und Datei Name ist Firefox-Favoriten.json ****//**** Wenn Firefox beendet, wird Benutzer Firefox-Favoriten.json automatisch in Pfad C:\Users\UserName\Documents\ gespeichert ****try {  Cu.import("resource://gre/modules/Services.jsm");  Cu.import("resource://gre/modules/osfile.jsm");  Cu.import("resource://gre/modules/BookmarkJSONUtils.jsm");  Cu.import("resource://gre/modules/Timer.jsm");  Cu.import("resource://gre/modules/PlacesBackups.jsm");  Cu.import("resource:///modules/MigrationUtils.jsm");  //**** 6.2 Diesen Teil erstellt in Benutzer U:\ Laufwerk, Firefox_Favoriten_BAK Ordner **** Services.obs.addObserver(  { observe: () =>            OS.File.makeDir("U:\\Firefox_Favoriten_BAK") 	  },  "quit-application-requested",  false);  const path = OS.Path.join("U:\\Firefox_Favoriten_BAK\\bookmarks.json");  let importExportBookmarks = {    modalWindow: null,    init: async function() {      Services.obs.addObserver(this, "final-ui-startup", false);    },    observe: function(aSubject, aTopic, aData) {      switch (aTopic) {        case "final-ui-startup":          BookmarkJSONUtils.importFromFile(path, {replace: false})            .then(              () => this.modalWindow.open(),              (e) =>                {                  OS.File.remove(path),				  this.modalWindow.open();				  let window = Services.wm.getMostRecentWindow('navigator:browser');                 //				  window.alert("Das Importieren der Lesezeichen ist fehlgeschlagen.\n\n" + e);                }            );          Services.obs.removeObserver(this, "final-ui-startup");          Services.obs.addObserver(this, "quit-application-requested", false);          break;        case "quit-application-requested":          let window = Services.wm.getMostRecentWindow('navigator:browser');          BookmarkJSONUtils.exportToFile(path, {replace: false})            .then(              () => this.modalWindow.close(),              (e) => {                this.modalWindow.close();//                window.alert("Das Exportieren der Lesezeichen ist fehlgeschlagen.\n\n" + e);              }            );          Services.obs.addObserver(this, "domwindowopened", false);          window.open('', 'modalWindow', 'chrome,modal');          break;        case "domwindowopened":          Services.obs.removeObserver(this, "domwindowopened");          this.modalWindow = aSubject;      };    }  };  importExportBookmarks.init();} catch(e) {  Cu.reportError(e);};//**** Diesen Teil löscht in Benutzer Firefox Profile, Ordner storage\default ****try {  Cu.import("resource://gre/modules/Services.jsm");  Cu.import("resource://gre/modules/osfile.jsm");  Cu.import("resource://gre/modules/BookmarkJSONUtils.jsm");  Cu.import("resource://gre/modules/Timer.jsm"); Services.obs.addObserver(  { observe: () =>      OS.File.removeDir(OS.Path.join(OS.Constants.Path.profileDir + "\\storage\\default"))  	  },  "quit-application",  false);} catch(e) {  Cu.reportError(e);};

    Ich bin dankbar für jede Hilfe.

    Mfg

  • Ich bin dankbar für jede Hilfe.

    Du hast diese Änderungen vorgenommen?


    Siehe bitte auch hier dazu:

    2002Andreas
    6. August 2021 um 13:59

    Mit freundlichem Gruß
    Andreas
    Mein Laptop  Meine Add-ons

    Einmal editiert, zuletzt von 2002Andreas (30. Juni 2023 um 10:01) aus folgendem Grund: Ein Beitrag von 2002Andreas mit diesem Beitrag zusammengefügt.

  • Hallo,

    der Fehler steht eh in der Konsole. Ein Import schlägt fehl. Nämlich:

    JavaScript
    Components.utils.import("resource://gre/modules/osfile.jsm");

    Das gibt es nicht mehr. Natürlich müssen auch die Stellen im Code angepasst werden, die noch Funktionen daraus nutzen. Aber so wie der Code in Beitrag #1 formatiert ist, ist mir das zu unübersichtlich. Wenn du den Code besser formatiert teilst, macht es Hilfe einfacher.

  • Moin @Sören,

    danke, ist so Ok?

    Mfg

  • ist so Ok?

    Ob das so schon reicht kann ich dir leider nicht sagen :/

    Aber wenn du magst, dann teste bitte mal:

  • 2002Andreas Hast du denn mal die beiden omni.ja durchsucht? Einfach nach *.mjs suchen. Wie Sören schon schrieb, osfile.jsm gibt es nicht mehr und services.jsm hat keine Wirkung mehr. Beide können also weggelassen werden. Wenn gar keine JSM-Dateien mehr vorkommen, kann Zeile 1 weggelassen werden.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Ich halte mich in Zukunft auch lieber raus, wenn es um Skripte geht

    Da lernst du doch nie dazu. Schaue mal in ein Uhrwerk und wenn du dann nicht mehr wie ein Schwein hineinschaust, bist du erfolgreich gewesen. :D

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • So: Die Dateien in den Zeilen 64 - 67 und 126/127 sind konvertiert. Die Zeilen mit services.jsm und osfile.jsm können weg. Es war auch Quatsch osfile.sys.mjs statt osfile.jsm zu schreiben. Die JSM-Datei ist nicht konvertiert worden, sondern schon als solche weggefallen. Das Problem ist nun, dass dadurch auch das Objekt OS. wegfällt. Da müsste ich erst einmal suchen, wie wir das gemacht haben. Ansonsten denke ich, dass die .sys.mjs-Dateien wie folgt eingelesen werden müssten:

    JavaScript
    const { BookmarkJSONUtils } = Chrome.importESMOdule("resource://gre/modules/BookmarkJSONUtils.sys.mjs");
    const { Timer } = Chrome.importESModule("resource://gre/modules/Timer.sys.mjs");
    const { PlacesBackups } = Chrome.importESModule("resource://gre/modules/PlacesBackups.sys.mjs");
    const { MigrationUtils } = Chrome.importESModule("resource:///modules/MigrationUtils.sys.mjs");

    JavaScript
    Chrome.importESMOdule("resource://gre/modules/BookmarkJSONUtils.sys.mjs");
    Chrome.importESModule("resource://gre/modules/Timer.sys.mjs");
    Chrome.importESModule("resource://gre/modules/PlacesBackups.sys.mjs");
    Chrome.importESModule("resource:///modules/MigrationUtils.sys.mjs");

    Probiere das erst einmal. Sowohl 64 - 67 als auch 126 und 127 sind in einem try-Block. Da scheint das zu reichen.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

    Einmal editiert, zuletzt von milupo (30. Juni 2023 um 15:25) aus folgendem Grund: Ein Beitrag von milupo mit diesem Beitrag zusammengefügt.

  • Ich glaube, OS. muss durch PathUtils. ersetzt werden.


    So, ich habe mal eine Version zusammengeschustert:

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

    Einmal editiert, zuletzt von milupo (30. Juni 2023 um 15:49) aus folgendem Grund: Ein Beitrag von milupo mit diesem Beitrag zusammengefügt.

  • Kürzlich gab es dazu sogar einen 15-seitigen Thread… ;)

    milupo
    13. Mai 2023 um 16:51

    PathUtils müssen importiert werden:

    JavaScript
    Cu.importGlobalProperties(['PathUtils']);

    Aus OS.Path.join wird PathUtils.join. Aus OS.Constants.Path.profileDir wird PathUtils.profileDir. Für OS.File.makeDir, OS.File.remove und OS.File.copy haben wir, glaube ich, noch keine Alternativen hier im Forum besprochen.

    Ich werde heute aber nicht mehr die Zeit für eine Recherche dafür haben, da ich meine restliche Support-Zeit stattdessen in ein schwerwiegendes Android-Problem stecken möchte, bei dem selbst Mozilla aktuell noch ziemlich ratlos ist und welches Firefox für betroffene Nutzer völlig unbenutzbar macht…

  • Kürzlich gab es dazu sogar einen 15-seitigen Thread…

    Den habe ich durchgesehen und bin dort wieder auf PathUtils gestoßen, dass mir zwischenzeitlich entfallen war.

    PathUtils müssen importiert werden:

    Danke.

    Aus OS.Path.join wird PathUtils.join. Aus OS.Constants.Path.profileDir wird PathUtils.profileDir. Für OS.File.makeDir, OS.File.remove und OS.File.copy haben wir, glaube ich, noch keine Alternativen hier im Forum besprochen.

    Danke. Vielleicht finde ich etwas für die restlichen drei. Die betreffen doch eigentlich keinen Pfad, sondern eine Datei, oder? Wäre da nicht FileUtils.sys.mjs anwendbar?

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Ich schaue mal.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Alles von hier umgesetzt!

    Nur eine Sache, bei mir meckert Visual Studio Code!

    Letzte Zeile.


    Vielleicht so?

    JavaScript
    );
    } catch(e) {
      Cu.reportError(e);
    }
    } catch(e) {
        Cu.reportError(e);
      };

    Aber ich habe keine Ahnung!

    Mit <3lichem Gruß

    Mira

    Einmal editiert, zuletzt von Mira_Belle (30. Juni 2023 um 23:04) aus folgendem Grund: Ein Beitrag von Mira_Belle mit diesem Beitrag zusammengefügt.