Ik heb Firefox op CentOS gebouwd en heb problemen met het instellen van standaardvoorkeuren. Volgens de officiële documenten :
- Maak een JavaScript-bestand in defaults / pref (op Linux) genaamd autoconfig.js
Hier is mijn /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);
- Maak een .cfg-bestand (volgens afspraak mozilla.cfg – het kan elk bestand zijn naam echt; het moet gewoon overeenkomen met wat is gespecificeerd in general.config.filename prefer, hierboven) in de programmamap.
Hier is mijn /tmp/ff-build/bin/mozconfig.cfg
waar het enige firefox binaire bestand is:
// 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 werkt prima zonder de autoconfig.js
aanwezig, maar met de bovenstaande configuratie start Firefox niet met een pop-up display ying:
Kan het configuratiebestand niet lezen. Neem contact op met uw systeembeheerder.
Ik “heb geprobeerd de mozconfig.cfg
naar verschillende mappen te kopiëren, maar zonder wijzigingen. Hoe Firefox de -bestand? Begrijp ik de documenten verkeerd?
(Profielen worden verwijderd en opnieuw aangemaakt, zodat de oplossing niet inhoudt dat er iets aan een op ~ / gebaseerde map moet worden toegevoegd. Het bovenstaande is om standaardvoorkeuren te krijgen werken. Dank je.)
Reacties
Antwoord
De “Kan het configuratiebestand niet lezen. Neem contact op met uw systeembeheerder . ” is een generiek foutbericht. Het probleem kan zijn in autoconfig.js of in mozconfig.js.
Met strace -e ./firefox
zoals voorgesteld door @meuh toonde aan dat Firefox het configuratiebestand laadt:
open("/tmp/ff-build/bin/mozconfig.cfg", O_RDONLY) = 5
Het plaatsen van een try / catch in mozconfig.cfg
op deze manier levert geen problemen op, maar:
// 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); }
Een lege mozconfig.cfg
werkt echter, dus een regel voor regel verwijdering en test werd uitgevoerd en ontdekte een vreemd dubbel aanhalingsteken: ¨
. Dit is een syntaxisfout en terecht werd de try / catch niet aangeroepen.
Normaal gesproken zouden dit soort fouten voorkomen gevangen in het ontwikkelaarspaneel, maar dat is nog niet beschikbaar.
Het bovenstaande script uitvoeren via jslint rapporten
Niet-gesloten string.
lockPref("app.update.enabled¨, false);
Dit zijn de stappen die ik heb genomen om die algemene foutmelding te debuggen en op te lossen. Ik hoop dat deze stappen helpen p iemand anders ook.
general.config.filename
, gewoon om te zien of het het bestand aan het lezen is. En omring de code mettry{ ... }catch(e){ displayError("myerror", e); }
/tmp/ff-build/bin/mozconfig.cfg
, en ik verpakte het in een try / catch-blok zoals voorgesteld. Het absolute pad werkte ook niet ', en try / catch heeft ' de fout niet opgevangen. Dezelfde algemene waarschuwing komt naar voren.strace -e open
het binaire programma om te zien welke bestanden het opent.¨
die wordt verondersteld een"
zijn. Probeer / catch won ' om syntaxisfouten op te vangen, en er is geen ontwikkelaarsconsole. Was moeilijk te herkennen. Bedankt voor de hulp.