Clone Chromium Source Codes

科学上网

由于国内无法访问 google 所以需要科学上网,并添加到系统代理上,打开浏览器看能否正常访问。

设置代理

使用 git 克隆代码,git 不像浏览器一样走系统代理,因此需要为 git 配置代理:

$ git config --global http.proxy 127.0.0.1:7890

在克隆代码的过程中会使用 curl/cipd,需要配置为 curl/cipd 配置代理:

$ export http_proxy=127.0.0.1:7890
$ export HTTPS_PROXY=$http_proxy

注:区分大小写

在克隆 chromium 过程中会用到 gsutil,需要为其配置代理 boto-gsutil:

$ vim ~/.boto
[Boto]
proxy=127.0.0.1
proxy_port=7890

$ export NO_AUTH_BOTO_CONFIG=~/.boto

安装 depot_tools

克隆 depot_tools 仓库:

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

depot_tools 所在位置的绝对路径添加到搜索路径 PATH:

$ export PATH=$PATH:/path/to/depot_tools

迁出 chromium 代码

创建 chromium 目录:

$ mkdir chromium && cd chromium

通过 fetch 迁出代码及依赖:

$ caffeinate fetch --no-history chromium

构建 chromium

mac_build_instructions.

定制开发分支管理

                sync fork 
origin:main  <-------------  chromium:main(stable_tag's parent)
      |                              | 
      | checkout/merge               | cherry-pick DEPS from stable_tag
      |                              |
     \|/        checkout            \|/
origin:dev   -------------->  origin:stable

我们应当基于 chromium 的稳定分支(见 Chromium Dash)进行开发,这个分支从 chromium:main 产生并且有些不同(e.g. DEPS VERSION)。所以,我们首先应当找到稳定分支的父结点 Cr-Branched-From,然后让我们的 main 分支与它同步,以保持稳定。

接着,我们可以从自己的 main 分支产生一个用于开发的分支 dev,当要发布时应合并 main 分支来保持同步稳定的新代码。

当我们自己要发布时,从 dev 产生分支,并且 cherry-pick 那些不在 main 中的部分,主要是版本信息和依赖。