第三章 WebKit架構(gòu)

1. WebKit架構(gòu)

WebKit架構(gòu)

2. Chromium瀏覽器的架構(gòu)和模塊

Chromium瀏覽器是基于WebKit(blink)的。

1. 架構(gòu)和模塊

Chromium的架構(gòu)模塊

Content模塊是指用來渲染網(wǎng)頁內(nèi)容的模塊,通過Content模塊,瀏覽器的開發(fā)者不僅可以在WebKit的Chorme的移植上渲染網(wǎng)頁內(nèi)容,而且可以獲得沙箱模型、跨進程的GPU硬件加速機制、眾多的H5功能。

2. 多進程模型

相信你一定有過這樣的經(jīng)歷:在使用瀏覽器打開多個頁面的時候,不幸的是其中某個頁面不響應(yīng)了或者崩潰了,隨之而來的可能是更不幸的事——其他所有頁面也不響應(yīng)或崩潰了。


多進程的引入有以下幾點好處:

  1. 不會因為單個頁面的不響應(yīng)或崩潰而影響整個瀏覽器的穩(wěn)定性,特別是對用戶界面的影響;
  2. 當?shù)谌讲寮罎⒌臅r候,不會影響頁面或瀏覽器的穩(wěn)定性,這是因為第三方插件也被使用單獨的進程來運行;
  3. 它方便了安全模型的實施,也就是說沙箱模型也是基于多進程架構(gòu)的。
Chromium多進程模型

Chromium瀏覽器主要包括以下進程類型:

  1. Browser進程:瀏覽器的主進程,負責(zé)瀏覽器主界面的顯示、各個頁面的管理,是其他所有進程的祖先,負責(zé)它們的創(chuàng)建和銷毀工作,它有且僅有一個。
  2. Render進程:網(wǎng)頁的渲染進程,負責(zé)頁面的渲染工作,blink/WebKit的渲染工作主要在這個進程完成。
  3. NPAPI插件進程:該進程是為NPAPI類型的插件而創(chuàng)建的。
  4. GPU進程:最多只有一個,當且僅當GPU硬件加速打開的時候才會被創(chuàng)建,主要用于對3D圖形加速調(diào)用的實現(xiàn)。
  5. Pepper插件進程:類似于NPAPI進程。

總結(jié):

  1. Browser進程和頁面的渲染是分開的,這保證了頁面渲染導(dǎo)致的崩潰不會導(dǎo)致瀏覽器主界面的崩潰。
  2. 每個頁面是獨立的進程,這保障了頁面之間相互不影響。
  3. 插件進程也是獨立的,插件本身的問題不會影響瀏覽器主界面和網(wǎng)頁。
  4. GPU硬件加速進程也是獨立的。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容