1、chrome源码目录结构

Chrome source非常庞大,并且在其主目录下还包含有工具和组件,任何一个工具和组件也附带有其源代码。

首先得熟悉这些源代码的组织结构,在http://src.chromium.org/svn/中包含如下子目录:

releases,曾经发布过的chrome源代码的正式版本;

trunk,当前最新的源代码。由于releases中的代码比较旧,这里就不做说明了,只说明trunk的结构。

在trunk下面有3个重要的目录:

deps包含了chrome编译和运行所需要的全部组件的代码。

src里面包含的则是chrome的主程序的代码,

tools包含的是下载和配置编译所需要的第三方工具的压缩包和源代码,其中就有svn和python这2个比较重要的工具。

2、下载工具

有三种方式可以获取chromium源码:

1、从chrome官网上直接下载源代码压缩包

2、svn从http://src.chromium.org/svn/trunk/src这个地方heckout,这要求你先在本地建一个源代码的主目录。

3、使用depot_tools,也是本文采取的方式。google提供的一个部署工具depot_tools。虽然这三种办法都可下载完整的源代码,但目前的情况是:chrome基于Visual Stdio 2005 进行编译,如果顺利完成编译工作,自然少不了sln文件,较早的源代码中包含有现成的sln和vcproject文件,但后来做了修改,这些文件被抛弃掉,Google自己开发了一种脚本工具叫做GYP,这个工具采用python编写,GYP采用了自定义的一套规则,用于生成各种工程文件。而关键的python则包含于depot_tools中,因此不论采用什么方法下载的代码,都得下载depot_tools这个工具,以获得必须的工程文件。

确定使用第三种方法depot_tools下载源码,首先我们要下载depot_tools: http://src.chromium.org/svn/trunk/tools ,包括一个目录和一个zip格式的压缩包。

(1)下载depot_tools到本地存储,假设位于d:/depot_tools.

(2)将d:/depot_tools添加到系统环境变量中。

(3)创建一个源代码根目录,假设为 d:/chrome,目录不得包含空格。

(4)在命令行下切换当前目录到d:/chrome。

(5)执行命令 gclient config http://src.chromium.org/svn/trunk/src ,该命令会首先下载svn和python分别到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。(也可以指定版本:gclient config http://src.chromium.org/svn/releases/36.0.1929.1,源码版本查看地址:https://src.chromium.org/viewvc/chrome/releases/ )

第(5)步可能出现如下问题:

问题1:下载git失败:Cannot make HTTP request(操作超时)

解决办法:1) 从https://commondatastorage.googleapis.com/chrome-infra/git-1.9.0.chromium.3_bin.zip直接下载git-1.9.0.chromium.3_bin.zip文件,然后 发布到任意http server。 
    2) 打开depot_tools安装目录下bootstrap\win\win_tools.bat文件,找到set GIT_ZIP_URL=https://commondatastorage.googleapis.com/chrome-i nfra/%GIT_ZIP_FILE%修改为1)中发布的地址,例如http://localhost:7869/%GIT_ZIP_FILE% 
    3) 再次运行gclient,ok!

问题2:连接googlesource错误:Failed connect to chromium.googlesource.com:443

解决办法:修改host,添加以下内容:74.125.31.82  www.googlesource.com
     74.125.31.82  android.googlesource.com
     203.208.46.172  cache.pack.google.com
     59.24.3.173  cache.pack.google.com

问题3:更新depot失败:depot_tools update failed. Conflict in /opt/depot_tools
Cannot rebase: You have unstaged changes.
Please commit or stash them.

解决办法:cd depot_tools/

git checkout *

(6)执行gclient sync --force,开始同步代码,如果下载过程中出现问题,重新执行此命令

若在下载源码过程中出现下载toolchain_win_x86.tar.bz2等文件失败时,可以考虑如下做法:
  a) 用浏览器将这些文件下载到本地(可能url会被墙,需要结合goagent与chrome,具体配置goagent的方法见《Linux下配置Goagent》)
  b) 在本地搭建tomcat服务器,搭建一个可供本地连接并下载的web服务器。
  c) 分别为每个文件配置目录,最终url的形式如:http://127.0.0.1/x86_toolchain/r12034/toolchain_win_x86.tar.bz2
  d) 修改D:\chromium-src\src\native_client\build\toolchainbinaries.py文件:BASE_DOWNLOAD_URL = ('http://127.0.0.1:8080')
   然后重新执行gclient sync --force即可。

参考博客地址列表:http://blog.csdn.net/namelcx/article/details/5971159

http://blog.csdn.net/glunoy/article/details/23591047

