專利名稱:一種ie瀏覽器中實現(xiàn)進程復(fù)用的方法及瀏覽器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種瀏覽器的進程使用方法及瀏覽器。
背景技術(shù):
目前的瀏覽器可以實現(xiàn)多進程的混合模型。瀏覽器中的進程模型可以進行適時的變換和適配。微軟公司IE8 Loosely-Coupled IE (縮寫為 LCIE,全稱為Loosely_CoupledInternet Explorer,松稱合互聯(lián)網(wǎng)探測器):在最新一代瀏覽器IE8( Internet Explorer8,互聯(lián)網(wǎng)探測器第8代)中,微軟公司添加了被稱為“Loosely-Coupled IE (LCIE)”的架構(gòu);通過Loosely-Coupled IE (LCIE)架構(gòu),IE8將主要的瀏覽進程與渲染進程相隔離;主要的進程處理瀏覽器、用戶界面和框架(窗口),用于存儲選項卡。在IE8中,多個選項卡是運行在相同的進程中的,不過不同安全級別的選項卡是相互分開的。一種瀏覽器的進程模型是混合進程模式。此模式下,瀏覽器框架根據(jù)打開頁面的數(shù)量智能創(chuàng)建進程。打開多個頁面后的資源占用較少,能較好地解決網(wǎng)頁資源泄漏的問題,在網(wǎng)頁崩潰時也有上佳表現(xiàn)。此種模式下的進程管理,每n個頁面使用一個進程,既節(jié)省了資源占用,又不會影響到其它進程的頁面,而當(dāng)某個進程中的頁面全部關(guān)閉的時候,該進程退出,此時進程占用的資源將得到徹底的釋放。一種瀏覽器的進程模型是多進程模式每個網(wǎng)頁都在單獨的進程中運行。打開多個頁面后的資源占用較多,但能徹底解決網(wǎng)頁資源泄漏的問題,在網(wǎng)頁出問題的時候互不干擾。建議機器配置較高的用戶使用,以便更好地發(fā)揮機器性能。在上述瀏覽器中使用了瀏覽多個頁面在同一加載IE(Trident)內(nèi)核(Trident,又稱為MSHTML,是Internet Explorer軟件的排版引擎的名稱)的進程中為不同的頁面瀏覽分配了不同的線程。在新開頁面時,搜索是否有渲染進程仍然有閑置的渲染線程,如果有則使用該進程的閑置渲染進程進行頁面解析和渲染。然而,上述的瀏覽器進程模型中在進程復(fù)用時,對于被切換到要進行進程復(fù)用的進程還沒有給出安全權(quán)限上的管理方案。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種方法或瀏覽器,其能夠解決IE瀏覽器要進行進程復(fù)用的進程中的安全權(quán)限管理問題;為解決上述技術(shù)問題,本發(fā)明的一方面提供一種IE瀏覽器中實現(xiàn)進程復(fù)用的方法,預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù);在IE瀏覽器側(cè)發(fā)起對新網(wǎng)頁的瀏覽請求;判斷當(dāng)前已有瀏覽器進程數(shù)已達到所述瀏覽器最大進程數(shù);查找到所述已有瀏覽器進程中使用IE瀏覽器內(nèi)核進行渲染的進程;核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配;使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁。根據(jù)本發(fā)明的實施例,本方法還可以包括如果判斷當(dāng)前已有瀏覽器進程數(shù)未達到所述瀏覽器最大進程數(shù)時,新建一個使用IE瀏覽器內(nèi)核進行渲染的進程,打開所述請求的網(wǎng)頁。根據(jù)本發(fā)明的實施例,本方法所述預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù)步驟還可以包括依據(jù)運行所述IE瀏覽器的本地計算設(shè)備的硬件資源狀況設(shè)定IE瀏覽器側(cè)的瀏覽器最大進程數(shù);所述硬件資源狀況包括,CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。根據(jù)本發(fā)明的實施例,本方法所述使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁步驟,還可以包括選擇在所述進程中的空閑的頁面線程打開所述網(wǎng)頁;若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)小于所述進程最大容許線程數(shù),則在所述進程中新建頁面線程打開所述網(wǎng)頁;若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)達到所述進程最大容許線程數(shù),則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。根據(jù)本發(fā)明的實施例,本方法所述使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁步驟,還可以包括若所述進程中不存在空閑的頁面線程,則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。根據(jù)本發(fā)明的實施例,本方法所述核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配步驟,還可以包括對以下任一或任何其中若干權(quán)限的組合進行核實后臺運行權(quán)限;訪問書簽權(quán)限;訪問收藏夾權(quán)限;訪問上下文菜單權(quán)限;訪問cookie權(quán)限;訪問geolocation接口權(quán)限;訪問歷史記錄權(quán)限;訪問標(biāo)簽頁權(quán)限;無限Web存儲能力權(quán)限。根據(jù)本發(fā)明的實施例,本方法所述所述核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配步驟,還可以包括枚舉所述查找到的進程的權(quán)限,并逐一與打開所述網(wǎng)頁所需的權(quán)限相比較。本發(fā)明的一方面提供一種IE瀏覽器中實現(xiàn)進程復(fù)用的瀏覽器,包括預(yù)設(shè)最大進程數(shù)模塊,用于預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù);發(fā)起請求模塊,用于在IE瀏覽器側(cè)發(fā)起對新網(wǎng)頁的瀏覽請求;判斷進程數(shù)模塊,用于判斷當(dāng)前已有瀏覽器進程數(shù)已達到所述瀏覽器最大進程數(shù);查找IE進程模塊,用于查找到所述已有瀏覽器進程中使用IE瀏覽器內(nèi)核進行渲染的進程;核實進程權(quán)限模塊,用于核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配;打開網(wǎng)頁模塊,用于使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁。根據(jù)本發(fā)明的實施例,本瀏覽器還可以包括新建進程模塊,用于如果判斷當(dāng)前已有瀏覽器進程數(shù)未達到所述瀏覽器最大進程數(shù)時,新建一個使用IE瀏覽器內(nèi)核進行渲染的進程,打開所述請求的網(wǎng)頁。根據(jù)本發(fā)明的實施例,本瀏覽器所述預(yù)設(shè)最大進程數(shù)模塊,還可以用于,依據(jù)運行所述IE瀏覽器的本地計算設(shè)備的硬件資源狀況設(shè)定IE瀏覽器側(cè)的瀏覽器最大進程數(shù);所述硬件資源狀況包括,CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。根據(jù)本發(fā)明的實施例,本瀏覽器所述打開網(wǎng)頁模塊,還可以用于選擇在所述進程中的空閑的頁面線程打開所述網(wǎng)頁;若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)小于所述進程最大容許線程數(shù),則在所述進程中新建頁面線程打開所述網(wǎng)頁;若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)達到所述進程最大容許線程數(shù),則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。根據(jù)本發(fā)明的實施例,本瀏覽器所述打開網(wǎng)頁模塊,還可以用于若所述進程中不存在空閑的頁面線程,則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。根據(jù)本發(fā)明的實施例,本瀏覽器所述核實進程權(quán)限模塊,還可以用于,對以下任一或任何其中若干權(quán)限的組合進行核實后臺運行權(quán)限;訪問書簽權(quán)限;訪問收藏夾權(quán)限;訪問上下文菜單權(quán)限;訪問cookie權(quán)限;訪問geolocation接口權(quán)限;訪問歷史記錄權(quán)限;訪問標(biāo)簽頁權(quán)限;無限Web存儲能力權(quán)限。根據(jù)本發(fā)明的實施例,本瀏覽器所述核實進程權(quán)限模塊,還可以用于,枚舉所述查找到的進程的權(quán)限,并逐一與打開所述網(wǎng)頁所需的權(quán)限相比較。本發(fā)明的方案中能夠解決IE瀏覽器要進行進程復(fù)用的進程中的安全權(quán)限管理問題,能夠保證在IE瀏覽器中進行進程復(fù)用時將被打開的網(wǎng)頁所需要的權(quán)限和進程的權(quán)限進行匹配后,使用權(quán)限相匹配的進程中的頁面線程打開所述網(wǎng)頁,這樣保證復(fù)用進程中的權(quán)限安全性,實現(xiàn)依據(jù)已經(jīng)存在的渲染進程的權(quán)限分配渲染進程來打開網(wǎng)頁。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個實施例所述的一種IE瀏覽器中實現(xiàn)進程復(fù)用的方法流程圖;圖2示出了根據(jù)本發(fā)明一個實施例所述一種進程復(fù)用的IE內(nèi)核瀏覽器系統(tǒng)框圖的系統(tǒng)框圖;圖3示出了根據(jù)本發(fā)明實施例的一種IE瀏覽器中實現(xiàn)進程復(fù)用的方法中的進程及線程結(jié)構(gòu)圖;圖4示出了圖3中進程310的線程構(gòu)成的IE渲染線程池310C結(jié)構(gòu)圖;圖5示出了根據(jù)本發(fā)明實施例所述的一種IE瀏覽器中實現(xiàn)進程復(fù)用的方法的一個實施例流程圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
如圖1所示,為根據(jù)本發(fā)明實施例所述的一種IE瀏覽器中實現(xiàn)進程復(fù)用的方法流程圖,包括以下步驟步驟101,預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù);例如,依據(jù)用戶的選擇預(yù)設(shè)IE瀏覽器測的最大進程數(shù)為10個;優(yōu)選的,所述預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù)步驟包括依據(jù)運行所述IE瀏覽器的本地計算設(shè)備的硬件資源狀況設(shè)定IE瀏覽器側(cè)的瀏覽器最大進程數(shù);所述硬件資源狀況包括,CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。例如,偵測到運行瀏覽器的計算機性能狀況為CPU :1ntel Core i7,主頻2. 8GHz顯卡性能NVIDIA GeForce GTX 680M SLI核心頻率720MHz內(nèi)存4GB,依據(jù)此計算機的性能,確定瀏覽器最大進程數(shù)為10個。步驟102,在IE瀏覽器側(cè)發(fā)起對新網(wǎng)頁的瀏覽請求。例如,當(dāng)用戶在一個用IE瀏覽器打開的頁面中,點擊一個地址鏈接http://hao. 360. cn/,本方法向所述IE瀏覽器發(fā)起針對該地址的網(wǎng)頁的瀏覽請求。步驟103,判斷當(dāng)前已有瀏覽器進程數(shù)已達到所述瀏覽器最大進程數(shù);優(yōu)選的,還包括如果判斷當(dāng)前已有瀏覽器進程數(shù)未達到所述瀏覽器最大進程數(shù)時,新建一個使用IE瀏覽器內(nèi)核進行渲染的進程,打開所述請求的網(wǎng)頁。例如瀏覽器最大進程數(shù)為10,如果當(dāng)前瀏覽器已有進程為10,則進行步驟104及104以后的步驟;如果當(dāng)前瀏覽器的已有進程為6,小于瀏覽器最大進程數(shù)10,則新建一個使用IE瀏覽器內(nèi)核進行渲染的進程,打開http://hao. 360. cn/。步驟104,查找到所述已有瀏覽器進程中使用IE瀏覽器內(nèi)核進行渲染的進程;例如瀏覽器最大進程數(shù)為10,當(dāng)前瀏覽器已有10個進程,本方法查找到其中7個進程使用IE瀏覽器內(nèi)核進行渲染。步驟105,核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配;優(yōu)選的,包括枚舉所述查找到的進程的權(quán)限,并逐一與打開所述網(wǎng)頁所需的權(quán)限相比較。優(yōu)選的,包括對以下任一或任何其中若干權(quán)限的組合進行核實后臺運行權(quán)限;訪問書簽權(quán)限;訪問收藏夾權(quán)限;訪問上下文菜單權(quán)限;訪問cookie權(quán)限;訪問geolocation接口權(quán)限;訪問歷史記錄權(quán)限;訪問標(biāo)簽頁權(quán)限;無限Web存儲能力權(quán)限。例如打開所述http://hao. 360. cn/需要后臺運行權(quán)限、訪問歷史記錄權(quán)限,對已找到的7個使用IE瀏覽器內(nèi)核進的進程進行逐一枚舉,其中A進程、B進程都有后臺運行權(quán)限、訪問歷史記錄權(quán)限。步驟106,使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁。優(yōu)選的,包括選擇在所述進程中的空閑的頁面線程打開所述網(wǎng)頁;若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)小于所述進程最大容許線程數(shù),則在所述進程中新建頁面線程打開所述網(wǎng)頁;若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)達到所述進程最大容許線程數(shù),則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。例如依據(jù)上例,使用7個使用IE瀏覽器內(nèi)核進的進程中A進程打開所述網(wǎng)頁。若所述A進程已有5個頁面線程,其中I個頁面線程處于空閑狀態(tài),則用所述頁面線程打開所述http://hao. 360. cn/網(wǎng)頁。若所述A進程已有5個頁面線程,都不處于空閑狀態(tài),則比較已有頁面線程數(shù)和A進程允許的最大線程數(shù),A進程允許的最大線程數(shù)為7個,已有頁面線程數(shù)5小于允許的最大進程數(shù)7,則新建一個頁面線程打開所述http://hao. 360. cn/網(wǎng)頁。若所述A進程已有7個頁面線程,都不處于空閑狀態(tài),則比較已有頁面線程數(shù)和A進程允許的最大線程數(shù),A進程允許的最大線程數(shù)為7個,已有頁面線程數(shù)7已達到允許的最大進程數(shù)7,則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程(例如,進程B)打開所述http://hao. 360. cn/網(wǎng)頁。另一種優(yōu)選方案是若所述進程中不存在空閑的頁面線程,則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。例如若所述A進程已有5個頁面線程,都不處于空閑狀態(tài),則不比較已有頁面線程數(shù)5和A進程允許的最大線程數(shù)7,直接則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程(例如,進程B)打開所述http://hao. 360. cn/ 網(wǎng)頁。如圖2所示,為根據(jù)本發(fā)明實施例所述的一種進程復(fù)用的IE內(nèi)核瀏覽器系統(tǒng)框圖,包括以下模塊預(yù)設(shè)最大進程數(shù)模塊201 :用于預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù);優(yōu)選的,預(yù)設(shè)最大進程數(shù)模塊201用于依據(jù)運行所述IE瀏覽器的本地計算設(shè)備的硬件資源狀況設(shè)定IE瀏覽器側(cè)的瀏覽器最大進程數(shù);所述硬件資源狀況包括,CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。發(fā)起請求模塊202 :用于在IE瀏覽器側(cè)發(fā)起對新網(wǎng)頁的瀏覽請求;判斷進程數(shù)模塊203 :用于判斷當(dāng)前已有瀏覽器進程數(shù)已達到所述瀏覽器最大進程數(shù);查找IE進程模塊204 :用于查找到所述已有瀏覽器進程中使用IE瀏覽器內(nèi)核進行渲染的進程;核實進程權(quán)限模塊205 :用于核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配;優(yōu)選的,核實進程權(quán)限模塊205包括用于枚舉所述查找到的進程的權(quán)限,并逐一與打開所述網(wǎng)頁所需的權(quán)限相比較。優(yōu)選的,核實進程權(quán)限模塊205包括用于對以下任一或任何其中若干權(quán)限的組合進行核實后臺運行權(quán)限;訪問書簽權(quán)限;訪問收藏夾權(quán)限;訪問上下文菜單權(quán)限;訪問cookie權(quán)限;訪問geolocation接口權(quán)限;訪問歷史記錄權(quán)限;訪問標(biāo)簽頁權(quán)限;無限Web存儲能力權(quán)限。打開網(wǎng)頁模塊206 :用于使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁。優(yōu)選的,打開網(wǎng)頁模塊206用于選擇在所述進程中的空閑的頁面線程打開所述網(wǎng)頁;若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)小于所述進程最大容許線程數(shù),則在所述進程中新建頁面線程打開所述網(wǎng)頁;若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)達到所述進程最大容許線程數(shù),則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。優(yōu)選的,打開網(wǎng)頁模塊206還可用于若所述進程中不存在空閑的頁面線程,則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。優(yōu)選的,所述瀏覽器還包括新建進程模塊207 :用于如果判斷當(dāng)前已有瀏覽器進程數(shù)未達到所述瀏覽器最大進程數(shù)時,新建一個使用IE瀏覽器內(nèi)核進行渲染的進程,打開所述請求的網(wǎng)頁。如圖3,為根據(jù)本發(fā)明實施例的一種IE瀏覽器中實現(xiàn)進程復(fù)用的方法中的進程及線程結(jié)構(gòu)圖。如圖所示,主進程300包括進程310、進程320、進程330、進程340、直至進程n350,共n個進程;進程310包括線程311、線程312、線程313 ;進程320包括線程321、線程322、線程 323。如圖4,為如圖3中進程310的線程構(gòu)成的IE渲染線程池310C結(jié)構(gòu)圖。如圖所示IE渲染線程池310C包括線程311、線程312、線程313,以及后續(xù)在應(yīng)用本發(fā)明方法中新建的線程314、線程315。依據(jù)本發(fā)明方法,預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù)為n ;在IE瀏覽器側(cè)發(fā)起對新網(wǎng)頁http://hao. 360. cn/的瀏覽請求;判斷當(dāng)前已有瀏覽器進程數(shù)n已達到所述瀏覽器最大進程數(shù)n ;查找到所述已有瀏覽器進程中使用IE瀏覽器內(nèi)核進行渲染的進程為進程310、進程320 ;核實所述查找到的進程的310權(quán)限與打開所述新網(wǎng)頁http://hao. 360. cn/所需的權(quán)限匹配;使用權(quán)限相匹配的所述進程310中的頁面線程打開所述網(wǎng)頁的具體步驟如下選擇在所述進程中的空閑的頁面線程打開所述網(wǎng)頁,枚舉IE渲染線程池中的線程,循環(huán)渲染任務(wù)隊列,選一個空閑的滿足安全權(quán)限的渲染線程。例如,如果進程310中的線程311處于空閑狀態(tài),則用線程311打開所述網(wǎng)頁。若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)小于所述進程最大容許線程數(shù),則在所述進程中新建頁面線程打開所述網(wǎng)頁;例如如果進程310中的3個線程都不處于空閑狀態(tài),且頁面線程數(shù)3小于進程310最大容許線程數(shù)5,則在進程310中新建頁面線程314打開所述網(wǎng)頁。若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)達到所述進程最大容許線程數(shù),則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁;例如如果進程310中的3個線程311、線程312、線程313都不處于空閑狀態(tài),并且已經(jīng)新建了兩個線程即線程314、線程315也都不處于空閑狀態(tài),此時頁面線程數(shù)5等于進程310最大容許線程數(shù)5,則通知主進程300查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁;另一種優(yōu)選方案是若所述進程中不存在空閑的頁面線程,則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。例如如果進程310中的3個線程都不處于空閑狀態(tài),不判斷進程310已有線程數(shù)與進程310最大容許線程數(shù)的大小,直接通知主進程300查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。如圖5 :為根據(jù)本發(fā)明實施例所述的一種IE瀏覽器中實現(xiàn)進程復(fù)用的方法的一個實施例流程圖,包括以下步驟步驟501 :瀏覽器啟動建立主進程和頁面進程(渲染進程);此步驟為一般情況下瀏覽器工作的狀態(tài),也是以下步驟復(fù)用頁面進程之前的狀態(tài)和基礎(chǔ);步驟502 :預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù);一般,依據(jù)運行瀏覽器的計算機的硬件情況預(yù)設(shè)所述最大進程數(shù);步驟503 :判斷當(dāng)前已有瀏覽器進程數(shù)是否已達到所述瀏覽器最大進程數(shù);如果所述已有進程數(shù)已達到所述最大進程數(shù),執(zhí)行步驟504 ;若否,執(zhí)行步驟510 ;步驟504 :枚舉使用Trident (IE)內(nèi)核的渲染進程;所謂枚舉,即逐個查找,當(dāng)找到一個使用Trident內(nèi)核的渲染進程,執(zhí)行后續(xù)步驟505 ;步驟505 :判斷是否枚舉完所有使用Trident內(nèi)核的渲染進程;如果枚舉完所有使用Trident內(nèi)核的渲染進程,則執(zhí)行步驟510 ;若否,則執(zhí)行步驟506 ;步驟506 :核實該進程的權(quán)限;即核實找到的使用Trident內(nèi)核的渲染進程的權(quán)限;步驟507 :核實該進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配;若不匹配,則轉(zhuǎn)步驟504枚舉另一個使用Trident內(nèi)核的渲染進程;若匹配,則執(zhí)行步驟508 ;步驟508 :核實該進程的線程數(shù)是否已經(jīng)達到最大容許線程數(shù);若是;則轉(zhuǎn)步驟504枚舉另一個使用Trident內(nèi)核的渲染進程;若否,執(zhí)行步驟509 ;步驟509 :通知找到的進程,發(fā)起新的頁面瀏覽過程;即用經(jīng)過前述步驟508查找到的符合要求的進程打開頁面;步驟510 :新建一個使用Trident內(nèi)核的渲染進程并發(fā)起瀏覽網(wǎng)頁過程。依據(jù)前述步驟,在兩種情況下執(zhí)行步驟510,一,在判斷當(dāng)前瀏覽器進程數(shù)尚未達到瀏覽器最大進程數(shù)時,執(zhí)行步驟510 ;二,在所有使用Trident內(nèi)核的渲染進程枚舉完畢,但未找到可用進程時,執(zhí)行步驟510。本發(fā)明的實施例的方案中能夠解決IE瀏覽器要進行進程復(fù)用的進程中的安全權(quán)限管理問題,能夠保證在IE瀏覽器中進行進程復(fù)用時將被打開的網(wǎng)頁所需要的權(quán)限和進程的權(quán)限進行匹配后,使用權(quán)限相匹配的進程中的頁面線程打開所述網(wǎng)頁,這樣保證復(fù)用進程中的權(quán)限安全性,實現(xiàn)依據(jù)已經(jīng)存在的渲染進程的權(quán)限分配渲染進程來打開網(wǎng)頁。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權(quán)利要求書由此明確地并入該具體實施方式
,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的圖2設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種IE瀏覽器中實現(xiàn)進程復(fù)用的方法,包括 預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù); 在IE瀏覽器側(cè)發(fā)起對新網(wǎng)頁的瀏覽請求; 判斷當(dāng)前已有瀏覽器進程數(shù)已達到所述瀏覽器最大進程數(shù); 查找到所述已有瀏覽器進程中使用IE瀏覽器內(nèi)核進行渲染的進程; 核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配; 使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁。
2.如權(quán)利要求1所述方法,其特征在于,還包括 如果判斷當(dāng)前已有瀏覽器進程數(shù)未達到所述瀏覽器最大進程數(shù)時,新建一個使用IE瀏覽器內(nèi)核進行渲染的進程,打開所述請求的網(wǎng)頁。
3.如權(quán)利要求1所述方法,其特征在于,所述預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù)步驟包括依據(jù)運行所述IE瀏覽器的本地計算設(shè)備的硬件資源狀況設(shè)定IE瀏覽器側(cè)的瀏覽器最大進程數(shù); 所述硬件資源狀況包括,CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。
4.如權(quán)利要求1所述方法,其特征在于,所述使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁步驟,包括 選擇在所述進程中的空閑的頁面線程打開所述網(wǎng)頁; 若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)小于所述進程最大容許線程數(shù),則在所述進程中新建頁面線程打開所述網(wǎng)頁; 若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)達到所述進程最大容許線程數(shù),則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。
5.如權(quán)利要求1所述方法,其特征在于,所述使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁步驟,包括若所述進程中不存在空閑的頁面線程,則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。
6.如權(quán)利要求1所述方法,其特征在于,所述核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配步驟,包括對以下任一或任何其中若干權(quán)限的組合進行核實 后臺運行權(quán)限; 訪問書簽權(quán)限; 訪問收藏夾權(quán)限; 訪問上下文菜單權(quán)限; 訪問cookie權(quán)限; 訪問geolocation接口權(quán)限; 訪問歷史記錄權(quán)限; 訪問標(biāo)簽頁權(quán)限; 無限Web存儲能力權(quán)限。
7.如權(quán)利要求1所述方法,其特征在于,所述核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配步驟,包括枚舉所述查找到的進程的權(quán)限,并逐一與打開所述網(wǎng)頁所需的權(quán)限相比較。
8.—種進程復(fù)用的IE內(nèi)核瀏覽器,包括 預(yù)設(shè)最大進程數(shù)模塊,用于預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù); 發(fā)起請求模塊,用于在IE瀏覽器側(cè)發(fā)起對新網(wǎng)頁的瀏覽請求; 判斷進程數(shù)模塊,用于判斷當(dāng)前已有瀏覽器進程數(shù)已達到所述瀏覽器最大進程數(shù);查找IE進程模塊,用于查找到所述已有瀏覽器進程中使用IE瀏覽器內(nèi)核進行渲染的進程; 核實進程權(quán)限模塊,用于核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配; 打開網(wǎng)頁模塊,用于使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁。
9.如權(quán)利要求8所述瀏覽器,其特征在于,還包括 新建進程模塊,用于如果判斷當(dāng)前已有瀏覽器進程數(shù)未達到所述瀏覽器最大進程數(shù)時,新建一個使用IE瀏覽器內(nèi)核進行渲染的進程,打開所述請求的網(wǎng)頁。
10.如權(quán)利要求8所述瀏覽器,其特征在于,所述預(yù)設(shè)最大進程數(shù)模塊用于,依據(jù)運行所述IE瀏覽器的本地計算設(shè)備的硬件資源狀況設(shè)定IE瀏覽器側(cè)的瀏覽器最大進程數(shù); 所述硬件資源狀況包括,CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。
11.如權(quán)利要求8所述瀏覽器,其特征在于,所述打開網(wǎng)頁模塊用于 選擇在所述進程中的空閑的頁面線程打開所述網(wǎng)頁; 若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)小于所述進程最大容許線程數(shù),則在所述進程中新建頁面線程打開所述網(wǎng)頁; 若所述進程中不存在空閑的頁面線程,且所述進程中的頁面線程數(shù)達到所述進程最大容許線程數(shù),則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。
12.如權(quán)利要求8所述瀏覽器,其特征在于,所述打開網(wǎng)頁模塊用于, 若所述進程中不存在空閑的頁面線程,則通知主進程查找其他已有進程,確定另一個權(quán)限上與打開所述網(wǎng)頁所需權(quán)限相匹配的已有進程打開所述網(wǎng)頁。
13.如權(quán)利要求8所述瀏覽器,其特征在于,所述核實進程權(quán)限模塊用于, 對以下任一或任何其中若干權(quán)限的組合進行核實 后臺運行權(quán)限; 訪問書簽權(quán)限; 訪問收藏夾權(quán)限; 訪問上下文菜單權(quán)限; 訪問cookie權(quán)限; 訪問geolocation接口權(quán)限; 訪問歷史記錄權(quán)限; 訪問標(biāo)簽頁權(quán)限; 無限Web存儲能力權(quán)限。
14.如權(quán)利要求8所述瀏覽器,其特征在于,所述核實進程權(quán)限模塊用于,枚舉所述查找到的進程的權(quán)限,并逐一與打開所述網(wǎng)頁所需的權(quán)限相比較。
全文摘要
本發(fā)明公開了一種IE瀏覽器中實現(xiàn)進程復(fù)用的方法及瀏覽器。所述方法和瀏覽器要解決的技術(shù)問題是,對瀏覽器進程的安全權(quán)限進行管理;依據(jù)已經(jīng)存在的渲染進程的權(quán)限分配渲染進程;防止跨域攻擊,防止頁面使用JavaScript隨意訪問瀏覽器提供的外部接口等問題。所述方法包括預(yù)設(shè)IE瀏覽器側(cè)的瀏覽器最大進程數(shù);在IE瀏覽器側(cè)發(fā)起對新網(wǎng)頁的瀏覽請求;判斷當(dāng)前已有瀏覽器進程數(shù)已達到所述瀏覽器最大進程數(shù);查找到所述已有瀏覽器進程中使用IE瀏覽器內(nèi)核進行渲染的進程;核實所述查找到的進程的權(quán)限是否與打開所述新網(wǎng)頁所需的權(quán)限匹配;使用權(quán)限相匹配的所述進程中的頁面線程打開所述網(wǎng)頁。
文檔編號G06F9/46GK103034532SQ20121053080
公開日2013年4月10日 申請日期2012年12月10日 優(yōu)先權(quán)日2012年12月10日
發(fā)明者曹龍, 任寰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司