1. 程式人生 > >chromium瀏覽器開發系列第一篇:如何獲取最新chromium原始碼

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

轉自:https://my.oschina.net/ghost045/blog/397663

摘要: 前面介紹了原始碼下載,編譯。接下來要介紹一下目錄結構,方便大家以後對架構的瞭解。

附上上兩篇文章地址,方便大家檢視:

下載原始碼

編譯原始碼

上兩篇介紹了下載原始碼和編譯原始碼,這次主要介紹chromium的原始碼目錄結構,我也是通過原始碼和官網結合來跟大家說,如果有說的不準確的,歡迎交流。

另外,官網的不一定準確,他們其實也很懶,所以最主要還是靠自己。官網只能作為一個參考。

Chromium結構相對兩年前變化很大。目錄結構依然很清晰,主要有三個部分(不包括其他的庫):瀏覽器,渲染器,webkit。瀏覽器是主要的程序,代表所有的

UII / O。渲染通常是每個tab頁的子過程,是由瀏覽器驅動。Webkit做佈局和渲染。

簡單介紹解決方案檔案:

解決方案檔案是src/chrome/chrome.sln

  • 啟動程式碼是在chrome/chrome_initial專案。

  • 常見的共享庫的程式碼是在base專案。此程式碼是所有專案之間共享,chromium團隊試著讓它儘可能的小。

  • 常見的瀏覽器特定的程式碼在chrome/common專案,它由瀏覽器和渲染器之間共享。

  • Webkit核心程式碼是在專案third_party/WebKit(只讀)。之前的src/webkit下chromiumwebkit的一個封裝,現在已經刪除webkit_glue

    專案,把一些測試檔案移植到content/下,一些檔案已經刪除。

  • chrome/browser專案提供了使用者介面,儲存,網路請求等

頂級專案:

下載chromium原始碼後,進入src目錄,你會發現一些目錄,如下:

下面著重講一下一些比較重要的目錄:

  • android_webview提供適合整合到Android平臺的src /content的封裝介面。

注意:

  • base:所有子專案之間共享的通用程式碼。它包含像字串操作,通用程式等。只有當超過一個頂級專案之間共享的程式碼才能放到這裡。

  • breakpad:谷歌的開源崩潰報告的專案。直接從谷歌程式碼版本庫拉取。

  • build:構建相關的配置,由所有專案共享。

  • ccchromium合成器實現。

  • chromechromium瀏覽器主程式模組實現程式碼,核心程式碼

  • chrome/test/data:執行某些測試的資料檔案。

  • components:瀏覽器依賴的元件目錄。

  • content一個多程序沙箱瀏覽器渲染頁面的核心程式碼。

  • net:為chromium開發的網路功能庫。

  • sandbox:沙箱專案,阻止渲染器修改系統。

  • Skia:為Android開發谷歌的Skia的圖形庫。這是Android的樹副本。

  • SQL sqlite的封裝。

  • testing:用來單元測試的程式碼。

  • third_party:第三方庫,如影象解碼器和壓縮庫等。

  • UI/GFX:共享圖形類。這些是Chromium的圖形使用者介面的基礎。

  • UI/viewUI開發的簡單框架,提供渲染,佈局和事件處理一個簡單的框架。大部分的瀏覽器的使用者介面的在該系統中實現。該目錄包含了基本物件。

  • url:谷歌的開源URL解析和標準化庫。

  • V8V8 JavaScript庫。

  • webkit(小寫):現在只有一小部分留在這裡了。common/gpu/

依賴關係圖:

一個低層模組不能直接include更高的模組的程式碼(例如:content不能include chrome中的標頭檔案),但可以使用嵌入的API和它通訊。

今天就先寫到這裡,希望大家能一塊學習。

講了原始碼下載,編譯,目錄結構,那麼接下來會講一下如何在windows下除錯chromium。希望大家繼續關注。

另外附上官網地址: