Personalize o Firefox usando AutoConfig

Arquivos AutoConfig podem ser usados para definir e travar preferências não cobertas pelas políticas do Firefox.

Para usar AutoConfig, você deve colocar dois arquivos em diretórios do Firefox. No Windows, eles ficam no mesmo diretório onde o Firefox está instalado. No macOS, eles ficam no diretório Contents/Resources do Firefox.app.

O primeiro arquivo que você precisa criar é chamado autoconfig.js e deve ser colocado no diretório defaults/pref. Ele deve conter as duas seguintes linhas:

pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);

A primeira linha especifica o nome do arquivo AutoConfig. Você pode especificar o nome que quiser, mas o local do arquivo não pode ser alterado.

A segunda linha no exemplo acima indica que você não quer que o AutoConfig seja obscurecido. Por padrão, o Firefox espera que o arquivo esteja com um deslocamento de 13 bytes de modo a ficar obscurecido.

O segundo arquivo que você precisa criar é chamado firefox.cfg e deve ser colocado no nível superior.

Ele deve sempre começar com uma linha comentada:

// IMPORTANTE: Inicie seu código na segunda linha

Apesar da extensão do nome de um arquivo AutoConfig ser tipicamente cfg, O arquivo AutoConfig propriamente dito é um arquivo JavaScript. Quer dizer que você pode escrever código JavaScript dentro do arquivo para obter lógicas diferentes em situações diferentes.

As seguintes funções estão disponíveis dentro de um arquivo AutoConfig:

pref(prefName, value) – define o valor de usuário de uma preferência. Esta função define explicitamente a preferência como uma preferência de usuário. Significa que se o usuário alterar o valor, será redefinido toda ver que o navegador for iniciado.

defaultPref(prefName, value) – define o valor padrão de uma preferência. Este é o valor de uma preferência caso o usuário não tenha definido nenhum valor.

lockPref(prefName, value) – define e trava o valor padrão de uma preferência. Esta é a função mais familiar às pessoas quando se trata de arquivos AutoConfig. Travar uma preferência impede que um usuário a altere e, na maioria das vezes, desativa a opção correspondente na interface gráfica das preferências, de modo que fique óbvio para o usuário que a preferência não pode ser alterada. Em casos onde não fiquem aparentes coisas desativadas na interface gráfica das preferências, existem algumas preferências “disable_button” que, quando travadas, desativam botões. Por exemplo, se for travada a preferência

pref.privacy.disable_button.view_passwords

será desativado o botão “Ver senhas”. As outras preferências que desativam botões são:

pref.general.disable_button.default_browser
pref.browser.homepage.disable_button.current_page
pref.browser.homepage.disable_button.bookmark_page
pref.browser.homepage.disable_button.restore_default
security.disable_button.openCertManager
security.disable_button.openDeviceManager
app.update.disable_button.showUpdateHistory
pref.privacy.disable_button.cookie_exceptions
pref.privacy.disable_button.view_cookies
pref.privacy.disable_button.view_passwords
pref.privacy.disable_button.view_passwords_exceptions
pref.downloads.disable_button.edit_actions

unlockPref(prefName) – destrava uma preferência. Como exemplo, pode haver casos em que você trava uma preferência para todos e depois a destrava para um usuário em particular.

getPref(prefName) – retorna o valor de uma preferência. Se a preferência não existir, é exibido um erro. Só deve ser usada com preferências que você saiba que existem.

clearPref(prefName) – remove o valor de usuário de uma preferência, a redefinindo para o valor padrão.

displayError(funcname, message) – mostra uma erro em um formato específico.

   Netscape.cfg/AutoConfig failed. Please contact your system administrator.
   Error: [funcname] failed: [message]

Isto é útil para depuração.

getenv(name) – obtém o valor de uma variável de ambiente. Permite que você faça coisas tipo obter dados como nomes de usuário e outras informações do sistema.

Se quiser gerenciar seu arquivo AutoConfig centralizadamente, você pode especificar o local de um arquivo AutoConfig secundário dentro do arquivo AutoConfig primário:

pref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");

A URL pode ser qualquer protocolo suportado pelo Firefox. Isto inclui especificar o protocolo file: para apontar para um arquivo em um drive de rede. O formato do arquivo autoconfig remoto é o mesmo do arquivo autoconfig no cliente, exceto que a primeira linha não é ignorada.

Se quiser ter informações específicas de usuário em sua configuração, você pode definir outra preferência:

pref("autoadmin.append_emailaddr", true);

Isto adiciona um ponto de interrogação (?) e um endereço de e-mail à requisição.

Você pode estar se perguntando de onde vem o endereço de e-mail. Já que o Firefox não usa endereços de e-mail, você precisará definir. Se não o fizer, o Firefox exibirá um diálogo pedindo um endereço de e-mail. A preferência é chamada mail.identity.useremail e é do tipo string. Como o arquivo autoconfig é um arquivo JavaScript, você pode definir esta preferência antecipadamente, definindo autoadmin.global_config_url. Você pode fazer algo como:

var user = getenv("USER");
lockPref("mail.identity.useremail", user);
lockPref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");

Existem algumas outras preferências que controlam aspectos do AutoConfig. autoadmin.refresh_interval faz com que o AutoConfig seja recarregado a cada intervalo de tempo especificado em minutos. Existem também algumas preferências relacionadas a como lidar com estar desconectado, incluindo autoadmin.offline_failover e autoadmin.failover_to_cached. Veja como elas funcionam.

Toda vez que um arquivo AutoConfig é obtido remotamente, uma cópia de segurança desse arquivo é criada no diretório de perfil do usuário, com nome failover.jsc. Se a preferência autoadmin.failover_to_cached estiver definida como false, o Firefox lê o arquivo em cache, marca o navegador como desconectado e trava a preferência para que o usuário não possa conectar. Se a preferência estiver definda como true, ele simplesmente usa o arquivo em cache e continua. A preferência autoadmin.offline_failover controla se o arquivo em cache é ou não usado quando o usuário está apenas desconectado. Se estiver definido como true, o arquivo em cache é usado.

Este artigo foi útil?

Por favor, aguarde...

Essas pessoas ajudaram a escrever este artigo:

Illustration of hands

Torne-se um voluntário

Desenvolva e compartilhe sua especialidade com outras pessoas. Responda perguntas e aprimore nossa base de conhecimento.

Saiba mais