`
yistn
  • 浏览: 6652 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多
背景:
     最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触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,谢谢合作!
分享到:
评论

相关推荐

    Delphi编写的Chromium浏览器自动更新器.rar

    Delphi写的Chromium浏览器自动更新程序,自动更新Chromium浏览器的软件版本,在Delphi7.0下开发完成,使用了第三方控件:TRzTrayIcon

    chromium-75.0.3753.1.tar.gz

    谷歌推出了Chrome的浏览器以及其源代码库- 铬项目,chrome浏览器背后的开源项目chromium project也成为了历史上最成功的开源项目之一,开源软件爱好者们可以在自己的电脑上下载源码,编译一个完整的chromium浏览器...

    CEF4Delphi:CEF4Delphi是一个开源项目,用于将基于Chromium的浏览器嵌入使用Windows和Linux的Delphi或LazarusFPC制作的应用程序中

    阅读任何* .pas文件第一行中的许可条款。 CEF4Delphi使用CEF 88.1.6,其中包括Chromium 88.0.4324.96。 CEF4Delphi使用的CEF二进制文件可从spotify下载:CEF4Delphi是在Delphi 10.4.1上开发和测试的,并且已经在...

    miniblink浏览器模块(含源码)18-08-14

    Miniblink是一个追求极致小巧的浏览器内核项目,全世界第三大流行的浏览器内核控件。其基于chromium最新版内核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。Miniblink保持了10M左右的极简大小,是...

    e语言-miniblink浏览器模块(含源码)18-08-14

    Miniblink是一个追求极致小巧的浏览器内核项目,全世界第三大流行的浏览器内核控件。其基于chromium最新版内核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。Miniblink保持了10M左右的极简大小,是...

    src:Android的Kiwi浏览器中使用的源代码(最新)

    2018年4月15日-第一个Kiwi Browser版本。 2019年4月15日-Kiwi Browser获得了对Chrome扩展程序的支持。 2020年4月17日-Kiwi Browser完全开源。 该代码是最新的,并且与Play商店中的版本匹配。 新版本是从开放源代码...

    旗鱼浏览器 v1.60 32位正式版.zip

    改进:功能 - 最大化后第一个标签太靠左显示的问题 改进:功能 - flash插件升级为最新的22.0.0.192 修正:功能 - 部分自己安装flash的用户在使用时遇到的提示升级flash的问题 修正:功能 - 旗鱼商店里点‘我的...

    cef-project:Chromium Embedded Framework (CEF) 示例项目官方镜像

    (CEF) 是一个简单的框架,用于在其他应用程序中嵌入基于 Chromium 的浏览器。 此存储库托管一个名为“cef-project”的示例项目,可用作使用 CEF 构建的第三方应用程序的起点。快速链接项目页面 - 教程 - 支持论坛 - ...

    javaweb投票系统源码-java-cef:JavaChromiumEmbeddedFramework(JCEF)官方镜像。使用Java编程

    侧重于促进第三方应用程序中的嵌入式浏览器用例。 CEF 通过提供生产质量稳定的 API、跟踪特定 Chromium 版本的发布分支和二进制分发,将用户与底层 Chromium 和 Blink 代码复杂性隔离开来。 CEF 中的大多数功能都有...

    易语言-miniblink浏览器模块(含源码)18-08-14

    Miniblink是一个追求极致小巧的浏览器内核项目,全世界第三大流行的浏览器内核控件。 其基于chromium最新版内核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。 Miniblink保持了10M左右的极简大小,...

    美女写真全自动小偷 V1.0.rar

    美女写真全自动小偷V1.0震撼发布(完整无错版)  朋友花了500大洋淘来的程序.我看代码不错就自己整体修改下,并且重新构架速度更快更稳定 ... 三 客户第一次访问的时候速度可能会有点慢,跟各地网速有关。

Global site tag (gtag.js) - Google Analytics