В этом репозитории содержатся инструменты сборки, необходимые для сборки настольного браузера Brave для macOS, Windows и Linux. В частности, он извлекает и синхронизирует код из проектов, определенных в package.json
и src/brave/DEPS
:
Хром
Получает код через depot_tools
.
Устанавливает ветку для Chromium (например: 65.0.3325.181).
храбрец
Установлен в src/brave
.
Поддерживает исправления для стороннего кода Chromium.
Adblock-Ржавчина
Реализует движок блокировки рекламы Brave.
Связано через храбрый/adblock-rust-ffi.
Вы можете посетить наш веб-сайт, чтобы получить последнюю стабильную версию.
Пожалуйста, ознакомьтесь с рекомендациями по участию.
Наша Wiki также содержит полезную техническую информацию.
Присоединяйтесь к сообществу вопросов и ответов, если вы хотите больше участвовать в Brave. Вы можете попросить помощи, обсудить функции, которые вы хотели бы видеть, и многое другое. Мы будем рады вашей помощи, чтобы мы могли продолжать улучшать Brave.
Помогите нам перевести Brave на ваш язык, отправив переводы на https://explore.transifex.com/brave/brave_en/.
Следите за @brave в Твиттере, чтобы получать важные новости и объявления.
Следуйте инструкциям для вашей платформы:
macOS
iOS
Окна
Линукс/Андроид
После установки необходимых компонентов вы можете получить код и инициализировать среду сборки.
git clone [email protected]:brave/brave-core.git путь к папке вашего проекта/src/bravecd путь к папке вашего проекта/src/brave npm install# загружается исходный код Chromium, который имеет большую историю (гигабайты данных)# это может занять очень много времени, в зависимости от скорости интернетаnpm run init
Сборки Android на основе Brave Core должны использовать npm run init -- --target_os=android --target_arch=arm
(или любой другой тип процессора, для которого вы хотите построить) Сборки iOS на основе Brave Core должны использовать npm run init -- --target_os=ios
Вы также можете установить target_os и target_arch для инициализации и сборки, используя:
npm config set target_os android npm config set target_arch arm
Дополнительные параметры, необходимые для сборки, описаны по адресу https://github.com/brave/brave-browser/wiki/Build-configuration.
Внутренние разработчики могут найти дополнительную информацию по адресу https://github.com/brave/devops/wiki/%60.env%60-config-for-Brave-Developers.
Тип сборки по умолчанию — компонент.
# start the component build compile npm run build
Чтобы выполнить сборку релиза:
# start the release compile npm run build Release
Сборки Android на основе Brave-Core должны использовать npm run build -- --target_os=android --target_arch=arm
или установить переменные конфигурации npm, как указано выше, для init
Сборки iOS на основе Brave-Core должны использовать проект Xcode, расположенный в ios/brave-ios/App
. Вы можете открыть этот проект напрямую или запустить npm run ios_bootstrap -- --open_xcodeproj
чтобы открыть его в Xcode. Дополнительную информацию о сборках iOS см. в среде разработчика iOS.
Запуск сборки выпуска с помощью npm run build Release
может быть очень медленным и использовать много оперативной памяти, особенно в Linux с плагином Gold LLVM.
Чтобы запустить статически связанную сборку (сборка занимает больше времени, но запускается быстрее):
npm run build - статический
Чтобы запустить отладочную сборку (сборка компонента с is_debug=true):
npm run build — отладка
ПРИМЕЧАНИЕ. Для завершения сборки потребуется некоторое время. В зависимости от вашего процессора и памяти это может занять несколько часов.
Чтобы начать сборку:
npm start [Release|Component|Static|Debug]
npm run sync -- [--force] [--init] [--create] [brave_core_ref]
Это попытается сохранить ваши локальные изменения в Brave-Core, но безопаснее зафиксировать локальные изменения перед запуском этого процесса.
npm run sync
будет (в зависимости от следующих флагов):
? Обновите подпроекты (Chrome, Brave-Core) до последней фиксации ссылки git (например, тега или ветки).
? Применить патчи
? Обновление зависимостей gclient DEPS
⏩ Запуск перехватчиков (например, для npm install
в дочерних проектах).
флаг | Описание |
---|---|
[no flags] | при необходимости обновляет хром и повторно применяет исправления. Если версия хрома не менялась, будут повторно применены только изменившиеся патчи. Дочерние зависимости будут обновляться только в том случае, если какой-либо проект потребует обновления во время выполнения этого сценария . **Используйте это, если вы хотите, чтобы сценарий держал вас в курсе событий вместо того, чтобы вручную извлекать или переключать ветки. ** |
--force | обновляет Chromium и Brave-Core до последней удаленной фиксации для текущей ветки Brave-Core и ссылки Chromium , указанной в Brave-browser/package.json (например, master или 74.0.0.103 ). Повторно применю все патчи. Принудительно обновит все дочерние зависимости.**Используйте это, если у вас возникли проблемы и вы хотите вернуть ветки в известное состояние. ** |
--init | принудительно обновить Chromium и Brave-Core до версий, указанных в Brave-Browser/package.json, и принудительно обновить все зависимые репозитории - так же, как npm run init |
--sync_chromium (true/false) | Принудительно или пропустит обновление версии Chrome, если это применимо. Полезно, если вы хотите избежать незначительного обновления, когда вы не готовы к более длительному времени сборки, к которому может привести обновление Chromium. Будет выведено предупреждение о текущем состоянии кода, ожидающем другой версии Chromium. В результате ваша сборка может выйти из строя. |
-D, --delete_unused_deps | Удалит из рабочей копии все зависимости, которые были удалены с момента последней синхронизации. Имитирует gclient sync -D . |
Запустите npm run sync brave_core_ref
, чтобы получить указанную ссылку Brave-Core и при необходимости обновить все зависимые репозитории, включая Chromium.
храбрый браузер> cd src/brave храбрый-браузер/src/brave> git checkout -b имя_ветви
храбрый-браузер/src/brave> git fetch origin храбрый-браузер/src/brave> git checkout [-b] имя_ветви храбрый-браузер/src/brave> синхронизация запуска npm ...Обновление 2 патчей... ...Обновление дочерних зависимостей... ...Бегущие крючки...
храбрый браузер/src/brave> git pull храбрый-браузер/src/brave> синхронизация запуска npm ...Обновление 2 патчей... ...Обновление дочерних зависимостей... ...Бегущие крючки...
init
всегда приведет к более длинной сборке и удалит все ожидающие изменения в вашем рабочем каталоге храброго ядра):храбрый браузер> git checkout master храбрый браузер> git pull храбрый браузер> npm выполнить синхронизацию -- --init
храбрый-браузер/src/brave> git checkout FeatureB храбрый браузер/src/brave> git pull храбрый-браузер/src/brave> cd ../.. храбрый браузер> npm запустить apply_patches ...Применяем 2 патча...
Безопасный просмотр Google : получите ключ API с включенным API SafeBrowsing на странице https://console.developers.google.com/. Обновите переменную среды GOOGLE_API_KEY
, указав свой ключ согласно https://www.chromium.org/developers/how-tos/api-keys, чтобы включить Google SafeBrowsing.
Правила безопасности из Chromium
Рекомендации по проверке IPC (в частности, эта ссылка)
Правила внутренней безопасности Brave (только для сотрудников)
Использование ржавчины
См. раздел «Устранение неполадок», где описаны решения распространенных проблем.