Esta base de código está obsoleta. A partir do Adblock Plus 3.11, o Adblock Plus para Chrome, Firefox, Microsoft Edge e Opera é baseado no repositório adblockplusui.
O desenvolvimento da integração principal de bloqueio de anúncios para extensões da web foi movido para o repositório webext-sdk.
Este repositório contém o código-fonte do Adblock Plus específico da plataforma para Chrome, Opera, Microsoft Edge e Firefox. Ele pode ser usado para construir o Adblock Plus para essas plataformas.
No Windows, você precisa de um ambiente Linux rodando em WSL. Em seguida, instale os requisitos acima e execute os comandos abaixo no Bash.
Clone os repositórios externos:
git submodule update --init --recursive
Nota: ao compilar a partir de um arquivo fonte, esta etapa deve ser ignorada.
Instale os pacotes npm necessários:
npm install
Execute novamente os comandos acima quando as dependências puderem ter mudado, por exemplo, após verificar uma nova revisão.
Execute o seguinte comando no diretório do projeto:
npx gulp build -t {chrome|firefox} [-c development]
Isso criará uma compilação com um nome no formato adblockpluschrome-nnnzip ou adblockplusfirefox-nnnxpi . Essas compilações não estão assinadas. Eles podem ser enviados como estão para os armazenamentos de extensões ou, se descompactados, carregados no modo de desenvolvimento para teste (igual às compilações devenv abaixo).
Para simplificar o processo de teste de suas alterações você pode criar um ambiente de desenvolvimento descompactado. Para isso execute um dos seguintes comandos:
npx gulp devenv -t {chrome|firefox}
Isso criará um diretório devenv.* no diretório do projeto. Você pode carregar o diretório como uma extensão descompactada em chrome://extensions em navegadores baseados em Chromium e em about:debugging no Firefox. Depois de fazer alterações no código-fonte, execute novamente o comando para atualizar o ambiente de desenvolvimento e a extensão deverá recarregar automaticamente após alguns segundos.
Se você deseja criar uma extensão baseada em nosso código e usar as mesmas ferramentas de construção, oferecemos algumas opções de personalização.
Isso pode ser feito por:
Especificar um caminho para um novo arquivo de configuração relativo a gulpfile.mjs
(deve corresponder à estrutura encontrada em build/config/
).
npx gulp {build|devenv} -t {chrome|firefox} --config config.mjs
Especificando um caminho para um novo arquivo manifest.json
relativo a gulpfile.mjs
. Você deve verificar build/manifest.json
e build/tasks/manifest.mjs
para ver como o modificamos.
npx gulp {build|devenv} -t {chrome|firefox} -m manifest.json
Para verificar suas alterações você pode usar o conjunto de testes de unidade localizado no diretório qunit do repositório. Para executar os testes de unidade, acesse a página Opções da extensão, abra o JavaScript Console e digite:
location.href = "qunit/index.html";
Os testes de unidade serão executados automaticamente assim que a página for carregada.
Há também um executor de testes externo que pode ser invocado a partir da linha de comando para executar os testes de unidade junto com alguns testes de integração em diferentes navegadores e também executar automaticamente o linter.
No Windows, para utilizar o executor de testes, além de configurar um ambiente Linux conforme descrito acima, você precisa ter o Node.js instalado em seu ambiente nativo do Windows. Em seguida, execute os comandos abaixo no PowerShell ou cmd.exe (ao contrário da construção da extensão que precisa ser feita no Bash).
No Linux, as versões mais recentes do Chromium requerem libgbm
.
Certifique-se de que os pacotes necessários estejam instalados e atualizados:
npm install
Inicie o processo de teste para todos os navegadores:
npm test
Inicie o processo de teste em apenas um navegador:
npm test -- -g <Firefox|Chromium|Edge>
Para executar outros subconjuntos de teste, verifique a opção -g
na documentação do Mocha.
Por padrão, ele baixa (e armazena em cache) e executa os testes na versão compatível mais antiga e na versão mais recente de cada navegador. Para executar os testes em uma versão diferente, defina as variáveis de ambiente CHROMIUM_BINARY
, FIREFOX_BINARY
ou EDGE_BINARY
. Os seguintes valores são aceitos:
installed
path:<path>
download:<version>
<major>.<minor>
, para Chromium este deve ser o número de revisão). Esta opção não está disponível para Edge. O subconjunto de testes de filtro usa páginas de teste ABP. Para executar esses testes em uma versão diferente das páginas de teste, defina a variável de ambiente TEST_PAGES_URL . Além disso, para aceitar certificados https
inseguros, defina a variável de ambiente TEST_PAGES_INSECURE como "true"
.
O Edge Chromium precisa ser instalado antes de executar os testes do Edge.
Você pode limpar o código usando ESLint.
Você precisará configurar primeiro. Isso instalará nossa configuração eslint-config-eyeo e tudo o que for necessário após a execução:
npm install
Então você pode executar para limpar o código:
npm run lint