Toolbox Button.uc.js funktioniert nur teilweise in Fx 139

  • Firefox-Version
    Firefox 139.0
    Betriebssystem
    Windows 11 Pro 64-Bit

    Hallo @ all.

    Ich nutze u.a. dieses Skript:

    Beim Öffnen der Browser-Werkzeuge wird dieser Haken für Popups dann automatisch gesetzt:

    Ab der Firefox Version 139 ist das nicht mehr so.

    Lässt sich das wieder aktivieren?

    Für jegliche Hilfe wie immer vielen Dank vorweg.:)

  • Zur hilfreichsten Antwort springen
  • 2002Andreas 2. April 2025 um 18:34

    Hat den Titel des Themas von „Toolbox Button.uc.js funktioniert nur teilweise“ zu „Toolbox Button.uc.js funktioniert nur teilweise in Fx 139“ geändert.
  • Die Browserkonsole sagt, dass die Funktion eval() durch die CSP (Content Security Policy) geblockt wurde. eval() gilt ja als unsicher und sollte nicht mehr verwendet werden. Sie wird in den Zeilen 432 bis 443 verwendet.

    Ü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

  • eval() ist mir schon ziemlich oft in Erweiterungen vorgekommen. Mein Stand ist allerdings veraltet, und ich weiss nicht, wie man eval umschreiben kann.

    eval() - JavaScript | MDN
    Die eval() Funktion wertet JavaScript-Code aus, der als String dargestellt wird, und gibt dessen Abschlusswert zurück. Die Quelle wird als Skript geparst.
    developer.mozilla.org

    Wir sind keine Beschwerdestelle, hier gibt es nur Lösungen! Meine Glückszahl hier: 94.

  • Interessant finde ich in dem Zusammenhang Folgendes: Alice nutzt für (mindestens) 2 seiner Skripte die Eval-Funktion. Ich habe ihn für über 5 Jahren darauf hingewiesen, weil es schon damals hieß, Firefox (V. 70) würde die Funktion unterbinden: Replace "eval" method. Nun habe ich soeben bemerkt, dass er für die zwei Skripte, die ich von ihm nutze und die die Eval-Funktion nutzen, ein Update für Fx 139 hochgeladen hat und diese Funktion dort weiterhin enthalten ist. Ich geh davon aus, dass er seine Skripte testet. Zum Nachsehen und Ausprobieren: Vergleiche tabLock_mod2.uc.js und tabProtect_mod2.uc.js.

  • und ich weiss nicht, wie man eval umschreiben kann.

    Es geht eben den Menschen wie den Leuten. :)


    Das hängt meiner Meinung nach mit diesem Bugticket zusammen:

    1953866 - Add a strict script-src CSP to browser.xhtml
    RESOLVED (tschuster) in Core - DOM: Security. Last updated 2025-04-02.
    bugzilla.mozilla.org

    Ü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 (2. April 2025 um 21:40) aus folgendem Grund: Ein Beitrag von milupo mit diesem Beitrag zusammengefügt.

  • Vergleiche tabLock_mod2.uc.js und tabProtect_mod2.uc.js.

    Ich habe jetzt nur mal Letzteres installiert. Der Eintrag erscheint im Tab-Kontextmenü und der Haken wird auch gesetzt bzw. entfernt. Die Warnung zu eval() erscheint nicht, nur „gBrowserInit is not defined“.

    Ü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

  • Ach nein, die Fehlermeldung dazu erscheint doch, nur in einer anderen Zeile der Konsole.

    Ü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

  • security.browser_xhtml_csp.enabled

    auf:

    false

    funktioniert die Funktion zumindest erstmal wieder.

    Alternative dazu:

    security.browser_xhtml_csp.enabled => true
    security.browser_xhtml_csp.report-only => true

    Der Unterschied ist, dass der Code dann weiterhin ausgeführt wird, aber Mozilla über die Telemetrie-Funktion Daten darüber erhält, dass ansonsten etwas blockiert wird.

    So oder so wird diese Lösung nicht von Dauer sein.

  • funktioniert die Funktion zumindest erstmal wieder.

    Ja, kann ich bestätigen. Besser wäre es, jemand könnte aber eval() umschreiben. Mit der Deaktivierung dieser Einstellung wird sicherlich die Sicherheit reduziert.

    Ü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

  • Alternative dazu:

    Hallo Sören.

    Vielen Dank dafür, das habe ich jetzt so überall mal eingetragen:thumbup::)

    wird sicherlich die Sicherheit reduziert.

    Ist mir letztlich egal, wichtig für mich ist: Meine Skripte funktionieren wieder.;)


    Besser wäre es, jemand könnte aber eval() umschreiben.

    Das wäre dann natürlich perfekt.

    Mit freundlichem Gruß
    Andreas
    Mein Laptop  Meine Add-ons

    Einmal editiert, zuletzt von 2002Andreas (2. April 2025 um 22:19) aus folgendem Grund: Ein Beitrag von 2002Andreas mit diesem Beitrag zusammengefügt.

  • Ist mir letztlich egal,

    Du, du, du – wenn das Sören liest … :)

    Ü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

    • Hilfreichste Antwort

    „Sollte jetzt selbst entscheiden können“ ist genau das, was auch Nutzer von Windows 7 sagen. ;)

    PS: Ich hatte mich schon gefragt, wieso dieses Script eine vergleichsweise hohe Code-Qualität mit ausführlicher Code-Dokumentation und ordentlicher Einrückung besitzt. Das Script stammt von einem Mozilla-Mitarbeiter. Das erklärt es wohl. Und erhöht vielleicht auch die Chance, dass es eine Lösung direkt vom Erzeuger des Scripts geben wird. ;)


    Nachtrag: Ich hab's jetzt einfach selbst angepasst:

  • Das Script stammt von einem Mozilla-Mitarbeiter.

    Das ist er:

    aminomancer - Overview
    Firefox messaging system 🦖 @mozilla. aminomancer has 19 repositories available. Follow their code on GitHub.
    github.com

    Ü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 hab's jetzt einfach selbst angepasst:

    Hallo Sören, vielen Dank dafür:)

    was auch Nutzer von Windows 7 sagen.

    Naja, ich sehe schon einen riesen Unterschied zwischen einem unsicheren Betriebssystem, einer alten Firefox Version, oder einem Skript für Firefox.

    Bei dem obigen Skript, oder auch bei meinem anderen Skript extras_config_menu.uc.js sehe ich als Laie zumindest keine Sicherheitsbedenken.

    Ok, lieber wäre mir natürlich ein angepasstes Skript. Ich hoffe ja noch, dass jemand dazu eine Lösung findet.

  • 2002Andreas 3. April 2025 um 10:09

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.
  • Naja, ich sehe schon einen riesen Unterschied zwischen einem unsicheren Betriebssystem, einer alten Firefox Version, oder einem Skript für Firefox.

    Bei dem obigen Skript, oder auch bei meinem anderen Skript extras_config_menu.uc.js sehe ich als Laie zumindest keine Sicherheitsbedenken.

    Gefahrlos ist das nicht. Das Script überschreibt eine interne Firefox-Funktion. Wenn in dieser Funktion eine Sicherheitslücke steckt, die Mozilla mit dem nächsten Update behebt, hast du weiter die Sicherheitslücke, bis du das Script an den neuen Firefox-Code anpasst - wovon du aber wahrscheinlich gar nichts mitbekommst, weil du nach jedem Update den Code abgleichen müsstest, um Unterschiede festzustellen.

    Sicherheit durch Eigenverantwortung ist kein funktionierendes Konzept. ;)

  • Für hier Mitlesende:

    Es gibt bereits eine Initiative, dass die Einschränkung in einer der nächsten Versionen für die Nutzer von Scripten behoben sein wird: