Firefox não está lendo o arquivo de configuração padrão

1

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

  1. Create a JavaScript file in defaults/pref (on Linux) called 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. Create a .cfg file (by convention, mozilla.cfg — it can be any file name really; it just has to match what is specified in general.config.filename preference, above) in the program directory.

Aqui está meu /tmp/ff-build/bin/mozconfig.cfg , em que 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 rodará sem o autoconfig.js presente, mas com a configuração acima, o Firefox não inicia com um popup mostrando:

Failed to read the configuration file. Please contact your system administrator.

Eu tentei copiar o mozconfig.cfg para vários diretórios, mas sem alteração. Como fazer o Firefox aceitar o arquivo mozconfig.cfg ? Eu estou entendendo mal os documentos?

(Os perfis são excluídos e recriados para que a solução não envolva o acréscimo de qualquer coisa em uma pasta baseada em ~ /. O acima é para obter preferências padrão funcionando. Obrigado.)

    
por Drakes 20.10.2016 / 10:50

1 resposta

2

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 em autoconfig.js ou em mozconfig.js.

A execução de strace -e ./firefox , como 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 causa problemas, 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, portanto, uma remoção e um teste linha por linha foi realizada e foi descoberto um estranho caractere de aspas duplas: ¨ . Este é um erro de sintaxe e, com razão, o try / catch não foi invocado.

Normalmente, esses tipos de erros seriam detectados no painel do desenvolvedor, mas ainda não estão disponíveis.

A execução do script acima por meio dos relatórios jslint

Unclosed string.

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

Estas são as etapas que tomei para depurar e resolver essa mensagem de erro genérica. Espero que estes passos ajudem outra pessoa também.

    
por 20.10.2016 / 22:22