文档章节

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

lonely1986
 lonely1986
发布于 2015/03/26 17:56
字数 1226
阅读 80
收藏 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
粉丝 110
博文 34
码字总数 8686
作品 0
海淀
私信 提问
chromium浏览器开发系列第一篇:如何获取最新chromium源码

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

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

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

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

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

东辉在线
2015/04/04
0
0
chromium浏览器开发系列第三篇:chromium源码目录说明

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

ghost045
2015/04/09
0
2
chromium浏览器开发系列第三篇:chromium源码目录结构

上两篇介绍了下载源码和编译源码,这次主要介绍chromium的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,欢迎交流。 另外,官网的不一定准确,他们其实也很懒,所...

yistn
2015/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js和OC交互

0.html+js 0.1html 代码 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> #colordv{ width: 100px;......

walking_yxf
7分钟前
0
0
点播转码相关常见问题及排查方式

概述: 点播转码目前涉及用户上传自动触发转码、通过SubmitTranscodeJobs接口触发转码等方式,会出现用户转码失败的情况,这当中有用户源片的问题、也有用户设置转码参数的原因以及相关资源性...

阿里云官方博客
8分钟前
0
0
工作笔记

Oracle锁表 查找被锁的表 select l.session_id,o.owner,o.object_namefrom v$locked_object l,dba_objects owhere l.object_id=o.object_id; 查找引发锁表的会话 select s.username,s.si......

呼呼南风
11分钟前
0
0
并发工具优于wati、notify(69)

现在几乎没有理由在使用wait 和 notify,使用高级工具代替 java.util.concurrent 包并发工具分三类: Executor 框架 并发集合(concurrent Collection) 同步器(synchronizer) 并发集合 对...

Java搬砖工程师
18分钟前
0
0
AutoCAD_系统变量

https://baike.sogou.com/v53561514.htm?fromTitle=cad%E5%8F%98%E9%87%8F lunits 设置线性单位。1 科学 2 小数 3 工程 4 建筑 5 分数 6 windesk...

一个小妞
25分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部