Este repositorio contiene las herramientas de compilación necesarias para crear el navegador de escritorio Brave para macOS, Windows y Linux. En particular, recupera y sincroniza código de los proyectos definidos en package.json
y src/brave/DEPS
:
Cromo
Obtiene el código a través de depot_tools
.
Establece la rama de Chromium (ej: 65.0.3325.181).
núcleo valiente
Montado en src/brave
.
Mantiene parches para código Chromium de terceros.
óxido-adblock
Implementa el motor de bloqueo de anuncios de Brave.
Vinculado a través de valiente/adblock-rust-ffi.
Puede visitar nuestro sitio web para obtener la última versión estable.
Consulte las pautas de contribución.
Nuestra Wiki también tiene información técnica útil.
Únase a la comunidad de preguntas y respuestas si desea involucrarse más con Brave. Puede pedir ayuda, analizar las funciones que le gustaría ver y mucho más. Nos encantaría contar con tu ayuda para poder seguir mejorando Brave.
Ayúdanos a traducir Brave a tu idioma enviando traducciones en https://explore.transifex.com/brave/brave_en/.
Siga a @brave en Twitter para recibir noticias y anuncios importantes.
Siga las instrucciones para su plataforma:
macos
iOS
ventanas
Linux/Android
Una vez que tenga instalados los requisitos previos, puede obtener el código e inicializar el entorno de compilación.
git clone [email protected]:brave/brave-core.git ruta-a-la-carpeta-de-su-proyecto/src/bravecd ruta-a-la-carpeta-de-su-proyecto/src/brave npm install# se descarga la fuente de Chromium, que tiene un gran historial (gigabytes de datos)# esto puede tardar mucho en finalizar dependiendo de la velocidad de Internetnpm run init
Las compilaciones de Android basadas en valientes núcleos deben usar npm run init -- --target_os=android --target_arch=arm
(o cualquier tipo de CPU para el que desees compilar) las compilaciones de iOS basadas en valientes núcleos deben usar npm run init -- --target_os=ios
También puedes configurar target_os y target_arch para init y build usando:
npm config set target_os android npm config set target_arch arm
Los parámetros adicionales necesarios para la compilación están documentados en https://github.com/brave/brave-browser/wiki/Build-configuration
Los desarrolladores internos pueden encontrar más información en https://github.com/brave/devops/wiki/%60.env%60-config-for-Brave-Developers
El tipo de compilación predeterminado es componente.
# start the component build compile npm run build
Para hacer una versión de lanzamiento:
# start the release compile npm run build Release
Las compilaciones de Android basadas en valientes deben usar npm run build -- --target_os=android --target_arch=arm
o configurar las variables de configuración de npm como se especifica arriba para init
Las compilaciones de iOS basadas en valientes núcleos deben utilizar el proyecto Xcode que se encuentra en ios/brave-ios/App
. Puede abrir este proyecto directamente o ejecutar npm run ios_bootstrap -- --open_xcodeproj
para abrirlo en Xcode. Consulte el entorno de desarrollador de iOS para obtener más información sobre las compilaciones de iOS.
Ejecutar una versión de lanzamiento con npm run build Release
puede ser muy lenta y utilizar mucha RAM, especialmente en Linux con el complemento Gold LLVM.
Para ejecutar una compilación vinculada estáticamente (lleva más tiempo compilarla, pero comienza más rápido):
npm run build - Estático
Para ejecutar una compilación de depuración (compilación de componentes con is_debug=true):
npm ejecutar compilación - Depurar
NOTA: la compilación tardará un poco en completarse. Dependiendo de su procesador y memoria, podría tardar algunas horas.
Para comenzar la construcción:
npm start [Release|Component|Static|Debug]
npm run sync -- [--force] [--init] [--create] [brave_core_ref]
Esto intentará ocultar los cambios locales en el núcleo valiente, pero es más seguro confirmar los cambios locales antes de ejecutar esto.
npm run sync
hará (dependiendo de las siguientes banderas):
? Actualice los subproyectos (chromium, valiente-core) a la última confirmación de una referencia de git (por ejemplo, etiqueta o rama)
? Aplicar parches
? Actualizar las dependencias DEPS de gclient
⏩ Ejecutar ganchos (por ejemplo, para realizar npm install
en proyectos secundarios)
bandera | Descripción |
---|---|
[no flags] | actualiza Chrome si es necesario y vuelve a aplicar parches. Si la versión de Chrome no cambió, solo volverá a aplicar los parches que hayan cambiado. Actualizará las dependencias secundarias solo si algún proyecto necesita actualizarse durante la ejecución de este script . **Utilice esto si desea que el script se encargue de mantenerlo actualizado en lugar de extraer o cambiar de rama manualmente. ** |
--force | actualiza Chromium y valiente-core a la última confirmación remota para la rama valiente-core actual y la referencia de Chromium especificada en valiente-browser/package.json (por ejemplo, master o 74.0.0.103 ). Volverá a aplicar todos los parches. Forzará la actualización de todas las dependencias secundarias.**Utilice esto si tiene problemas y desea forzar que las ramas vuelvan a un estado conocido. ** |
--init | fuerce la actualización de Chromium y valiente-core a las versiones especificadas en valiente-browser/package.json y fuerce las actualizaciones de todos los repositorios dependientes, igual que npm run init |
--sync_chromium (true/false) | Forzará u omitirá la actualización de la versión de Chrome cuando corresponda. Útil si desea evitar una actualización menor cuando no está listo para el mayor tiempo de compilación que puede resultar de una actualización de Chrome. Se mostrará una advertencia sobre el estado actual del código esperando una versión de Chrome diferente. Como resultado, su compilación puede fallar. |
-D, --delete_unused_deps | Eliminará de la copia de trabajo cualquier dependencia que se haya eliminado desde la última sincronización. Imita gclient sync -D . |
Ejecute npm run sync brave_core_ref
para verificar la referencia de núcleo valiente especificada y actualice todos los repositorios dependientes, incluido Chrome, si es necesario.
navegador valiente> cd src/brave valiente-browser/src/brave> git checkout -b nombre_rama
valiente-browser/src/brave> git buscar origen valiente-browser/src/brave> git checkout [-b] nombre_rama valiente-browser/src/brave> npm ejecutar sincronización ...Actualizando 2 parches... ...Actualizando dependencias secundarias... ...Ganchos para correr...
navegador valiente/src/brave> git pull valiente-browser/src/brave> npm ejecutar sincronización ...Actualizando 2 parches... ...Actualizando dependencias secundarias... ...Ganchos para correr...
init
, siempre dará como resultado una compilación más larga y eliminará cualquier cambio pendiente en su directorio de trabajo de Brave-Core):navegador valiente> git checkout master navegador valiente> git pull navegador valiente> npm ejecutar sincronización -- --init
valiente-browser/src/brave> característica de pago de gitB navegador valiente/src/brave> git pull valiente-browser/src/brave> cd ../.. navegador valiente> npm ejecuta apply_patches ...Aplicando 2 parches...
Navegación segura de Google : obtenga una clave API con la API SafeBrowsing habilitada desde https://console.developers.google.com/. Actualice la variable de entorno GOOGLE_API_KEY
con su clave según https://www.chromium.org/developers/how-tos/api-keys para habilitar Google SafeBrowsing.
Reglas de seguridad de Chromium.
Directrices de revisión de la IPC (en particular esta referencia)
Pautas de seguridad interna de Brave (solo para empleados)
Uso de óxido
Consulte Solución de problemas para encontrar soluciones a problemas comunes.