3.Chromium指纹浏览器开发教程之chromium119版本源码拉取

获取Chromium最新版源码

Git是一个分布式版本控制系统,用于管理代码的版本和协作开发,它是目前最流行和广泛使用的版本控制系统之一。在Chromium项目中,通常使用gclient来获取Chromium的源代码,并使用Git来对代码进行版本控制和管理。开发者可以使用gclient命令来初始化项目、更新代码、切换分支等操作,而Git命令则用于提交修改、查看历史记录等常规的版本控制操作。因此,Git和gclient在Chromium项目中共同发挥作用,使得开发者可以更方便地进行代码管理和协作。

之前小节的全部操作都顺利完成之后,接下来就可以实际拉取Chromium源码了,在拉取源码之前,需要先对Git进行一些基础配置。请打开CMD命令行工具,依次键入以下命令:

复制代码
>git config --global user.name "Your Name"
>git config --global user.email "u-name@mail.com"
>git config --global core.autocrlf false
>git config --global core.filemode false
>git config --global branch.autosetuprebase always
>git config --global core.longpaths true

第一个命令用于设置Git全局用户名,可以替换"Your Name"为读者想要显示的用户名,当读者后续再提交代码的时候,Git会记录这个用户名;第二个命令用于设置Git全局用户邮箱地址,替换"u-name@mail.com"为你的邮箱地址,和用户名一样,邮箱地址也会在你提交代码的时候被记录下来;第三个命令用于配置Git在提交文件的时候是否自动转换行尾符,在Windows和Unix系统中行尾符是不同的,将其设置为false表示禁用;第四个命令用于配置Git是否跟踪文件的执行权限,设置为false表示不跟踪文件的执行权限变化;第五个命令用于配置Git是否在创建分支的时候自动设置为使用rebase合并,设置always表示Git会自动将新分支设置为使用rebase合并;最后一个命令用于配置Git在处理长路径和文件名时的行为,设置为true表示启动Git对长路径和文件名的支持。

在Windows平台上,默认情况下,Git对于路径名和文件名的长度有限制。这可能导致在处理一些包含较长路径或文件名的项目时出现问题。通过设置core.longpaths为true,可以解决这个问题,使得Git能够处理更长的路径名和文件名。

Git相关配置设置完毕之后,在任意目录下创建一个空的文件夹,之后在该文件夹下打开CMD命令行,键入以下命令即可开始拉取最新版Chromium源码:

复制代码
>fetch chromium

其中的fetch命令正是之前depot_tools工具中包含的脚本,这个命令运行之后从远程仓库中获取Chromium项目的代码,并将其拉取到本地,同时会获取完整的存储库历史记录,包括所有的提交、分支和标签信息。如果对项目的历史记录不感兴趣,或者只是想获取最新的代码,而不需要完整的历史记录,可以添加--no-history标志来节省时间和空间。这个标志告诉Git只拉取最新的代码快照,而不包括完整的历史记录。这样可以加快拉取的速度,并减少所需的存储空间。

复制代码
>fetch chromium --no-history

拉取Chromium最新源码的命令估计需要若干小时,因此需要时刻保持网络通畅,并且配置电脑不进入睡眠或者休眠状态,否则可能会导致拉取错误。如果在源码拉取途中发生了任何错误,或者由于任何原因中断了源码拉取,不需要再次运行fetch命令,可以在拉取源码的目录下打开CMD命令行,键入以下命令,即可在之前的基础上继续进行源码拉取:

复制代码
>gclient sync

这个命令用于同步本地代码库和远程仓库的内容,由于Chromium项目通常由多个子项目组成,每个子项目都可能有自己的代码仓库。gclient sync会检查项目配置文件,并确保所有依赖的子项目都被拉取到本地,以及更新到与远程仓库相同的状态。一旦所有依赖项都被更新到本地,gclient sync会从远程仓库拉取最新的代码变化,并将其应用到本地代码库中。这样确保本地代码库是最新的,并包含了最新的代码变更。

在全部代码拉取完毕之后,当前目录下会出现一个名为src的目录,进入该目录后,即可看到Chromium最新版源码。

获取Chromium指定版本源码

