ConfiguracaoMozillaFirefox - UFSC/moodle-provas-livecd-provas GitHub Wiki

Configuração do Navegador Mozilla Firefox

Esta página descreve as configurações necessárias para deixar o navegador Mozilla Firefox o mais restrito possível, e sem qualquer menu acessível.

As configurações abaixo foram atualizadas e testadas com o Firefox 36.0 e Ubuntu 12.04 LTS (as configurações da interface mudaram a partir da versão 29.0, portanto elas não servem para as versões anteriores).

/etc/firefox/syspref.js

Este arquivo aplica várias restrições e alguns ajustes de execução, além de definir o nome do arquivo de autoconfig. A página inicial do navegador é alterada através de scripts.

Conteúdo completo do arquivo:

// Parâmetros em ordem alfabética

// Desativa a notificação de atualizações
lockPref("app.update.enabled", false);

// Não salva os arquivos automaticamente, pergunta ao usuário
lockPref("browser.download.useDownloadDir", false);

// Desativa a mensagem 'Know your rights' na primeira execução do Firefox
lockPref("browser.rights.3.shown", true);

// Desativa a restauração das abas abertas em caso de crash
lockPref("browser.sessionstore.resume_from_crash", false);

// Página inicial, o valor "about:blank" deve ser alterado via script
lockPref("browser.startup.homepage", "about:blank");

// Não redireciona para a página definida em homepage override URL
lockPref("browser.startup.homepage_override.mstone", "ignore");

// Ao iniciar exibe a página inicial que foi configurada
lockPref("browser.startup.page", 1);

// Seleciona a URL da barra de endereços ao ser clicada
lockPref("browser.urlbar.clickSelectsAll", true);

// Desativa o Healt Report
lockPref("datareporting.healthreport.service.enabled", false);
lockPref("datareporting.healthreport.service.firstRun", false);
lockPref("datareporting.healthreport.uploadEnabled", false);

// Arquivo autoconfig, localizado em /usr/lib/firefox/firefox.cfg
lockPref("general.config.filename", "firefox.cfg");

// Opção necessária se este arquivo não for codificado com ROT-13
lockPref("general.config.obscure_value", 0);

// Desativa o "Hello", que foi adicionado no Firefox 35.0 (App de chamadas de áudio e vídeo)
lockPref("loop.enabled", false);

// Configura o proxy com a opção "Sem proxy"
lockPref("network.proxy.type", 0);

// Desativa a opção de salvar senhas
lockPref("signon.rememberSignons", false);

// URL usada como página inicial após um upgrade do Firefox
lockPref("startup.homepage_override_url", "");

// URL exibida quando um novo perfil é carregado no Firefox pela primeira vez
lockPref("startup.homepage_welcome_url", "");

// Desativa a instalação de extensões
lockPref("xpinstall.enabled", false);
lockPref("xpinstall.whitelist.required", true);

/usr/lib/firefox/chrome.manifest

Neste arquivo desativamos algumas páginas especiais do navegador.

Adicionar as seguintes linhas:

// Desativa a URL about:privatebrowsing
override chrome://browser/content/aboutPrivateBrowsing.xhtml data:text/html,Disabled
// Desativa a URL about:config
override chrome://global/content/config.xul data:text/html,Disabled
// Desativa a URL about:addons (página de instalação de Extensões)
override chrome://mozapps/content/extensions/extensions.xul data:text/html,Disabled

/usr/lib/firefox/firefox.cfg

Este é o arquivo de autoconfig, ele contém código javascript que é executado como se fosse uma extensão do firefox, o código injeta três parâmetros (MOODLE-PROVAS-VERSION, MOODLE-PROVAS-IP e MOODLE-PROVAS-NETWORK) no cabeçalho HTTP que é enviado a qualquer site (apenas o site do Moodle Provas deve ser acessado pelo LiveCD), o valor desses parâmetros (%livecd_version%, %livecd_local_ip% e %livecd_local_network%), são alterados através de scripts, antes do firefox ser aberto, pois este arquivo é lido na inicialização do navegador.

Criar este arquivo com o seguinte conteúdo:

// NÃO REMOVA ESTA LINHA, a configuração é lida somente a partir da segunda linha.

Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService ).addObserver({
    observe : function(subject, topic, data) {
        var channel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);

        channel.setRequestHeader("MOODLE-PROVAS-VERSION", "%livecd_version%", false);
        channel.setRequestHeader("MOODLE-PROVAS-IP", "%livecd_local_ip%", false);
        channel.setRequestHeader("MOODLE-PROVAS-NETWORK", "%livecd_local_network%", false);
    }   
},"http-on-modify-request",false);

$HOME/.mozilla/firefox//chrome/userChrome.css

Neste arquivo configuramos a interface do navegador, desativando menus e barras desnecessárias, como a extensão indica, ele é apenas um arquivo CSS, ou seja, toda a interface do Firefox é configurada via CSS.

Para testar essas opções em um profile alternativo, basta iniciar o Firefox com outro profile: $ firefox -no-remote -P <nome_profile> (criar um profile na janela que abrirá caso ele não exista), copiar este arquivo para o diretório correto (dentro do perfil criado, no subdiretório chrome) e executar novamente o Firefox.

Sempre que o Firefox sofrer alguma atualização em sua interface, que adicione algum novo botão ou menu desnecessário, será necessário descobrir a id ou a classe CSS deste objeto para poder desativá-lo no arquivo userChrome.css, pode-se utilizar a função Inspecionar que agora vem com a Barra do Desenvolvedor no Firefox por padrão, basta abrir uma aba e acessar o seguinte endereço chrome://browser/content/browser.xul, em seguida ative a função Inspecionar pressionando a tecla F12 e clique na aba Inspecionar (utilize o botão Selecionar um elemento da página para inspecionar cada elemento da interface que abriu como um site).

Conteúdo completo do arquivo:

/* Versão compatível com o Firefox 29.0+ */

/* Desativa o menu contextual da barra de ferramentas, pois através dele é
 * possível ativar a barra de menus novamente */
#toolbar-context-menu
    { display: none !important; }

/* Desativa a barra de busca (Google e cia) */
#search-container,
#searchbar
    { display: none !important; }

/* Desativa o botão de download, de home, de favoritos e o botão principal de
   opções da barra de botões */
#nav-bar #downloads-button,
#nav-bar #home-button,
#nav-bar #bookmarks-menu-button,
#nav-bar #PanelUI-menu-button
    { display: none !important; }

Desativar o Crash Reporter

Este arquivo desativa o Crash Reporter, que é aberto sempre que o navegador fecha inesperadamente.

Criar o arquivo $HOME/.mozilla/firefox/Crash Reports/crashreporter.ini , com o conteúdo abaixo:

[Crash Reporter]
EmailMe=0
IncludeURL=1
SubmitReport=0
⚠️ **GitHub.com Fallback** ⚠️