Firefox about:config einträge zuverlässig ändern (oder: wie pref.js ändern und firefox die aktualisierte version laden lassen)

  • hallo,
    ich möchte eine einstellung in einem firefox-addon ändern, ohne davor per MouseMove() die dazugehörige Toolbar einblenden lassen, dann dort auf die Optionen klicken und bei einem Eintrag den Haken setzen bzw. entfernen.

    ich habe mir jetz ein paar möglichkeiten überlegt, wie es anders möglich wäre.
    die erste:

    1. neuen tab
    2. "about:config" öffnen
    3. Cursor ist bereits im Eingabefeld "Filter", dann dort den Einstellungsname reinkopieren
    4. 2x tab -> dann habe ich den eintag aktiviert
    5. "menü-taste" senden und dann "U", für den Eintrag "Umschalten"

    dann hätte ich den Eintrag geändert. Nachteil ist aber, dass ich nicht weiß ob die Einstellung jetzt true oder false ist.

    zweite Möglichkeit:
    ich öffne die C:\Dokumente und Einstellungen\Name\Anwendungsdaten\Mozilla\Firefox\2lk3jh2.default\prefs.js und ändere die zeile, in der die Einstellung steht, also
    zB. Zeile 223

    Code
    user_pref("Einstellungsname", false)

    Das Problem ist aber, dass ich die da True oder flase reinschreiben kann, wie ich Lust habe. Denn Firefox übernimmt die Einstellung nicht (ausser durch Neustart).

    Die Frage ist also, ob:
    1. Kann ich bei der ersten Methode irgendwie feststellen, welchen Wert die Einstellung gerade hat?
    2. Kann ich bei der zweiten Methode Firefox zwingen, die Einstellungen zu übernehmen?
    3. Gibt es andere Möglichkeiten, die Einstellungen in Firefox zu ändern?

    Über die Beantwortung auch nur einer meiner Fragen würde ich mich sehr freuen! ;)

    gruß moschieee

    Einmal editiert, zuletzt von moschieee (9. September 2008 um 18:33)

  • js wird soweit ich weiß meißtens beim ersten seitenaufbau geladen, d.h. wenn du das änderst musst du den cache löschen und alles neu laden.
    das geht im FF mit STRG+F5

    probiers einfach^^

  • hallo,
    danke für dein tip. leider führt es nicht zum gewünschten erfolg. die pref.js wird leider nicht übernommen.
    die bisher einzige möglichkeit ist, firefox zu schließen, die pref.js zu ändern und wieder neuzustarten, aber das dauert leider zu lange :(

    hat noch jemand einen tipp?

    gruß moschieee

  • hallo progandy,
    die links klingen vielverprechend. hab mir das addon für Firefox installiert und kann mithilfe des telnetclients putty auch firefox dazu anregen, etwas zu machen. hinbekommen etwa habe ich die funktion window.alert('text')....aber die stand ja auch 1:1 in dem demo-video.

    auf xulplanet stehen die ganzen commandos.
    prefs.setBoolPref("javascript.enabled",false); ist ja theoretisch genau das, was ich brauche, müsste halt nur den Einstellungsnamen ändern.

    aber was mir leider nicht klar geworden ist, wie und wo diese Kommandos ausgeführt werden. habs in putty probiert, kriege dann aber auch nur eine fehlermeldung !!! RefeernceError: prefs is not defined

    kannst du oder jemand anderes noch ein schubser in die richtige richtung geben, damit ich es dann schaffe ;)

    danke

  • prefs ist ja auch nur eine zuvor definierte Object-Variable.
    Die komplette Anweisung muß so aussehen:

    Code
    Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).setBoolPref("javascript.enabled",false);

    Zum senden davon kannst du davon die FF.au3 verwenden.
    Sieht dann so aus:

    [autoit]

    #include <FF.au3>

    [/autoit][autoit][/autoit][autoit]

    $Socket = _FFConnect()
    _FFSetGet($Socket,'Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch).setBoolPref("javascript.enabled",true);')

    [/autoit]

    [EDIT]
    Die Kommandos werden direkt von FireFox ausgeführt. Das meiste was man an FF sieht besteht nur aus XUL (eine XMl-ähnliche Sprache zum Erstellen von Programmoberflächen) und JavaScript für die Funktionen.


    Grüße
    Stilgar

  • klasse stilgar,
    jetz funktioniert's. und hab mir jetzt auch noch deine FF-Bibliothek angeschaut (und teilweise genutzt ;) ). Klasse Arbeit, die du da geleistet hast!

    mfg moschie