前面我们在客户端开发漫谈中提到electron客户端方案,该方案是借助用chromium浏览器来对图形,音视频进行解码和渲染的,而chromium就是google chrome浏览器的开源版本,本文将对chrome浏览器的开源版本的下载和编译进行实战,后面我们将对chrome代码进行二次开发进行展开,以满足electron业务发展需求或者浏览器定制开发,或者加深对chrome浏览器工作原理的理解。
系统环境
1)操作系统:win10或更新
2)内存至少8G以上,推荐16G编译更快
3)至少100G磁盘
4)至少Visual Studio 2017 (>=15.7.2)编译环境,不过VS2019 (>=16.0.0)以上更好,笔者采用的是VS2019。
一、环境安装
VS2019需要安装C++桌面开发应用;包含“Desktop development with C++”组件和“MFC/ATL support” sub-components,其中SDK需要win10 SDK(10.0.19041.0以上)。
这里的坑:1)安装Windows SDK版本不对 2)Windows SDK默认安装没有windbg,即系统没有C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 目录,需要在控制面板找到windows soft develop kit,增加debugging tools for windows。
2)安装depot_tools工具
下载地址https://storage.googleapis.com/chrome-infra/depot_tools.zip,并解压到D盘,将该路径加入path环境变量;同时在环境变量中增加DEPOT_TOOLS_WIN_TOOLCHAIN = 0(即告诉depot_tools使用本地安装VS,不要google社区更新);
3)开启一个cmd控制台,运行gclient命令,gclient会自动更新环境,安装git和python环境(如果已经安装git和python,此步可以跳过)
二.下载
下载是一个痛苦的过程,不过不要灰心,选择一个好的本地网络,同时避开网络高峰,多试试,还是可以的。
1)配置git
$ git config --global user.name "My Name"
$ git config --global user.email "my-name@chromium.org"
$ git config --global core.autocrlf false
$ git config --global core.filemode false
$ git config --global branch.autosetuprebase always
2) 创建目录
$ mkdir chromium && cd chromium
3)下载代码
$ fetch chromium
如果不想下整个仓库,只下最新代码,可以使用fetch --no-history chromium,减少下载量。
三.编译
1)配置生成VS解决方案
gn gen --ide=vs2019 --filters=//chrome;//media/* --no-deps out\debug --args="is_component_build = true enable_nacl = false is_debug = true blink_symbol_level = 0"
最后生成含15880个工程的解决方案
配置生成
Chrome 配置生成的VS解决方案
2)打开VS解决方案,选择chrome项目,生成即可
Chrome解决方案打开视图
生成过程也是一个漫长过程,毕竟整个解决方案15880个工程,而某些工程也是依赖第三方库,异常的庞大,我是8核16G内存电脑,大概编译一个晚上可以完成。
最后生成一个chrome.exe,双击打开,即可浏览网页,播视频等。
Chrome.exe的生成
Chrome.exe浏览网页
关于window下的chrome的下载和编译就到此为止,由于机器环境的差异,可能还会遇到其他问题,这都需要查看log,分析问题逐步就解决的。