Repositori ini menyimpan alat pembangunan yang diperlukan untuk membangun browser desktop Brave untuk macOS, Windows, dan Linux. Secara khusus, ia mengambil dan menyinkronkan kode dari proyek yang ditentukan dalam package.json
dan src/brave/DEPS
:
Kromium
Mengambil kode melalui depot_tools
.
Menetapkan cabang untuk Chromium (misal: 65.0.3325.181).
inti pemberani
Dipasang di src/brave
.
Mempertahankan patch untuk kode Chromium pihak ketiga.
adblock-karat
Mengimplementasikan mesin blok iklan Brave.
Ditautkan melalui bold/adblock-rust-ffi.
Anda dapat mengunjungi situs web kami untuk mendapatkan rilis stabil terbaru.
Silakan lihat pedoman berkontribusi.
Wiki kami juga memiliki beberapa informasi teknis yang berguna.
Bergabunglah dengan komunitas Tanya Jawab jika Anda ingin lebih terlibat dengan Brave. Anda dapat meminta bantuan, mendiskusikan fitur yang ingin Anda lihat, dan banyak lagi. Kami ingin sekali menerima bantuan Anda sehingga kami dapat terus meningkatkan Brave.
Bantu kami menerjemahkan Brave ke bahasa Anda dengan mengirimkan terjemahan di https://explore.transifex.com/brave/brave_en/.
Ikuti @brave di Twitter untuk berita dan pengumuman penting.
Ikuti petunjuk untuk platform Anda:
macOS
iOS
jendela
Linux/Android
Setelah prasyarat terinstal, Anda bisa mendapatkan kode dan menginisialisasi lingkungan build.
git clone [email protected]:brave/brave-core.git path-to-your-project-folder/src/bravecd path-to-your-project-folder/src/brave npm install# sumber Chromium diunduh, yang memiliki riwayat besar (gigabyte data)# ini mungkin memakan waktu sangat lama untuk diselesaikan tergantung pada kecepatan internetnpm run init
Build Android berbasis bold-core harus menggunakan npm run init -- --target_os=android --target_arch=arm
(atau jenis CPU apa pun yang ingin Anda buat) build iOS berbasis bold-core harus menggunakan npm run init -- --target_os=ios
Anda juga dapat mengatur target_os dan target_arch untuk init dan build menggunakan:
npm config set target_os android npm config set target_arch arm
Parameter tambahan yang diperlukan untuk membangun didokumentasikan di https://github.com/brave/brave-browser/wiki/Build-configuration
Pengembang internal dapat menemukan informasi lebih lanjut di https://github.com/brave/devops/wiki/%60.env%60-config-for-Brave-Developers
Tipe build default adalah komponen.
# start the component build compile npm run build
Untuk melakukan build rilis:
# start the release compile npm run build Release
build android berbasis bold-core harus menggunakan npm run build -- --target_os=android --target_arch=arm
atau atur variabel konfigurasi npm seperti yang ditentukan di atas untuk init
Pembuatan iOS berbasis bold-core harus menggunakan proyek Xcode yang ditemukan di ios/brave-ios/App
. Anda dapat membuka proyek ini secara langsung atau menjalankan npm run ios_bootstrap -- --open_xcodeproj
untuk membukanya di Xcode. Lihat Lingkungan Pengembang iOS untuk informasi lebih lanjut tentang versi iOS.
Menjalankan build rilis dengan npm run build Release
bisa sangat lambat dan menggunakan banyak RAM, terutama di Linux dengan plugin Gold LLVM.
Untuk menjalankan build yang tertaut secara statis (membutuhkan waktu lebih lama untuk membangun, namun dimulai lebih cepat):
npm run build -- Statis
Untuk menjalankan build debug (Build komponen dengan is_debug=true):
npm jalankan build -- Debug
CATATAN: pembangunan akan memakan waktu cukup lama untuk diselesaikan. Tergantung pada prosesor dan memori Anda, proses ini mungkin memerlukan waktu beberapa jam.
Untuk memulai pembangunan:
npm start [Release|Component|Static|Debug]
npm run sync -- [--force] [--init] [--create] [brave_core_ref]
Ini akan mencoba menyembunyikan perubahan lokal Anda di bold-core, namun lebih aman untuk melakukan perubahan lokal sebelum menjalankan ini
npm run sync
akan (tergantung pada tanda di bawah):
? Perbarui sub-proyek (chromium, bold-core) ke penerapan terbaru dari git ref (misalnya tag atau cabang)
? Terapkan tambalan
? Perbarui dependensi DEPS gclient
⏩ Jalankan hook (misalnya untuk melakukan npm install
pada proyek anak)
bendera | Keterangan |
---|---|
[no flags] | memperbarui chromium jika diperlukan dan menerapkan kembali tambalan. Jika versi chromium tidak berubah, maka hanya akan menerapkan kembali patch yang telah diubah. Akan memperbarui dependensi anak hanya jika ada proyek yang perlu diperbarui selama skrip ini dijalankan . **Gunakan ini jika Anda ingin skrip mengatur agar Anda selalu mendapatkan informasi terkini alih-alih menarik atau berpindah cabang secara manual. ** |
--force | memperbarui Chromium dan bold-core ke komit jarak jauh terbaru untuk cabang bold-core saat ini dan referensi Chromium yang ditentukan dalam bold-browser/package.json (misalnya master atau 74.0.0.103 ). Akan menerapkan kembali semua patch. Akan memaksa memperbarui semua dependensi anak.**Gunakan ini jika Anda mengalami masalah dan ingin memaksa cabang kembali ke kondisi yang diketahui. ** |
--init | paksa perbarui Chromium dan bold-core ke versi yang ditentukan di bold-browser/package.json dan paksa perbarui semua repo dependen - sama seperti npm run init |
--sync_chromium (true/false) | Akan memaksa atau melewatkan pembaruan versi chromium jika berlaku. Berguna jika Anda ingin menghindari pembaruan kecil ketika tidak siap untuk waktu pembuatan yang lebih lama yang mungkin dihasilkan oleh pembaruan kromium. Peringatan akan dikeluarkan tentang status kode saat ini yang mengharapkan versi kromium yang berbeda. Akibatnya, build Anda mungkin gagal. |
-D, --delete_unused_deps | Akan menghapus dari copy pekerjaan semua dependensi yang telah dihapus sejak sinkronisasi terakhir. Meniru gclient sync -D . |
Jalankan npm run sync brave_core_ref
untuk memeriksa ref bold-core yang ditentukan dan perbarui semua repo dependen termasuk chromium jika diperlukan.
browser berani> cd src/brave browser berani/src/berani> git checkout -b nama_cabang
browser berani/src/berani> git ambil asal browser berani/src/berani> git checkout [-b] nama_cabang bold-browser/src/brave> npm jalankan sinkronisasi ...Memperbarui 2 patch... ...Memperbarui dependensi anak... ...Kait lari...
browser berani/src/berani> git pull bold-browser/src/brave> npm jalankan sinkronisasi ...Memperbarui 2 patch... ...Memperbarui dependensi anak... ...Kait lari...
init
, akan selalu menghasilkan build yang lebih panjang dan akan menghapus semua perubahan yang tertunda di direktori kerja inti berani Anda):browser berani> git checkout master browser berani> git pull browser berani> npm jalankan sinkronisasi -- --init
bold-browser/src/brave> fitur git checkoutB browser berani/src/berani> git pull browser berani/src/berani> cd ../.. browser berani> npm jalankan apply_patches ...Menerapkan 2 tambalan...
Penjelajahan Aman Google : Dapatkan kunci API dengan API Penjelajahan Aman diaktifkan dari https://console.developers.google.com/. Perbarui variabel lingkungan GOOGLE_API_KEY
dengan kunci Anda sesuai https://www.chromium.org/developers/how-tos/api-keys untuk mengaktifkan Google SafeBrowsing.
Aturan keamanan dari Chromium
Pedoman peninjauan IPC (khususnya referensi ini)
Pedoman keamanan internal Brave (hanya untuk karyawan)
Penggunaan karat
Lihat Pemecahan Masalah untuk solusi terhadap masalah umum.