這是基于IE內(nèi)核的多進(jìn)程瀏覽器Raptor下載,史上最小的基于IE內(nèi)核的多標(biāo)簽多進(jìn)程瀏覽器,只有一個(gè)400多K的EXE文件,無(wú)需安裝,無(wú)需注冊(cè),直接運(yùn)行。主窗口一個(gè)進(jìn)程,所有插件是一個(gè)進(jìn)程,每個(gè)瀏覽器頁(yè)面是一個(gè)進(jìn)程。
基于IE內(nèi)核的多進(jìn)程瀏覽器Raptor是 為了瀏覽器更強(qiáng)的健壯性,更快的響應(yīng)速度,同時(shí)更也更安全,目前瀏覽器均采用多進(jìn)程架構(gòu)。例如Google Chrome即是創(chuàng)建三種不同類型的進(jìn)程:瀏覽器進(jìn)程,渲染器進(jìn)程,插件進(jìn)程。
可以從 Raptor 源碼中獲得下述技術(shù)的實(shí)現(xiàn):
•如何加載瀏覽器控件并響應(yīng)事件。
•如何讓不同的進(jìn)程執(zhí)行不同的功能。
•如何通過 COM 技術(shù)實(shí)現(xiàn)多進(jìn)程互操作,它不一定是最佳的多進(jìn)程通信方式,但一定是最簡(jiǎn)潔的。
•如何實(shí)現(xiàn)進(jìn)程外COM組件的免注冊(cè)和啟動(dòng)。
•如何注冊(cè)自定義的MIME協(xié)議。在 Raptor 的實(shí)現(xiàn)中,注冊(cè)了 raptor: 協(xié)議。事實(shí)上,在地址欄輸入“raptor:newtab”可打開新建標(biāo)簽頁(yè)面,“raptor:history”可打開瀏覽歷史頁(yè)面,“raptor:product”可打開自我介紹頁(yè)面。
•學(xué)習(xí)具有AERO效果的TAB控件,可以在TAB標(biāo)簽的左右加入工具欄按鈕。源碼實(shí)現(xiàn)中的TAB標(biāo)簽的繪制圖片完全來(lái)自CHROME,本人不是美工,做不出漂亮的圖片,只好出此下策,希望谷歌海涵,呵呵。
•工具欄按鈕有一點(diǎn)小的動(dòng)畫效果,其它的沒什么東東值得說的……
渲染器進(jìn)程:渲染器進(jìn)程會(huì)創(chuàng)建多個(gè)進(jìn)程,每個(gè)都負(fù)責(zé)渲染網(wǎng)頁(yè)。渲染器進(jìn)程中包含用于操作HTML,JavaScript,CSS,圖片和其他內(nèi)容的復(fù)雜的邏輯。我們使用了也同樣被Apple Safari瀏覽器使用的開源的WebKit渲染引擎實(shí)現(xiàn)以上功能。每個(gè)渲染器進(jìn)程都運(yùn)行在沙箱內(nèi),這意味著它對(duì)磁盤、網(wǎng)絡(luò)和顯示器沒有直接的訪問權(quán)限。所有跟網(wǎng)絡(luò)應(yīng)用的交互,包括用戶輸入事件和屏幕繪制都必須通過瀏覽器進(jìn)程。這可以讓瀏覽器進(jìn)程監(jiān)視渲染器的可疑行為,一旦發(fā)現(xiàn)其從事破壞活動(dòng)就將其終止。