Chromium源码的更新是非常频繁的,如果想要查看Chromium源码的各个分支版本,可以到网站https://chromiumdash.appspot.com/releases?platform=Windows,如图1-24所示,该页面包含了Chromium在Windows平台下不同的分支版本和发布时间。![](https://i-blog.csdnimg.cn/direct/811ac7efadae4d00b360ef0ec5618306.png)

在实际进行浏览器开发的时候,通常会基于某个固定版本进行开发,只有在出现版本差别较大的更新的时候,才会同步到新版源码。

本书开发的Chromium指纹浏览器基于版本119.0.6045.123,要拉取指定版本源码,可以新创建一个文件夹,本书选择1.2.3节中的名为"chromium119"的文件夹,在该目录下进行指定版本源码拉取。首先需要配置一下gclient工具,以便于后续的代码拉取和管理,打开CMD命令行工具,键入以下命令:

复制代码
>gclient config https://chromium.googlesource.com/chromium/src.git

这个命令用于配置gclient工具以使用指定的Chromium项目源代码仓库。接下来在该目录下新建一个名为"git_cache"的目录,接着再次键入下一个命令:

复制代码
>gclient config --cache-dir C:\chromium119\git_cache

这个命令指定了一个本地缓存目录,用于存储从远程仓库拉取的代码副本,以便于后续的快速访问和减少网络传输量,提高代码的拉取效率。在这两个命令运行完毕之后,当前目录下会出现一个名为".gclient"的文件,打开后可以看到以下内容:

复制代码
solutions=[

{"name":'src',

"url":'https://chromium.googlesource.com/chromium/src.git',

"deps_file":'DEPS',

"managed":True,

"custom_deps":{

},

"custom_vars":{},

},

]

cache_dir='C:\\chromium119\\git_cache'

其中定义了一个名为solutions的列表,包含了一个名为src的项目配置信息。项目配置包括了该项目的名称、源代码仓库的URL、依赖文件(DEPS文件)的路径、是否由gclient管理、自定义依赖关系和自定义变量。这里的src项目指向了Chromium项目的源代码仓库,是Chromium项目的主要代码库。

最后,可以运行指定代码的同步命令,完成119版本的Chromium源码拉取:

复制代码
>gclient sync --revision src@119.0.6045.123 --with_tags --with_branch_heads

这里将指定版本的代码拉取到本地,并且包括相应的标签和分支头,这条命令的各个部分含义如下:

  1. gclient sync:这是执行同步操作的命令。它会根据之前配置的项目列表来拉取代码并更新本地仓库。
  2. --revision src@119.0.6045.123:这个选项指定了要同步的代码的具体版本。src@119.0.6045.123指的是Chromium项目中的src项目版本号为119.0.6045.123时的代码。
  3. --with_tags:这个选项指示gclient同步操作同时拉取代码仓库中的标签。标签通常用于标识重要的版本。
  4. --with_branch_heads:这个选项指示gclient同步操作同时拉取代码仓库中的分支头。分支头是每个分支的指针,它们标识了分支的最新提交。
相关推荐
守城小轩11 小时前
基于Chrome140的Quora账号自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
守城小轩2 天前
基于Chrome140的Quora账号自动化——运行脚本(三)
运维·自动化·chrome devtools·指纹浏览器·浏览器开发
Z3r4y5 天前
【Web】Jsrpc+Mitmproxy+Burp通关encrypt-labs
web安全·js逆向·jsrpc·encrypt-labs
守城小轩8 天前
基于Chrome140的Gmail账号自动化——脚本撰写(二)
自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发·超级浏览器
林鸿群9 天前
macOS26.2编译Chromium源码iOS平台
chrome·ios·chromium·源码编译
林鸿群10 天前
Ubuntu 25.10编译Chromium源码
linux·chrome·ubuntu·chromium·源码编译
林鸿群11 天前
window编译chromium源码
chrome·chromium·源码编译
TA远方12 天前
【WPF】桌面程序使用谷歌浏览器内核CefSharp控件详解
wpf·浏览器·chromium·控件·cefsharp·cefsharp.wpf
守城小轩12 天前
基于Chrome140的Reddit账号自动化(关键词浏览)——脚本撰写(二)
chrome devtools·指纹浏览器·浏览器开发
守城小轩13 天前
基于Chrome140的Reddit账号自动化(关键词浏览)——需求分析&环境搭建(一)
自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发