chromium瀏覽器開發系列第一篇:如何獲取最新chromium源碼

背景:
     
最近攤上一個事兒,領導非要讓寫一篇技術文章,思來想去,自己接觸chrome瀏覽器時間也不短了,乾脆就總結一下吧。於是乎,本文順理成章。由於有些細節必需描述清楚,所以這次先講如何拿到chromium的源碼,下次直接把編譯過程寫出來,供大家參考。

前期準備:
     之前的chromium源碼都是用svn來維護,所以源碼地址網上貼的到處都是,我看了一下,svn的版本最新的也就到39,往下就沒有更新了。所以又看了chromium的官方,把源碼編譯的前期準備看了一通。簡單敘述如下:

wKiom1UVHnmDTKrHAACmoRr0OTw144.jpg

從chromium網站看到下面幾句話,說明depot_tools和git很重要。所以先從它們入手。

wKioL1UVH7rClbFYAAGbuoipe64900.jpg

 

1.下載depot_tools

下載地址:

https://src.chromium.org/svn/trunk/tools/depot_tools.zip

注意:不要使用拖拽和複製粘貼的方式從壓縮包中提取文件,否則”.git”隱藏文件夾下的文件不會被提取出來。“.git”文件夾是depot_tools自動更新的必要文件。你可以使用解壓工具的“解壓文件…”操作。

 

環境變量設置,給個圖更直觀:

管理員權限用戶:

wKiom1UVHo_wKvUhAAO-TeExoIg410.jpg

修改PATH系統變量,在最後增加depot_tools的路徑地址,如:C:\workspace\depot_tools.

 

非管理員用戶:

wKioL1UVH9ihiLUCAAJnwHr6i7Q914.jpg

添加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服務器,你可以使用***或者代理。

 

注意:

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安裝後需要一些設置

wKiom1UVHq2RfPpQAAEipYBxyZM576.jpg

如果你從來沒有用過git,還是先百度一下git的使用方法,至少知道一些簡單的操作命令。

 

*在獲取代碼之前,確認git,python,depot_tools已經加入環境變量中。

4.獲取代碼

1)獲取主幹代碼:到達保存chromium代碼的路徑,直接右鍵git bash,輸入$ fetch --nohooks chromium --nosvn=true開始獲取主幹代碼:

wKiom1UVHrfhhqkKAAGAASR49o0919.jpg

這個過程比較慢,估計下載需要幾個小時時間,慢的話也許十幾個小時,所以大家最好把這一步放在晚上睡覺時進行。

 

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命令就可以看到分支及標籤情況。今天先講這麼多,下次會把編譯過程提供給大家。

注:拉取代碼的過程可能很長,取決於使用的***的質量;最後代碼拉取成功但是執行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即可關注,我們可以在線交流。

wKioL1U4ZvHh9b1bAAC1-4zRJvY581.jpg 

轉載請註明出處:http://ghost045.blog.51cto.com/302164/1624441,謝謝合作!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章