Jeg har bygget Firefox på CentOS og har problemer med å angi standardinnstillinger. I henhold til offisielle dokumenter :
- Opprett en JavaScript-fil i standard / pref (på Linux) heter autoconfig.js
Her er min /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);
- Opprett en .cfg-fil (etter konvensjon, mozilla.cfg – det kan være hvilken som helst fil navnet egentlig; det må bare samsvare med det som er spesifisert generelt. preferanse for filnavn ovenfor) i programkatalogen.
Her er min /tmp/ff-build/bin/mozconfig.cfg
der den eneste Firefox-binæren er:
// 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 vil gå bra uten autoconfig.js
til stede, men med konfigurasjonen ovenfor, klarer Firefox ikke å starte med en popup-forskyvning ying:
Kunne ikke lese konfigurasjonsfilen. Ta kontakt med systemadministratoren.
Jeg har prøvd å kopiere mozconfig.cfg
til flere kataloger, men uten endring. Hvordan få Firefox til å godta mozconfig.cfg
-fil? Misforstår jeg dokumentene?
(Profiler blir slettet og gjenskapt slik at løsningen ikke innebærer å legge til noe i en ~ / basert mappe. Ovenstående er å få standardinnstillinger fungerer. Takk.)
Kommentarer
Svar
«Kunne ikke lese konfigurasjonsfilen. Ta kontakt med systemadministratoren din . » er en generisk feilmelding. Problemet kan være i autoconfig.js eller i mozconfig.js.
Kjører strace -e ./firefox
som foreslått av @meuh viste at Firefox laster inn konfigurasjonsfilen:
open("/tmp/ff-build/bin/mozconfig.cfg", O_RDONLY) = 5
Å sette et forsøk / fange i mozconfig.cfg
som dette, får ikke noen problemer, men:
// 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); }
Et tomt mozconfig.cfg
fungerer imidlertid, så en linje-for-linje fjerning og test ble utført, og det ble oppdaget merkelig dobbelt-sitat tegn: ¨
. Dette er en syntaksfeil, og med rette ble ikke prøve / fangst påkalt.
Normalt vil denne typen feil være fanget i utviklerpanelet, men det er ikke tilgjengelig ennå.
Kjører skriptet over gjennom jslint rapporter
Ikke lukket streng.
lockPref("app.update.enabled¨, false);
Dette er trinnene jeg tok for å feilsøke og løse den generiske feilmeldingen. Jeg håper disse trinnene hel p noen andre også.
general.config.filename
, bare for å se om den leser filen. Og omgir koden medtry{ ... }catch(e){ displayError("myerror", e); }
/tmp/ff-build/bin/mozconfig.cfg
, og jeg pakket den inn i en prøve / fangst-blokk som foreslått. Den absolutte banen fungerte heller ikke ', og prøv / fangst fikk ikke ' t feilen. Det samme generiske varselet kommer opp.strace -e open
det binære programmet for å se hvilke filer det åpnes.¨
som antas å være en"
. Prøv / fang ikke ' t fang syntaksfeil, og det er ingen utviklerkonsoll. Var en tøff å få øye på. Takk for hjelpen.