Eu construí o Firefox no CentOS e estou tendo problemas para definir as preferências padrão. De acordo com o documentos oficiais :

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

Mensagem de erro

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

  • Você pode tentar especificar um nome de arquivo absoluto como general.config.filename, só para ver se está lendo o arquivo. E coloque o código entre try{ ... }catch(e){ displayError("myerror", e); }
  • Tentei, como você sugeriu, definir um caminho absoluto para /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.
  • Talvez haja algum caractere espúrio não imprimível no arquivo .cfg. Tente um arquivo vazio e, em seguida, adicione cada linha uma por uma até que seja quebrada. strace -e open o programa binário para ver quais arquivos ele está abrindo.
  • @meuh Encontrou um ¨ 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.

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.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *