Am construit Firefox pe CentOS și am probleme la setarea preferințelor implicite. Conform documente oficiale :

  1. Creați un fișier JavaScript în mod implicit / pref (pe Linux) numit autoconfig.js

Iată /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); 
  1. Creați un fișier .cfg (prin convenție, mozilla.cfg – poate fi orice fișier nume într-adevăr; trebuie doar să se potrivească cu ceea ce este specificat în preferința general.config.filename, de mai sus) în directorul programului.

Aici este /tmp/ff-build/bin/mozconfig.cfg al meu în care este singurul binar firefox:

// 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 va rula bine fără autoconfig.js prezent, dar cu configurația de mai sus Firefox nu reușește să înceapă cu o fereastră popup ying:

Nu s-a citit fișierul de configurare. Vă rugăm să contactați administratorul de sistem.

Mesaj de eroare

Am „încercat să copiez mozconfig.cfg în mai multe directoare, dar fără nicio modificare. Cum se face ca Firefox să accepte mozconfig.cfg fișier? Înțeleg greșit documentele?

(Profilurile sunt șterse și recreate, astfel încât soluția nu va fi adăugată nimic la un folder bazat pe ~ /. Cele de mai sus sunt pentru a obține preferințe implicite funcționează. Mulțumesc.)

Comentarii

  • Ați putea încerca să specificați un nume de fișier absolut ca general.config.filename, doar pentru a vedea dacă citește fișierul. Și înconjurați codul cu try{ ... }catch(e){ displayError("myerror", e); }
  • Am încercat așa cum ați sugerat să setați o cale absolută către /tmp/ff-build/bin/mozconfig.cfg, iar eu l-a înfășurat într-un bloc try / catch așa cum a fost sugerat. Calea absolută nu a funcționat ' și nu a reușit să încerce / captura ' eroarea. Apare aceeași alertă generică.
  • Poate că există un caracter fals care nu se tipărește în fișierul .cfg. Încercați un fișier gol, apoi adăugați fiecare rând pe rând până când se rupe. strace -e open programul binar pentru a vedea ce fișiere deschide.
  • @meuh A găsit un ¨ ciudat care se presupune a fi un ". Încercați / capturați nu a câștigat ' erori de sintaxă de capturare și nu există o consolă pentru dezvoltatori. A fost unul greu de observat. Vă mulțumim pentru ajutor.

Răspuns

„Nu s-a citit fișierul de configurare. Contactați administratorul de sistem . ” este un mesaj generic de eșec. Problema ar putea fi în autoconfig.js sau în mozconfig.js.

Rularea strace -e ./firefox așa cum a sugerat @meuh a arătat că Firefox încarcă fișierul de configurare:

open("/tmp/ff-build/bin/mozconfig.cfg", O_RDONLY) = 5 

Punând o încercare / captură în mozconfig.cfg astfel nu întâmpină probleme, totuși:

// 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); } 

Un mozconfig.cfg gol funcționează, totuși, deci s-a efectuat o eliminare linie cu linie și s-a descoperit un caracter ciudat cu ghilimele duble: ¨. Aceasta este o eroare de sintaxă și, pe bună dreptate, nu a fost invocat try / catch.

În mod normal, aceste tipuri de erori ar fi prins în panoul dezvoltatorului, dar acest lucru nu este încă disponibil.

Rularea scriptului de mai sus prin rapoartele jslint

Șir neînchis.

lockPref("app.update.enabled¨, false); 

Acestea sunt pașii pe care i-am luat pentru a depana și a rezolva acel mesaj de eroare generic p și altcineva.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *