Chromium源碼系列一:Chromium簡介及源代碼獲取和編譯


 
        

Chromium源碼系列一:Chromium簡介及源代碼獲取和編譯

Chromium簡介

Chromium是一個由Google主導開發的網頁瀏覽器,以BSD許可證等多重自由版權發行並開放源代碼。Chromium的開發早自2006年即開始,設計思想基於簡單、高速、穩定、安全等理念,在架構上使用了Apple發展出來的WebKit排版引擎、Safari的部分源代碼與Firefox的成果,並采用Google獨家開發出的V8引擎以提升解析JavaScript的效率,而且設計了[沙盒]、[黑名單]、[無痕瀏覽]等功能來實現穩定與安全的網頁瀏覽環境。

可以查看各個瀏覽器的市場占有率。

Chromium vs Chrome

ChromiumChrome的差異主要表現在以下方面:

  1. 程序圖標:兩者圖標只在色彩上不同,Chromium是天藍色,而ChromeGoogle公司的代表色(紅、黃、藍、綠);

    1. 自動更新:Chromium不開放自動更新功能,所以用戶需要手動下載更新,而Chrome則可自動臉上Google的服務器更新,但新版的推出很慢;

    2. 安裝模式:Chromium可以免安裝,下載zip壓縮包后解壓即可使用,而Chrome則只有安裝板;

    3. 功能差異:新功能會率先在Chromium上推出,Chrome則會相對落后很多。

獲取Chromium源代碼

可以先看一下官方文檔中的說明。簡單來講,獲取Chromium源代碼之前,需要能翻牆,系統需要滿足一定的要求,我這里使用的是Mac系統,就按照Mac的要求來做,另外我使用的shadowsocks來訪問google。

安裝depot_tools

depot_toolsGoogle官方提供的一個用來checkoutcompilerunsubmit的工具集,可以幫助我們更好的學習和調試Chromium代碼,因此我們先安裝depot_tools

  1. 克隆 depot_tools repository

    gitclone https://chromium.googlesource.com/chromium/tools/depot_tools.git
  2. 添加depot_tools路徑到PATH變量

    exportPATH="$PATH:/path/to/depot_tools"

    假設你把depot_tools放置在目錄path/to/目錄下。最好將上述命令添加到~/.bashrx或者~/.zshrc中,然后執行source ~/.bashrx或者source ~/.zshrx

獲取代碼

  1. 首先確保Unicode文件名不會破壞HFS。執行

gitconfig --globalcore.precomposeUnicode true
  1. 創建chromium目錄,切記chromium所在的目錄名中沒有空格。我在下載depot_tools之前已經創建了chromium目錄,並且將depot_toolssrc都放在了chromium目錄下。執行

mkdirchromium && cdchromium
gitconfig --globalcore.precomposeUnicode true
  1. 使用depot_tools獲取chromium代碼。執行

fetch chromium
# or
fetch chromium --no-history# 不下載全部的代碼提交歷史,推薦使用這個

下載完成后,會有一個.gclient文件,以及源代碼目錄src,之后的所有操作都在src中執行。

構建工程

Chromium使用NinjaGN作為主要的構建工具。執行

gn gen out/Default

其中out/是在src目錄下,Default可以是別的名字,但是一定要在out目錄下。

構建Chromium

使用Ninja來構建Chromium程序。執行

ninja -C out/Default chrome

執行這條命令需要挺長時間,我跑了十多個小時才完成build,不過好的一點是,即使中途中斷了,再重啟也可以在之前的基礎上使用gclient sync命令繼續構建。完成之后就可以在out/Default目錄中看到Chromium瀏覽器的應用程序了。

 

使用Xcode來構建Chromium

我們要使用Xcode來閱讀和調試Chromium代碼,因此我們需要執行

gn gen out/gn --ide=xcode

在用NinjaGN構建完成之后,執行這條命令需要的時間就比較少了。然后就可以用Xcode來打開這個工程了。執行

open out/gn/ninja/all.xcworkspace

下面是用Xcode打開工程后的代碼結構。

 

 

至此,我們就在本地構建好了Chromium的源代碼,可以開始Chromium源代碼的閱讀之旅了。

原文地址:http://wangjinlong.xyz/2018/08/23/Chromium1/

我的博客即將搬運同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=3g8pxr15j54w4


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM