上一节在完成了基础环境搭建之后,这一节内容是将源码拉取到我们本地,为后续修改chromium源码做准备,这节内容非常漫长,速度快慢取决于你的网络和机器配置,如果网络和机器不好的话,编译和拉取代码的时间可能会超过十几个小时,拉取源码过程大约花了40分钟,机器上编译chromium过程花了6个多小时,才编译出chromium浏览器,所以,有一台好的机器和网络非常重要。
设置git全局环境变量
首先在新下载的powershell中执行以下命令,设置一下git全局环境变量,一行一行执行,本地代理端口号改成自己的即可
csharp
git config --global http.proxy http://127.0.0.1:10808
git config --global https.proxy http://127.0.0.1:10808
git config --global http.sslVerify false # 禁用 HTTPS 请求的 SSL 证书验证
git config --global core.autocrlf false # 禁用换行符的自动转换
git config --global core.filemode false # 禁用 Git 对文件权限模式(如可执行权限)的检测
git config --global branch.autosetuprebase always # 控制新分支的默认行为,使其在拉取(pull)时自动使用 rebase 而不是 merge
这两个可以选择性开启
git config --global core.fscache true # 启用文件系统缓存功能
git config --global core.preloadindex true # 启用索引预加载功能
设置好了之后,在depot_tools同级目录中新建一个chromium目录
创建boto.cfg和设置boto.cfg
创建boto.cfg文件写入内容,本地代理的端口号proxy_port参数改成自己的就可以
ini
[Boto]
proxy = 127.0.0.1
proxy_port = 10808
新增环境变量NO_AUTH BOTO_CONFIG,值为boto.cfg文件路径
拉取源码
设置好了之后,首先将powershell当前目录切换到我们新建的chromium目录,然后执行以下命令,就可以开始拉取源码了,本地代理的端口号记得改成自己的就可以
ruby
$env:HTTP_PROXY="http://127.0.0.1:10808"; $env:HTTPS_PROXY="http://127.0.0.1:10808"
fetch --no-history chromium
拉取中的状态,如果你的网络不好,这将会是一个非常漫长的过程,需要耐心等待
拉取完之后会显示这个
拉取完之后,还会自动执行Hooks
当这2个都是百分之百,就说明成功了,下一步就可以执行编译了。
生成配置
在chromium目录下执行以下命令,设置生成配置
scss
cd src && gn gen out/Default
编辑配置
执行成功之后,运行一下命令编辑配置
sql
gn args out/Default
运行之后他会打开一个txt的文件,这里面就是写后面要编译的条件,这是官方的编译条件配置参考链接www.chromium.org/developers/...
将这些内容粘贴进去,然后运行
ini
# 系统
target_os="win"
# 架构
target_cpu="x64"
# 是否开启调试
is_debug=false
# 不允许远程调试
enable_remoting=false
# 使用Chrome官方的编译优化建议
is_official_build=true
# 分散链接编译
is_component_build=false
#不使用官方API秘钥
use_official_google_api_keys=false
#不使用官方API秘钥
google_api_key=false
#不使用官方API秘钥
google_default_client_secret=false
#关闭支持NACL,这是一种Chrome插件,因为安全性,稳定性存在问题,已经很少使用了
enable_nacl=false
#支持H264编码
proprietary_codecs=true
#解码器
ffmpeg_branding="Chrome"
#使用无符号或最少符号实现更快的构建
symbol_level=0
#删除v8符号
v8_symbol_level=0
#删除WebCore符号
blink_symbol_level=0
#Chrome品牌标识和实验性标志
disable_fieldtrial_testing_config=true
之后可能会报这么一个错误
记事本打开chromium目录下的 .gclient 文件
将内容新增到这个位置
修改保存之后,根据前面报错日志中的提示,再运行一次以下命令
gclient runhooks
gclient runhooks运行成功之后,再从之前的编辑配置步骤重新执行一下
编译chromium
以上都正常之后,就可以开始编译了,执行以下命令即可,这是一个非常漫长的过程,所以如果你是笔记本,请连接好你的电源,保证你的网络一直是畅通的,保持屏幕常亮,关闭所有杀毒软件的目录扫描,关闭所有会让你电脑息屏的软件
sql
autoninja -C out/Default chrome
大约53000多个组件要编译,时间的话,需要几个小时到几十个小时不等,具体看你的机器配置,全程几乎跑满CPU,编译好了之后结果会生成在 chromium目录下的 src/out/Default 目录。然后运行chrome.exe, 正常之后,说明我们编译配置和编译环境是ok的,就可以到下一节膝盖源码的内容了
下一节就是修改chromium源码,实现一些我们想要实现的功能