He creado Firefox en CentOS y tengo problemas para configurar las preferencias predeterminadas. De acuerdo con documentos oficiales :
- Cree un archivo JavaScript en los valores predeterminados / pref (en Linux) llamado autoconfig.js
Aquí está mi /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);
- Cree un archivo .cfg (por convención, mozilla.cfg; puede ser cualquier archivo nombre en realidad; solo tiene que coincidir con lo especificado en la preferencia general.config.filename, arriba) en el directorio del programa.
Aquí es mi /tmp/ff-build/bin/mozconfig.cfg
donde el único binario de Firefox es:
// 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 funcionará bien sin autoconfig.js
presente, pero con la configuración anterior, Firefox no se inicia con una pantalla emergente ying:
No se pudo leer el archivo de configuración. Comuníquese con el administrador del sistema.
He intentado copiar mozconfig.cfg
a varios directorios pero sin cambios. Cómo hacer que Firefox acepte el mozconfig.cfg
archivo? Estoy entendiendo mal los documentos?
(Los perfiles se eliminan y se vuelven a crear, por lo que la solución no implicará agregar nada a una carpeta basada en ~ /. Lo anterior es para obtener las preferencias predeterminadas trabajando. Gracias.)
Comentarios
Responder
El mensaje «No se pudo leer el archivo de configuración. Comuníquese con el administrador del sistema . » es un mensaje de error genérico. El problema podría estar en autoconfig.js o en mozconfig.js.
Ejecutar strace -e ./firefox
como sugirió @meuh mostró que Firefox está cargando el archivo de configuración:
open("/tmp/ff-build/bin/mozconfig.cfg", O_RDONLY) = 5
Sin embargo, hacer un try / catch en mozconfig.cfg
no detecta ningún problema:
// 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); }
Sin embargo, un mozconfig.cfg
vacío funciona, por lo que se realizó una eliminación y prueba línea por línea y se descubrió un carácter extraño de comillas dobles: ¨
. Este es un error de sintaxis y, con razón, no se invocó el try / catch.
Normalmente, este tipo de errores se capturado en el panel del desarrollador, pero que todavía no está disponible.
Ejecutando el script anterior a través de jslint informes
Cadena sin cerrar.
lockPref("app.update.enabled¨, false);
Estos son los pasos que tomé para depurar y resolver ese mensaje de error genérico. Espero que estos pasos ayuden p otra persona también.
general.config.filename
, solo para ver si está leyendo el archivo. Y rodee el código contry{ ... }catch(e){ displayError("myerror", e); }
/tmp/ff-build/bin/mozconfig.cfg
, y lo envolvió en un bloque try / catch como se sugiere. La ruta absoluta tampoco ' funcionó, y try / catch no ' no detectó el error. Aparece la misma alerta genérica.strace -e open
el programa binario para ver qué archivos está abriendo.¨
extraño que se supone para ser un"
. Intente / catch won ' t detecta errores de sintaxis y no hay una consola de desarrollo. Fue difícil de detectar. Gracias por la ayuda.