首先,利用vmware搭建ubuntu20.04的虚拟机
由于chromium的源码比较大,在git的时候需要分配数据交换的大小,如果小了就下不下来。所以最好给这台虚拟机分配12G内存以上。存储100G以上。ubuntu的iso文件上ubuntu官网下载即可。如果你当前机器本身就是ubuntu20.04,那么这一步就可以跳过。
构建全局上网不受限的环境
由于chromium源码被墙,想要clone下来需要自备全局上网不受限的环境。
本机做代理,ubuntu设置网络代理为当前机器
在本机中执行ipconfig,可以看见VMnet8这张网卡,就是vmware中NAT模式的网卡。
然后在Ubuntu中设置代理:
其中1080是你的全局不受限上网软件作为代理时监听的端口。
此时你在Ubuntu中测试一下看是否能够访问chromium官方网站
如果此时没有问题。那么你就直接照着官网的操作接着操作就行。你也可以参考下面的内容,是我的实践。
拉取源码必须要在一个网络环境比较好且稳定的地方
安装depot_tools
这个工具是谷歌专门用来便于下载和同步chromium源码的工具(其他的项目我不知道)。
然后在当前用户的根目录下,打开 ~/.bashrc 并将depot_tools的bin目录放到path下。也就是写入
然后回到目录中,执行
使配置生效。
获取源码
在当前用户的根目录下(最好别用root用户)创建一个你放源码的文件
然后用fetch工具来获取源码,fetch工具是depot_tools中的工具
如果提示fetch不存在,那么只有可能你的depot_tools没有下载成功或者没有加入到系统path中
这里需要注意的是,该命令因你所处的网络环境,可能会长达数小时,我200M宽带下了三小时。所以获取源码的时候一定要找一个网络环境比较好且稳定,同时你也不会离开。晚上睡觉的时候下载是一个不错的体验。
下载依赖
我们下载下来的源码中,有个src目录,进去之后执行
如果该命令没有下载大量的(接近1.5G)包,且出现了
这样的错误,这个问题可以归咎于ubuntu20.04系统的问题,你需要首先先执行
然后再执行一遍下载依赖的./build/install-build-deps.sh脚本即可。
等到依赖安装完毕,就可以看源码了。
下载clion查看源码
如果你在ubuntu上面没有自己喜欢的看c/c++源码的软件,那么可以使用clion。clion是jetbrains全家桶之一,所以稳定性还是有保证的。值得注意的是:在ubuntu下关闭clion的启动脚本的进程并不能关闭clion本身,有时候clion很流氓,关不掉的时候,只能用 ps 命令查看所有的clion进程,然后全部杀掉。
chromium源码结构
chromium下载下来的代码非常巨大,但是大部分都是测试代码。相关的资料,去官网看开发者文档就行。控制浏览器行为的代码一般是在blink相关的目录下。我就是对blink下的源码进行了修改,定义了符合自己应有场景的函数行为。
编译chromium
首先执行
下载hook并执行,完成之后,执行下面的命令即可
编译完成之后,进入到out/Default目录即可。可以看见名为chrome的可执行文件。