文档章节

chromium浏览器开发系列第一篇:如何获取最新chromium源码

lonely1986
 lonely1986
发布于 2015/03/26 17:56
字数 1226
阅读 74
收藏 0

背景:
     
最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧。于是乎,本文顺理成章。由于有些细节必需描述清楚,所以这次先讲如何拿到chromium的源码,下次直接把编译过程写出来,供大家参考。

前期准备:
     之前的chromium源码都是用svn来维护,所以源码地址网上贴的到处都是,我看了一下,svn的版本最新的也就到39,往下就没有更新了。所以又看了chromium的官方,把源码编译的前期准备看了一通。简单叙述如下:


从chromium网站看到下面几句话,说明depot_tools和git很重要。所以先从它们入手。

1.下载depot_tools

下载地址:

https://src.chromium.org/svn/trunk/tools/depot_tools.zip

注意:不要使用拖拽和复制粘贴的方式从压缩包中提取文件,否则”.git”隐藏文件夹下的文件不会被提取出来。“.git”文件夹是depot_tools自动更新的必要文件。你可以使用解压工具的“解压文件…”操作。


环境变量设置,给个图更直观:

管理员权限用户:

修改PATH系统变量,在最后增加depot_tools的路径地址,如:C:\workspace\depot_tools.

非管理员用户:

添加PATH用户变量:在用户变量点击新建,增加PATH变量名,变量值为depot_tools的路径地址,如上图。

2.安装git和python

如果你已经手动安装了msysgit和python,则跳过这一步。

从命令行到保存chromium源码的路径下,运行命令:gclient。第一次运行,gclient将会安装所有和获取源码相关的工具,例如git,python:

Fetching fromhttps://src.chromium.org/svn/trunk/tools/third_party/svn_bin.zip

fatal: unable toaccess 'https://chromium.googlesource.com/chromium/tools/depot_tools.git/':Failed connect to chromium.googlesource.com:9217; No error

Cannot rebase:You have unstaged changes.

Please commit orstash them.

Failed to updatedepot_tools.

如果遇到上述问题,应该是你无法连接到chromium服务器,你可以使用vpn或者代理。

注意:

1)如果你在cygwin或者PowerShell等非命令行窗口运行gclient时,有可能能正常运行,但是msysgit,python和其他工具可能不会正确安装。

2)在首次运行gclient时,如果看到和文件系统相关的很奇怪的错误,你可以去这里找答案: http://tortoisesvn.tigris.org/faq.html#cantmove2.

3)如果你在windows xp上运行,并且看到像下面的错误:“The system cannotexecute the specified program”, 请安装 “Microsoft Visual C++ 2008 RedistributablePackage”.

3.git设置

Git安装后需要一些设置

如果你从来没有用过git,还是先百度一下git的使用方法,至少知道一些简单的操作命令。


*在获取代码之前,确认git,python,depot_tools已经加入环境变量中。

4.获取代码

1)获取主干代码:到达保存chromium代码的路径,直接右键git bash,输入$ fetch --nohooks chromium --nosvn=true开始获取主干代码:

这个过程比较慢,估计下载需要几个小时时间,慢的话也许十几个小时,所以大家最好把这一步放在晚上睡觉时进行。

2)获取主干分支标签(版本)信息:

切换至src目录下:

git fetch --tags >>tags.txt 2>&1  //标签号42.0.2311.61会保存在tags.txt文件中

git checkout -b chrome_42.0.2311.61_local_branch 42.0.2311.61

gclient sync --with_branch_heads --jobs 16

以上命令的解析大家都可以在命令的帮助里面查到。

至此,代码已经被下载到各位的硬盘中,通过git命令就可以看到分支及标签情况。今天先讲这么多,下次会把编译过程提供给大家。

注:拉取代码的过程可能很长,取决于使用的vpn的质量;最后代码拉取成功但是执行runhooks的时候脚本可能会失败,至于是否影响chrome的编译,那就只能看运气了。


附:

chromium源码channel:

canary channel:实验版本,每日发布。它没有经过充分测试,可能有某些奇怪的bug。

dev channel:每2星期发布,相对稳定,新功能和新特性都有。

beta channel:每周更新,6周大版本更新。比较稳定了,比dev版小1个版本,比stable版本早进化一个月。

stable channel:稳定版,比dev版本小2个版本,2到3周次版本更新,6周主版本更新。

第一时间获得博客更新提醒,以及更多技术信息分享,欢迎关注个人微信公众平台:程序员互动联盟(coder_online),扫一扫下方二维码或搜索微信号coder_online即可关注,我们可以在线交流。

转:http://my.oschina.net/u/2335664/blog/391787



本文转载自:http://my.oschina.net/u/2335664/blog/391787

共有 人打赏支持
lonely1986
粉丝 109
博文 34
码字总数 8686
作品 0
海淀
chromium浏览器开发系列第二篇:如何编译最新chromium源码

附上上一篇文章地址,方便大家查看: 下载源码 说一下为什么这么晚才发第二篇,上周和这周department的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了。所以请...

ghost045
2015/04/04
0
11
chromium浏览器开发系列第一篇:如何获取最新chromium源码

背景: 最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧。于是乎,本文顺理成章。由于有些细节必需描述清楚,所以这次先讲如何...

ghost045
2015/03/25
0
10
浏览器开发系列第二篇:如何编译最新chromium源码

说一下为什么这么晚才发第二篇,上周和这周department的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了。所以请大家包涵! 上期回顾: chromium源码下载: 找...

东辉在线
2015/04/04
0
0
Chromium源码系列一:Chromium简介及源代码获取和编译

Chromium源码系列一:Chromium简介及源代码获取和编译 Chromium简介 是一个由主导开发的网页浏览器,以许可证等多重自由版权发行并开放源代码。的开发早自2006年即开始,设计思想基于简单、高...

McBye
08/23
0
0
chromium浏览器开发系列第三篇:chromium源码目录说明

附上上两篇文章地址,方便大家查看: 下载源码 编译源码 上两篇介绍了下载源码和编译源码,这次主要介绍chromium的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,...

ghost045
2015/04/09
0
2

没有更多内容

加载失败,请刷新页面

加载更多

活动招募 HUAWEI HiAI公开课·北京站-如何在4小时把你的APP变身AI应用

人工智能和机器学习是全球关注的新趋势,也是当前最火爆、最流行的话题。当你拿手机用语音助手帮你点外卖,智能推荐帮你把周边美食一网打尽;当你拿起P20拍照时,它将自动识别场景进行最美优...

华为终端开放实验室
16分钟前
1
0
匹配两位小数,js正则

var regex = /^\d*(\.[1-9]|\.\d[1-9])*$/ console.log(1.2,regex.test(1.2)); console.log(0.3,regex.test(0.3)); console.log(1.03,regex.test(1.03)); ......

微信小程序-暗潮
21分钟前
1
0
905. Sort Array By Parity - LeetCode

Question 905. Sort Array By Parity Solution 题目大意:数组排序,偶数放前,奇数在后,偶数的数之间不用管顺序,奇数的数之间也不用管顺序 思路:建两个list,一个放偶数,一个放奇数,最...

yysue
25分钟前
1
0
h5 禁止手机自带键盘弹出

html: <div style="width: 350px;margin:50px auto;"><input type="text" id="datePicker" class="date_picker form-control" placeholder="点击选择入住日期" /></div> js: $("#date......

Delete90
42分钟前
1
0
color透明度对照表

透明度百分比 数值 100% 不透明 FF 95% F2 90% E6 85% D9 80% CC 75% BF 70% B3 65% A6 60% 99 55% 8C 50% 80 45% 73 40% 66 35% 59 30% 4D 25% 40 20% 33 15% 26 10% 1A 5% 0D 0% 完全透明 ......

_无问西东
44分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部