背景:
最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触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周主版本更新。
相关推荐
#### 第1篇 Web开发须知的浏览器内幕:缓存与存储篇(2) **3. HTTP Cache综述** - **HTTP Cache概念**: - HTTP缓存机制遵循IETF规范设计,最新的标准文档为[RFC 7234](https://tools.ietf.org/html/rfc7234),...
【标题】"易语言谷歌69内核最新浏览器源码" 涉及的主要知识点是易语言编程和基于谷歌浏览器Chromium内核的开发。易语言是一种以中文为编程语句的编程工具,旨在降低编程的门槛,使更多的人能够理解和创建程序。而...
总之,Microsoft Edge采用开源Chromium项目开发,既继承了Chromium的高性能和广泛兼容性,又融入了微软特有的安全性和用户体验设计,成为了一款兼顾个人用户和企业用户的现代浏览器。同时,对于开发者而言,这也意味...
Chromium是一款开源的浏览器项目,它的开发和维护需要用到一系列的工具和流程,其中"depot_tools"是一个重要的辅助工具集合,专门用于简化Chromium的源码获取、构建、测试和提交过程。这篇介绍将深入探讨depot_tools...
【基于QT开发的浏览器源代码(otter-browser)】是一个开放源码的项目,它使用了流行的跨平台应用程序开发框架Qt来构建一个功能完备的网络浏览器。Qt是一个强大的C++库,提供了丰富的图形用户界面(GUI)工具和系统...
DELPHI开发的浏览器源码是一个使用Delphi编程语言构建的项目,主要依赖于WebBrowser组件来实现网页浏览功能。WebBrowser组件是ActiveX控件,它内嵌了Internet Explorer的渲染引擎,因此,该浏览器可以支持IE浏览器能...
在Android操作系统中,LineageOS是一个非常知名的第三方ROM,它为用户提供了一系列的自定义选项和优化,以增强设备性能和用户体验。"安卓浏览器源码,Lineage系统浏览器"指的是LineageOS内置浏览器的源代码,这是一...
【标题】"C#写的WEB浏览器(源码)"是一个基于C#编程语言开发的网络浏览器项目,它展示了如何使用.NET Framework或.NET Core平台构建一个基本的网页浏览应用。C#是一种面向对象的、类型安全的编程语言,由微软公司开发...
PPAPI是Chromium浏览器用来支持插件的一种接口,它允许第三方开发者编写插件来扩展浏览器功能。这个源码库可能包含了PPAPI的实现细节、构建脚本、测试以及相关的工具。 描述 "chromium.googlesource....
在VB(Visual Basic)编程环境中,我们可以创建一个自定义的浏览器应用,这涉及到对Web浏览器控件的理解和使用。这个项目通常适用于学习、定制化需求或者作为基础开发平台。以下是一些关键的知识点: 1. **...
这份2016年11月1日的Chromium官方文档主要涵盖了如何下载和编译Chromium源码,这对于开发者、测试人员以及对浏览器内核感兴趣的爱好者来说是非常宝贵的资源。 一、**下载Chromium源码** 1. **获取源码仓库**: 首先...
1. **Chromium OS基础**:Chromium OS是Google开源的浏览器操作系统,基于Linux内核,以Chrome浏览器为核心。它的设计目标是提供快速、安全、稳定的网络浏览体验。书中可能涵盖Chromium OS的架构、启动流程、安全...
【C#仿遨游浏览器源码】是一款基于C#编程语言开发的浏览器应用程序,它旨在模仿遨游浏览器(Maxthon)的功能与体验。通过这款源码,开发者可以深入理解浏览器的基本工作原理,学习如何利用C#来实现浏览器的核心组件...
首先,我们要明白,IE内核,即Trident渲染引擎,是由微软开发的,用于Windows操作系统的网页浏览器Internet Explorer的核心组件。这种内核以其强大的与ActiveX控件的集成和对Microsoft Office文档的良好支持而知名。...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和.NET框架相关项目时。本话题聚焦于利用C#创建一个基于WebKit内核的浏览器,该内核同样被Chrome等流行浏览器所采用,以实现高效、稳定且与...
总之,"C# webkit为内核的浏览器打开网页源码"项目是一个融合了C#编程、WebKit浏览器内核理解和自定义浏览器开发的实践案例,对于想深入了解这些领域的开发者来说,是一份宝贵的学习资源。通过研究和理解这些代码,...
【标题】"bcb 浏览器 源码,参考"所指的是一份使用Borland C++ Builder(简称bcb)编写的浏览器应用程序的源代码。Borland C++ Builder是一款集成开发环境(IDE),它基于C++语言,并提供了一套面向对象的Windows...
在Android平台上,开发一款网页浏览器涉及众多技术和组件的整合,这个名为"Android源码——网页浏览器源码.zip"的压缩包很可能包含了一款基于Android系统的网页浏览器的完整源代码。通过对源码的深入分析,我们可以...
在.NET框架下,开发人员经常使用各种库和组件来实现特定功能,比如创建浏览器应用程序。WebKit是一个开源的渲染引擎,广泛用于许多Web浏览器,包括Safari和Chrome,它能够解析HTML、CSS、JavaScript等Web标准内容。...
Delphi写的Chromium浏览器自动更新程序,自动更新Chromium浏览器的软件版本,在Delphi7.0下开发完成,使用了第三方控件:TRzTrayIcon