Eu construí o Firefox no CentOS e estou tendo problemas para definir as preferências padrão. De acordo com o documentos oficiais :
- Crie um arquivo JavaScript em defaults / pref (no Linux) chamado autoconfig.js
Aqui está meu /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);
- Crie um arquivo .cfg (por convenção, mozilla.cfg – pode ser qualquer arquivo nome realmente; ele só precisa corresponder ao que está especificado na preferência general.config.filename, acima) no diretório do programa.
Aqui é meu /tmp/ff-build/bin/mozconfig.cfg
onde o único binário do 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);
O Firefox funcionará bem sem o autoconfig.js
presente, mas com a configuração acima o Firefox falha ao iniciar com uma tela pop-up ying:
Falha ao ler o arquivo de configuração. Entre em contato com o administrador do sistema.
Eu tentei copiar o mozconfig.cfg
para vários diretórios, mas sem alterações. Como fazer o Firefox aceitar o mozconfig.cfg
arquivo? Estou entendendo mal os documentos?
(Os perfis são excluídos e recriados para que a solução não envolva adicionar nada a uma pasta baseada em ~ /. O acima é obter as preferências padrão trabalhando. Obrigado.)
Comentários
Resposta
O “Falha ao ler o arquivo de configuração. Entre em contato com o administrador do sistema . ” é uma mensagem de falha genérica. O problema pode estar no autoconfig.js ou no mozconfig.js.
A execução de strace -e ./firefox
conforme sugerido por @meuh mostrou que o Firefox está carregando o arquivo de configuração:
open("/tmp/ff-build/bin/mozconfig.cfg", O_RDONLY) = 5
Colocar um try / catch em mozconfig.cfg
como este não detecta nenhum problema, no entanto:
// 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); }
Um mozconfig.cfg
vazio funciona, no entanto, uma remoção e um teste linha por linha foram realizados e foi descoberto um caractere de aspas duplas estranho: ¨
. Este é um erro de sintaxe e, com razão, o try / catch não foi invocado.
Normalmente, esses tipos de erros seriam capturado no painel do desenvolvedor, mas ainda não está disponível.
Executando o script acima por meio de relatórios jslint
String não fechada.
lockPref("app.update.enabled¨, false);
Estes são os etapas que executei para depurar e resolver essa mensagem de erro genérica. Espero que essas etapas ajudem p outra pessoa também.
general.config.filename
, só para ver se está lendo o arquivo. E coloque o código entretry{ ... }catch(e){ displayError("myerror", e); }
/tmp/ff-build/bin/mozconfig.cfg
, e eu envolveu-o em um bloco try / catch conforme sugerido. O caminho absoluto também ' não funcionou e tentar / pegar não ' detectou o erro. O mesmo alerta genérico surge.strace -e open
o programa binário para ver quais arquivos ele está abrindo.¨
estranho que é suposto para ser um"
. Try / catch ganhou ' para capturar erros de sintaxe e não há console de desenvolvedor. Foi difícil de detectar. Obrigado pela ajuda.