2018-05-24 WebKit/Chromium源码编译

2018-11-20  本文已影响30人  xi_lin

WebKit

代码获取

$ wget -c https://s3-us-west-2.amazonaws.com/archives.webkit.org/WebKit-SVN-source.tar.bz2  //snapshot of the WebKit source code

编译

$ ./Tools/Scripts/build-webkit --debug

默认的编译的生成目录是WebKitBuild。在TODO配置的电脑上用时如下。

WebKit build succeeded.png

调试

参考

1. webkit官方文档
2. 【技巧】编译运行WebKit Demo(Mac调试版本)
3. 调试 WebKit
4. 解决UIWebView 前进、后退刷新的坑

Chromium

核心问题:需要备一个好梯子

代理准备

$ export ALL_PROXY=http://127.0.0.1:1082
$ git config --global https.proxy http://127.0.0.1:1082
$ git config --global http.proxy http://127.0.0.1:1082

NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them. Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used. To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment var.

安装depot_tools

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH="$PATH:/path/to/depot_tools"
  1. fetch

usage: fetch.py [options] <config> [--property=value [--property2=value2 ...]]

  1. gclient

Usage: gclient.py <command> [options]

获取代码

$ mkdir chromium && cd chromium
$ git config --global core.precomposeUnicode true // Ensure that unicode filenames aren't mangled by HFS:
$ fetch  --nohooks  --no-history chromium // 先不执行hooks,减少网络传输

这一步视网络状态而定,如果中间中断的话可以通过以下语句继续

$ gclient sync

在漫长的等待后,代码获取完成,再执行hooks

$ cd src
$ gclient runhooks

继续一次漫长的等待

准备编译

$ gn gen out/gn --ide=xcode

编译

$ ninja -C out/gn chrome

漫长的等待第三遍,在TODO配置的电脑上用了大概6小时。

bfcache相关

Investigate faster back/forward page navigation 未实现
Back/Forward Cache qq浏览器的设计讨论

参考

上一篇 下一篇

猜你喜欢

热点阅读