Ce référentiel contient les outils de construction nécessaires à la création du navigateur de bureau Brave pour macOS, Windows et Linux. En particulier, il récupère et synchronise le code des projets définis dans package.json
et src/brave/DEPS
:
Chrome
Récupère le code via depot_tools
.
Définit la branche pour Chromium (ex : 65.0.3325.181).
noyau courageux
Monté sur src/brave
.
Conserve les correctifs pour le code Chromium tiers.
adblock-rouille
Implémente le moteur de blocage des publicités de Brave.
Lié via brave/adblock-rust-ffi.
Vous pouvez visiter notre site Web pour obtenir la dernière version stable.
Veuillez consulter les directives de contribution.
Notre Wiki contient également des informations techniques utiles.
Rejoignez la communauté Q&A si vous souhaitez vous impliquer davantage dans Brave. Vous pouvez demander de l'aide, discuter des fonctionnalités que vous aimeriez voir et bien plus encore. Nous serions ravis d'avoir votre aide afin que nous puissions continuer à améliorer Brave.
Aidez-nous à traduire Brave dans votre langue en soumettant des traductions sur https://explore.transifex.com/brave/brave_en/.
Suivez @brave sur Twitter pour les nouvelles et annonces importantes.
Suivez les instructions correspondant à votre plateforme :
macOS
IOS
Fenêtres
Linux/Androïde
Une fois les prérequis installés, vous pouvez obtenir le code et initialiser l'environnement de construction.
git clone [email protected]:brave/brave-core.git chemin d'accès à votre dossier de projet/src/bravecd chemin d'accès à votre dossier de projet/src/brave npm install# la source Chromium est téléchargée, qui a un historique important (gigaoctets de données)# cela peut prendre très longtemps en fonction de la vitesse d'Internetnpm run init
Les versions Android basées sur Brave-Core doivent utiliser npm run init -- --target_os=android --target_arch=arm
(ou quel que soit le type de processeur pour lequel vous souhaitez construire) Les versions iOS basées sur Brave-Core doivent utiliser npm run init -- --target_os=ios
Vous pouvez également définir target_os et target_arch pour init et build en utilisant :
npm config set target_os android npm config set target_arch arm
Les paramètres supplémentaires nécessaires à la construction sont documentés sur https://github.com/brave/brave-browser/wiki/Build-configuration
Les développeurs internes peuvent trouver plus d'informations sur https://github.com/brave/devops/wiki/%60.env%60-config-for-Brave-Developers
Le type de build par défaut est composant.
# start the component build compile npm run build
Pour créer une version de version :
# start the release compile npm run build Release
Les versions Android basées sur Brave-Core doivent utiliser npm run build -- --target_os=android --target_arch=arm
ou définir les variables de configuration npm comme spécifié ci-dessus pour init
Les versions iOS basées sur brave-core doivent utiliser le projet Xcode trouvé dans ios/brave-ios/App
. Vous pouvez ouvrir ce projet directement ou exécuter npm run ios_bootstrap -- --open_xcodeproj
pour l'ouvrir dans Xcode. Consultez l'environnement de développement iOS pour plus d'informations sur les versions iOS.
Exécuter une version avec npm run build Release
peut être très lent et utiliser beaucoup de RAM, en particulier sous Linux avec le plugin Gold LLVM.
Pour exécuter une build liée statiquement (la construction prend plus de temps, mais démarre plus rapidement) :
npm run build - Statique
Pour exécuter une build de débogage (build de composant avec is_debug=true) :
npm run build -- Débogage
REMARQUE : la construction prendra un certain temps. En fonction de votre processeur et de votre mémoire, cela peut prendre quelques heures.
Pour démarrer la construction :
npm start [Release|Component|Static|Debug]
npm run sync -- [--force] [--init] [--create] [brave_core_ref]
Cela tentera de cacher vos modifications locales dans brave-core, mais il est plus sûr de valider les modifications locales avant d'exécuter ceci.
npm run sync
le fera (en fonction des indicateurs ci-dessous) :
? Mettre à jour les sous-projets (chromium, brave-core) avec le dernier commit d'une référence git (par exemple, balise ou branche)
? Appliquer des correctifs
? Mettre à jour les dépendances de gclient DEPS
⏩ Exécutez des hooks (par exemple pour effectuer npm install
sur des projets enfants)
drapeau | Description |
---|---|
[no flags] | met à jour Chrome si nécessaire et réapplique les correctifs. Si la version Chrome n’a pas changé, elle réappliquera uniquement les correctifs modifiés. Mettra à jour les dépendances enfants uniquement si un projet nécessite une mise à jour pendant l'exécution de ce script . **Utilisez ceci si vous souhaitez que le script gère votre mise à jour au lieu d'extraire ou de changer de branche manuellement. ** |
--force | met à jour Chromium et brave-core avec la dernière validation à distance pour la branche brave-core actuelle et la référence Chromium spécifiée dans brave-browser/package.json (par exemple master ou 74.0.0.103 ). Réappliquera tous les correctifs. Forcera la mise à jour de toutes les dépendances enfants.**Utilisez ceci si vous rencontrez des problèmes et souhaitez forcer les branches à revenir à un état connu. ** |
--init | forcer la mise à jour de Chromium et brave-core vers les versions spécifiées dans brave-browser/package.json et forcer la mise à jour de tous les dépôts dépendants - comme npm run init |
--sync_chromium (true/false) | Forcera ou ignorera la mise à jour de la version Chrome, le cas échéant. Utile si vous souhaitez éviter une mise à jour mineure lorsque vous n'êtes pas prêt pour le temps de construction plus long qu'une mise à jour de Chrome peut entraîner. Un avertissement sera émis concernant l'état actuel du code en attendant une version différente de Chrome. En conséquence, votre build peut échouer. |
-D, --delete_unused_deps | Supprimera de la copie de travail toutes les dépendances qui ont été supprimées depuis la dernière synchronisation. Imite gclient sync -D . |
Exécutez npm run sync brave_core_ref
pour extraire la référence brave-core spécifiée et mettre à jour tous les dépôts dépendants, y compris Chrome si nécessaire.
navigateur-brave> cd src/brave brave-browser/src/brave> git checkout -b nom_branche
brave-browser/src/brave> git fetch origin brave-browser/src/brave> git checkout [-b] nom_branche brave-browser/src/brave> npm run sync ...Mise à jour de 2 correctifs... ...Mise à jour des dépendances enfants... ...Crochets de course...
brave-browser/src/brave> git pull brave-browser/src/brave> npm run sync ...Mise à jour de 2 correctifs... ...Mise à jour des dépendances enfants... ...Crochets de course...
init
, entraînera toujours une construction plus longue et supprimera toutes les modifications en attente dans votre répertoire de travail brave-core) :brave-browser> git checkout master navigateur courageux> git pull brave-browser> npm run sync -- --init
brave-browser/src/brave> fonctionnalité de paiement gitB brave-browser/src/brave> git pull brave-browser/src/brave> cd ../.. brave-browser> npm exécutez apply_patches ...Application de 2 patchs...
Navigation sécurisée Google : obtenez une clé API avec l'API SafeBrowsing activée depuis https://console.developers.google.com/. Mettez à jour la variable d'environnement GOOGLE_API_KEY
avec votre clé selon https://www.chromium.org/developers/how-tos/api-keys pour activer Google SafeBrowsing.
Règles de sécurité de Chromium
Lignes directrices de révision de l'IPC (en particulier cette référence)
Consignes de sécurité interne de Brave (pour les employés uniquement)
Utilisation de la rouille
Voir Dépannage pour des solutions aux problèmes courants.