http://blog.csdn.net/hezhipin610039/article/details/31372619

使用depot_tools下载chromium源码相关推荐

  1. 下载chromium源码gclient代理设置 git代理设置

    一,为了解决 depot_tools自身更新问题,为depot_tools增加代理支持,修改c:\depot_tools\bootstarp\win\get_file.js文件: (1)改xml_ht ...

  2. Chromium源码下载问题及方案汇总

    博客文章 移至这里:http://www.cnso.org/2017/11/21/86.html 在收集Chromium源码相关资料的时候参考的一些比较有价值的文章和连接,均给出了来源,在自己下载并编 ...

  3. windows下载编译chromium源码

    前言 chromium 源码的下载编译,真的就是如各位前辈说的一样,参考再完整的教程,还是会遇到各种各样的问题.因为每个人的开发环境是不一样的,网络环境也不一样. 一路参考各路大神的教程开始踩坑填坑的 ...

  4. chromium源码下载并编译

    目前,chromium的源代码已经全部迁移到了git管理,所以本文主要梳理一下下载chromium源代码的过程. 一.概况 chromium现在分为四个大分支: canary:最前沿的版本,每天都发布 ...

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

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

  6. ubuntu20.04修改编译chromium源码实战

    首先,利用vmware搭建ubuntu20.04的虚拟机 由于chromium的源码比较大,在git的时候需要分配数据交换的大小,如果小了就下不下来.所以最好给这台虚拟机分配12G内存以上.存储100 ...

  7. Linux Chromium源码编译

    LInux Chromium源码编译 LInux下Chromium采用gn+ninja编译方式.老版的gyp方式已被抛弃,并且在默认情况下(is_clang 标志位为true),会使用clang编译器 ...

  8. windows下如何下载android源码

    在网上找了好久都没有找到如何批量下载,只是找到有位通过角本执行来进行下载的. 试了一下在我机器上运行有问题,所以索性自己搞了一个出来. 首先根据官方的说法要下载git,这个无论如何是要下载的. 点击安 ...

  9. Chromium源码目录结构简介

    Chromium源码目录结构简介入门必备. High-level overview 高级概述 Chromium is separated into two main parts (excluding ...

  10. 下载AOSP源码编译、调试、刷机

    一.准备工作 系统最好是Linux或者mac OS(本文基于Ubuntu). Ubuntu设置永不休眠,在setting中搜索power.blank-screen选择never. 一块大一点儿的硬盘, ...

最新文章

  1. 基于Python实现图画转换字符画
  2. sklearn基于make_scorer函数为Logistic模型构建自定义损失函数+代码实战(二元交叉熵损失 binary cross-entropy loss)
  3. 信息安全系统设计基础第三周学习总结
  4. es6 Module语法
  5. JS函数式编程概念理解:函子(Functor)
  6. Win10系列:JavaScript图形
  7. HBase 2.X版本的元数据修复及一种数据迁移方式
  8. IOS之学习笔记二(块)
  9. 我来重新学习js的面向对象(part 4)
  10. Android 系统(208)---OTA升级后概率性出现卡在开机动画界面无法退出
  11. Python中__init__和__new__的区别详解
  12. 你要悄悄学习3D城市,然后惊艳所有人(1)
  13. DM05-奇异点处理总结
  14. 编译:一个 C 程序的艺术之旅(转载)
  15. 自定义View 实现圆形seekbar (音量旋钮)
  16. source insight 4.0 使用make命令编译
  17. StoneDB 为何敢称业界唯一开源的 MySQL 原生 HTAP 数据库
  18. 编写程序数一下 1到 100 的所有整数中出现多少次数字9_C语言编写
  19. 计算机视觉:特征提取与匹配
  20. 前端插件库之vue3使用vue-codemirror插件

热门文章

  1. 关于影视后期制作的就业市场调查报告
  2. 【腾讯笔试题】记腾讯2019年暑假实习移动端开发在线笔试题
  3. 基于EasyDarwin云平台实现的EasyClient客户端与EasyCamera摄像机之间的对讲与云台控制功能
  4. 计算机iis配置具体步骤,IIS配置运行ASP网站配置与注意事项
  5. 计算机基础知识500字以上,计算机心得体会500字(精选6篇)
  6. SolidWorks设计助手,可以标注和实体无关的工程图标注
  7. c 语言翻译软件,分享一款 程序员秒懂的翻译软件
  8. 第八章 软件维护(1)
  9. 计算机绘图第二章,机械制图电子教桉-02第二章+计算机绘图..ppt
  10. 易优超级字典生成器 v3.35 下载