Ich habe Firefox unter CentOS erstellt und habe Probleme beim Festlegen der Standardeinstellungen. Gemäß offizielle Dokumente :
- Erstellen Sie eine JavaScript-Datei in den Standardeinstellungen / Pref (unter Linux) genannt autoconfig.js
Hier ist meine /tmp/ff-build/bin/defaults/pref/autoconfig.js
:
// First line must be a comment pref("general.config.filename", "mozconfig.cfg"); pref("general.config.obscure_value", 0);
- Erstellen Sie eine .cfg-Datei (gemäß Konvention mozilla.cfg – es kann sich um eine beliebige Datei handeln Name wirklich, es muss nur mit dem übereinstimmen, was in der Einstellung general.config.filename oben im Programmverzeichnis angegeben ist.
Hier ist meine /tmp/ff-build/bin/mozconfig.cfg
, wobei die einzige Firefox-Binärdatei lautet:
// Disable updater lockPref("app.update.enabled", false); // make absolutely sure it is really off lockPref("app.update.auto", false); lockPref("app.update.mode", 0); lockPref("app.update.service.enabled", false); // Disable updater lockPref("app.update.enabled¨, false);
Firefox läuft ohne autoconfig.js
vorhanden, aber mit der obigen Konfiguration kann Firefox nicht mit einer Popup-Anzeige beginnen ying:
Fehler beim Lesen der Konfigurationsdatei. Bitte wenden Sie sich an Ihren Systemadministrator.
Ich habe versucht, die mozconfig.cfg
in mehrere Verzeichnisse zu kopieren, jedoch ohne Änderung. So lässt Firefox die -Datei? Verstehe ich die Dokumente falsch?
(Profile werden gelöscht und neu erstellt, sodass bei der Lösung nichts zu einem ~ / -basierten Ordner hinzugefügt werden muss Arbeiten. Danke.)
Kommentare
- Sie können versuchen, einen absoluten Dateinamen als
general.config.filename
anzugeben. nur um zu sehen, ob es die Datei liest. Und umgeben Sie den Code mittry{ ... }catch(e){ displayError("myerror", e); }
- Ich habe versucht, wie Sie vorgeschlagen haben, einen absoluten Pfad zu
/tmp/ff-build/bin/mozconfig.cfg
und mir festzulegen wickelte es wie vorgeschlagen in einen Try / Catch-Block ein. Der absolute Pfad ' hat auch nicht funktioniert, und try / catch hat den Fehler ' nicht erkannt. Dieselbe generische Warnung wird angezeigt. - Möglicherweise enthält die .cfg-Datei ein nicht druckbares falsches Zeichen. Versuchen Sie es mit einer leeren Datei und fügen Sie dann jede Zeile einzeln hinzu, bis sie unterbrochen wird.
strace -e open
das Binärprogramm, um zu sehen, welche Dateien es öffnet. - @meuh Es wurde eine seltsame
¨
gefunden, die angenommen wird ein"
sein. Try / catch wird ' keine Syntaxfehler abfangen, und es gibt keine Entwicklerkonsole. War schwer zu erkennen. Vielen Dank für die Hilfe.
Antwort
Die „Konfigurationsdatei konnte nicht gelesen werden. Wenden Sie sich an Ihren Systemadministrator . “ ist eine generische Fehlermeldung. Das Problem könnte in autoconfig.js oder in mozconfig.js liegen.
Das Ausführen von strace -e ./firefox
, wie von @meuh vorgeschlagen, zeigte, dass Firefox die Konfigurationsdatei lädt:
open("/tmp/ff-build/bin/mozconfig.cfg", O_RDONLY) = 5
Wenn Sie einen Versuch / Fang in mozconfig.cfg
einfügen, werden jedoch keine Probleme festgestellt:
// Disable default browser check try { lockPref("browser.defaultbrowser.notificationbar", false); lockPref("browser.shell.checkDefaultBrowser", false); lockPref("browser.shell.skipDefaultBrowserCheck¨, true); // Disable updater lockPref("app.update.enabled¨, false); } catch(e) { displayError("Error", e); }
Ein leeres mozconfig.cfg
funktioniert jedoch, sodass eine zeilenweise Entfernung und ein Test durchgeführt wurden und festgestellt wurde, dass a seltsames doppeltes Anführungszeichen: ¨
. Dies ist ein Syntaxfehler, und zu Recht wurde der Versuch / Fang nicht aufgerufen.
Normalerweise sind diese Arten von Fehlern im Entwicklerfenster gefangen, aber das ist noch nicht verfügbar.
Ausführen des obigen Skripts über jslint Berichte
Nicht geschlossene Zeichenfolge.
lockPref("app.update.enabled¨, false);
Dies sind die Schritte, die ich unternommen habe, um diese generische Fehlermeldung zu debuggen und zu lösen. Ich hoffe, diese Schritte helfen p jemand anderes auch.