He creado Firefox en CentOS y tengo problemas para configurar las preferencias predeterminadas. De acuerdo con documentos oficiales :

  1. 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); 
  1. 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.

Mensaje de error

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

  • Puede intentar especificar un nombre de archivo absoluto como general.config.filename, solo para ver si está leyendo el archivo. Y rodee el código con try{ ... }catch(e){ displayError("myerror", e); }
  • Intenté, como sugirió, establecer una ruta absoluta a /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.
  • Quizás haya algún carácter falso que no se imprime en el archivo .cfg. Pruebe con un archivo vacío, luego agregue cada línea una por una hasta que se rompa. strace -e open el programa binario para ver qué archivos está abriendo.
  • @meuh Encontró un ¨ 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.

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *