
Brave浏览器是一个基于Chromium开源项目的隐私保护浏览器,专注于提供快速、安全的浏览体验。项目通过内置的广告拦截器、追踪保护和加密货币钱包(Brave Wallet)等核心功能,重新定义了现代浏览器的隐私标准。该仓库包含了构建Brave桌面浏览器(支持macOS、Windows和Linux)所需的完整工具链和依赖管理。
项目状态持续活跃,定期更新Chromium基础版本并集成安全补丁与新功能。
根据代码库中的变更日志(CHANGELOG)和项目概述分析,Brave浏览器具备以下核心功能:
项目使用自定义构建工具链来同步和编译代码。主要依赖包括:
depot_tools获取src/brave目录,包含对第三方Chromium代码的补丁根据项目文档,需要按平台配置开发环境:
对于大多数用户,建议直接从Brave官方网站下载最新稳定版。对于开发者,可以克隆仓库并按照构建说明进行编译。
项目使用Node.js脚本管理依赖和构建过程。核心构建脚本位于项目根目录:
// 构建系统会自动同步brave-core子模块
const braveCoreDir = path.resolve(__dirname, '..', 'src', 'brave')
const braveCoreRef = util.getProjectVersion('brave-core')
if (!fs.existsSync(path.join(braveCoreDir, '.git'))) {
Log.status(`Cloning brave-core [${braveCoreRef}] into ${braveCoreDir}...`)
fs.mkdirSync(braveCoreDir)
util.runGit(braveCoreDir, ['clone',
util.getNPMConfig(['projects', 'brave-core', 'repository', 'url']),
'.'])
util.runGit(braveCoreDir, ['checkout', braveCoreRef])
}虽然项目主要关注浏览器整体构建,但提供了多个可扩展的接口:
# 1. 克隆主仓库
git clone https://github.com/brave/brave-browser.git
# 2. 安装依赖并同步子模块
npm install
npm run sync -- --init
# 3. 按照平台指南配置构建环境
# 4. 执行构建命令(具体命令因平台而异)以下是Brave浏览器构建系统中初始化brave-core子模块的核心代码:
// Copyright (c) 2019 The Brave Authors. All rights reserved.
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// you can obtain one at http://mozilla.org/MPL/2.0/.
const fs = require('fs')
const Log = require('../lib/logging')
const path = require('path')
const { spawnSync } = require('child_process')
const util = require('../lib/util')
Log.progress('Performing initial checkout of brave-core')
const braveCoreDir = path.resolve(__dirname, '..', 'src', 'brave')
const braveCoreRef = util.getProjectVersion('brave-core')
// 检查brave-core目录是否存在,若不存在则克隆
if (!fs.existsSync(path.join(braveCoreDir, '.git'))) {
Log.status(`Cloning brave-core [${braveCoreRef}] into ${braveCoreDir}...`)
fs.mkdirSync(braveCoreDir)
// 从NPM配置获取仓库URL并克隆
util.runGit(braveCoreDir, ['clone',
util.getNPMConfig(['projects', 'brave-core', 'repository', 'url']),
'.'])
// 切换到指定版本
util.runGit(braveCoreDir, ['checkout', braveCoreRef])
}
// 获取当前提交ID用于日志记录
const braveCoreSha = util.runGit(braveCoreDir, ['rev-parse', 'HEAD'])
Log.progress(`brave-core repo at ${braveCoreDir} is at commit ID ${braveCoreSha}`)
// 设置平台相关的npm命令
let npmCommand = 'npm'
if (process.platform === 'win32') {
npmCommand += '.cmd'
}
// 安装brave-core依赖
util.run(npmCommand, ['install'], { cwd: braveCoreDir })
// 执行同步命令,传递额外参数
util.run(npmCommand, ['run', 'sync' ,'--', '--init'].concat(process.argv.slice(2)), {
cwd: braveCoreDir,
env: process.env,
stdio: 'inherit',
shell: true,
git_cwd: '.',
})代码解析:
npm.cmd)util.run执行外部命令,确保依赖正确安装根据项目概述,构建系统的主要架构如下:
brave-browser/
├── package.json # 项目配置和依赖定义
├── src/
│ ├── brave/ # brave-core模块(挂载点)
│ │ ├── components/
│ │ │ └── adblock_rust_ffi/ # adblock-rust的FFI接口
│ │ └── DEPS # Chromium依赖定义
│ └── chromium/ # Chromium源码(通过depot_tools获取)
├── lib/
│ ├── logging.js # 日志工具
│ └── util.js # 通用工具函数
└── scripts/
└── sync.js # 同步脚本(如上所示)构建流程说明:
depot_tools获取Chromium源码package.json和DEPS文件同步各组件版本项目严格遵循安全开发实践:
## 支持的版本
所有当前稳定发布版本及更高版本(与官网下载版本一致)
## 漏洞报告
通过HackerOne平台报告安全漏洞:https://hackerone.com/brave
## 安全增强示例
- 硬件钱包桥接通信的增强验证
- 定期Chromium安全更新合并
- 安全研究人员奖励计划安全特性:
项目提供了清晰的贡献指南,核心流程包括:
1. 问题分流:验证问题是否仍存在、提供重现步骤、识别重复问题
3. 代码贡献:遵循代码规范、提交详细的拉取请求
4. 翻译协助:通过Transifex平台帮助翻译界面文本
每个拉取请求应包括:
- 问题描述的清晰变更说明
- 测试覆盖证明
- 文档更新(如适用)
- 遵循代码风格指南该项目通过模块化架构和自动化构建系统,使开发者能够高效地参与Brave浏览器的开发和改进工作。
Z88Bh7GKqQxJNR1QrJXlhZTOOT+9ac+6W90pNW0eSL0=
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。