Este repositório contém as ferramentas de construção necessárias para construir o navegador de desktop Brave para macOS, Windows e Linux. Em particular, ele busca e sincroniza código dos projetos definidos em package.json
e src/brave/DEPS
:
Cromo
Busca código via depot_tools
.
Define a ramificação do Chromium (ex: 65.0.3325.181).
núcleo corajoso
Montado em src/brave
.
Mantém patches para código Chromium de terceiros.
ferrugem do adblock
Implementa o mecanismo de bloqueio de anúncios do Brave.
Vinculado através de corajoso/adblock-rust-ffi.
Você pode visitar nosso site para obter a versão estável mais recente.
Por favor, veja as diretrizes de contribuição.
Nosso Wiki também contém algumas informações técnicas úteis.
Junte-se à comunidade de perguntas e respostas se quiser se envolver mais com o Brave. Você pode pedir ajuda, discutir recursos que gostaria de ver e muito mais. Adoraríamos ter sua ajuda para continuarmos melhorando o Brave.
Ajude-nos a traduzir Brave para o seu idioma enviando traduções em https://explore.transifex.com/brave/brave_en/.
Siga @brave no Twitter para notícias e anúncios importantes.
Siga as instruções para sua plataforma:
macOS
iOS
Windows
Linux/Android
Depois de instalar os pré-requisitos, você poderá obter o código e inicializar o ambiente de construção.
git clone [email protected]:brave/brave-core.git caminho para a pasta do seu projeto/src/bravecd caminho para a pasta do seu projeto/src/brave npm install# a fonte do Chromium é baixada, que tem um grande histórico (gigabytes de dados)# isso pode demorar muito para terminar dependendo da velocidade da internetnpm run init
Compilações Android baseadas em núcleo corajoso devem usar npm run init -- --target_os=android --target_arch=arm
(ou qualquer tipo de CPU para o qual você deseja compilar) Compilações iOS baseadas em núcleo corajoso devem usar npm run init -- --target_os=ios
Você também pode definir target_os e target_arch para init e build usando:
npm config set target_os android npm config set target_arch arm
Parâmetros adicionais necessários para construir estão documentados em https://github.com/brave/brave-browser/wiki/Build-configuration
Os desenvolvedores internos podem encontrar mais informações em https://github.com/brave/devops/wiki/%60.env%60-config-for-Brave-Developers
O tipo de compilação padrão é componente.
# start the component build compile npm run build
Para fazer uma versão de lançamento:
# start the release compile npm run build Release
Compilações Android baseadas em núcleo corajoso devem usar npm run build -- --target_os=android --target_arch=arm
ou definir as variáveis de configuração npm conforme especificado acima para init
As compilações iOS baseadas em Brave-Core devem usar o projeto Xcode encontrado em ios/brave-ios/App
. Você pode abrir este projeto diretamente ou executar npm run ios_bootstrap -- --open_xcodeproj
para abri-lo no Xcode. Consulte o iOS Developer Environment para obter mais informações sobre compilações do iOS.
Executar um release build com npm run build Release
pode ser muito lento e usar muita RAM, especialmente no Linux com o plugin Gold LLVM.
Para executar uma compilação vinculada estaticamente (leva mais tempo para compilar, mas inicia mais rápido):
npm run build - Estático
Para executar uma compilação de depuração (compilação de componente com is_debug=true):
npm run build – Depurar
NOTA: a compilação demorará um pouco para ser concluída. Dependendo do seu processador e memória, isso pode levar algumas horas.
Para iniciar a construção:
npm start [Release|Component|Static|Debug]
npm run sync -- [--force] [--init] [--create] [brave_core_ref]
Isso tentará ocultar suas alterações locais no Brave-Core, mas é mais seguro confirmar as alterações locais antes de executar isso
npm run sync
irá (dependendo dos sinalizadores abaixo):
? Atualizar subprojetos (chromium, brave-core) para o commit mais recente de uma referência do git (por exemplo, tag ou branch)
? Aplicar patches
? Atualizar dependências DEPS do gclient
⏩ Execute ganchos (por exemplo, para executar npm install
em projetos filhos)
bandeira | Descrição |
---|---|
[no flags] | atualiza o cromo se necessário e reaplica patches. Se a versão do Chromium não tiver sido alterada, ela apenas reaplicará os patches que foram alterados. Atualizará as dependências filhas somente se algum projeto precisar de atualização durante a execução deste script . **Use isto se quiser que o script consiga mantê-lo atualizado em vez de extrair ou alternar ramificações manualmente. ** |
--force | atualiza o Chromium e o Brave-Core para o commit remoto mais recente do branch Brave-Core atual e a referência do Chromium especificada em Brave-browser/package.json (por exemplo, master ou 74.0.0.103 ). Reaplicará todos os patches. Forçará a atualização de todas as dependências filhas.**Use isto se você estiver tendo problemas e quiser forçar as ramificações de volta a um estado conhecido. ** |
--init | forçar a atualização do Chromium e do Brave-Core para as versões especificadas em Brave-browser/package.json e forçar as atualizações de todos os repositórios dependentes - o mesmo que npm run init |
--sync_chromium (true/false) | Forçará ou ignorará a atualização da versão do Chrome quando aplicável. Útil se você quiser evitar uma pequena atualização quando não estiver pronto para o maior tempo de construção que uma atualização do chromium pode resultar. Um aviso será exibido sobre o estado atual do código, esperando uma versão diferente do chromium. Como resultado, sua compilação pode falhar. |
-D, --delete_unused_deps | Excluirá da cópia de trabalho todas as dependências que foram removidas desde a última sincronização. Imita gclient sync -D . |
Execute npm run sync brave_core_ref
para verificar a referência de núcleo corajoso especificada e atualizar todos os repositórios dependentes, incluindo o cromo, se necessário.
navegador corajoso> cd src/bravo Brave-browser/src/brave> git checkout -b branch_name
Brave-browser/src/brave> git fetch origin Brave-browser/src/brave> git checkout [-b] branch_name Brave-browser/src/brave> npm executar sincronização ...Atualizando 2 patches... ...Atualizando dependências filhas... ... Ganchos de corrida ...
navegador corajoso/src/brave> git pull Brave-browser/src/brave> npm executar sincronização ...Atualizando 2 patches... ...Atualizando dependências filhas... ... Ganchos de corrida ...
init
, sempre resultará em uma compilação mais longa e removerá quaisquer alterações pendentes em seu diretório de trabalho do Brave-Core):navegador corajoso> git checkout master navegador corajoso> git pull navegador corajoso> npm executar sincronização --init
Brave-browser/src/brave> git checkout featureB navegador corajoso/src/brave> git pull Brave-browser/src/brave> cd ../.. navegador corajoso> npm execute apply_patches ...Aplicando 2 patches...
Navegação segura do Google : obtenha uma chave de API com a API SafeBrowsing habilitada em https://console.developers.google.com/. Atualize a variável de ambiente GOOGLE_API_KEY
com sua chave conforme https://www.chromium.org/developers/how-tos/api-keys para ativar o Google SafeBrowsing.
Regras de segurança do Chromium
Diretrizes de revisão do IPC (em particular esta referência)
Diretrizes de segurança interna da Brave (somente para funcionários)
Uso de ferrugem
Consulte Solução de problemas para soluções para problemas comuns.