chromium瀏覽器開發系列第一篇:如何獲取最新chromium原始碼
轉自:https://my.oschina.net/ghost045/blog/397663
摘要: 前面介紹了原始碼下載,編譯。接下來要介紹一下目錄結構,方便大家以後對架構的瞭解。附上上兩篇文章地址,方便大家檢視:
上兩篇介紹了下載原始碼和編譯原始碼,這次主要介紹chromium的原始碼目錄結構,我也是通過原始碼和官網結合來跟大家說,如果有說的不準確的,歡迎交流。
另外,官網的不一定準確,他們其實也很懶,所以最主要還是靠自己。官網只能作為一個參考。
Chromium結構相對兩年前變化很大。目錄結構依然很清晰,主要有三個部分(不包括其他的庫):瀏覽器,渲染器,webkit。瀏覽器是主要的程序,代表所有的
簡單介紹解決方案檔案:
解決方案檔案是src/chrome/chrome.sln。
-
啟動程式碼是在chrome/chrome_initial專案。
-
常見的共享庫的程式碼是在
base
專案。此程式碼是所有專案之間共享,chromium團隊試著讓它儘可能的小。
-
常見的瀏覽器特定的程式碼在chrome/common專案,它由瀏覽器和渲染器之間共享。
-
Webkit核心程式碼是在專案third_party/WebKit(只讀)。之前的src/webkit下為chromium對webkit的一個封裝,現在已經刪除webkit_glue
-
chrome/browser專案提供了使用者介面,儲存,網路請求等
頂級專案:
下載chromium原始碼後,進入src目錄,你會發現一些目錄,如下:
下面著重講一下一些比較重要的目錄:
-
android_webview:提供適合整合到Android平臺的src /content的封裝介面。
注意:
-
base:所有子專案之間共享的通用程式碼。它包含像字串操作,通用程式等。只有當超過一個頂級專案之間共享的程式碼才能放到這裡。
-
breakpad:谷歌的開源崩潰報告的專案。直接從谷歌程式碼版本庫拉取。
-
build:構建相關的配置,由所有專案共享。
-
cc:chromium合成器實現。
-
chrome:chromium瀏覽器主程式模組實現程式碼,核心程式碼。
-
chrome/test/data:執行某些測試的資料檔案。
-
components:瀏覽器依賴的元件目錄。
-
content:一個多程序沙箱瀏覽器渲染頁面的核心程式碼。
-
net:為chromium開發的網路功能庫。
-
sandbox:沙箱專案,阻止渲染器修改系統。
-
Skia的:為Android開發谷歌的Skia的圖形庫。這是Android的樹副本。
-
SQL: sqlite的封裝。
-
testing:用來單元測試的程式碼。
-
third_party:第三方庫,如影象解碼器和壓縮庫等。
-
UI/GFX:共享圖形類。這些是Chromium的圖形使用者介面的基礎。
-
UI/view:UI開發的簡單框架,提供渲染,佈局和事件處理一個簡單的框架。大部分的瀏覽器的使用者介面的在該系統中實現。該目錄包含了基本物件。
-
url:谷歌的開源URL解析和標準化庫。
-
V8:V8 JavaScript庫。
-
webkit(小寫):現在只有一小部分留在這裡了。common/gpu/
依賴關係圖:
一個低層模組不能直接include更高的模組的程式碼(例如:content不能include chrome中的標頭檔案),但可以使用嵌入的API和它通訊。
今天就先寫到這裡,希望大家能一塊學習。
講了原始碼下載,編譯,目錄結構,那麼接下來會講一下如何在windows下除錯chromium。希望大家繼續關注。
另外附上官網地址: