專利名稱:用于多核瀏覽器的進(jìn)程復(fù)用方法和多核瀏覽器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種在用于多核瀏覽器的進(jìn)程復(fù)用方法和多核瀏覽器。
背景技術(shù):
現(xiàn)代瀏覽器為了解決瀏覽器資源在長(zhǎng)時(shí)間使用后不能很好地釋放和安全性問題,大多數(shù)都使用了多進(jìn)程模型。但是用戶的計(jì)算機(jī)硬件資源是有限的,為了讓瀏覽器在不同用戶計(jì)算機(jī)硬件配置下都能有較好的上網(wǎng)瀏覽器體驗(yàn),所以需要限制瀏覽器打開的進(jìn)程的數(shù)量,防止出現(xiàn)類似操作系統(tǒng)中系統(tǒng)抖動(dòng)的現(xiàn)象出現(xiàn)。這就產(chǎn)生了瀏覽器進(jìn)程復(fù)用模型。例如谷歌的Chrome (全稱Google Chrome,是由谷歌公司開發(fā)的一款Web瀏覽工具)瀏覽器、世界之窗瀏覽器等都是用了多進(jìn)程模型。同時(shí)存在混合模型用于用戶在瀏覽器中瀏覽Web頁(yè)面時(shí)分配特定的工作(渲染)進(jìn)程或線程。在谷歌Chrome瀏覽器實(shí)現(xiàn)中使用了多進(jìn)程模型。該模型在瀏覽器產(chǎn)生瀏覽器支持?jǐn)U展解壓、安裝時(shí)使用獨(dú)立的工作進(jìn)程;在瀏覽器瀏覽網(wǎng)頁(yè)需要渲染時(shí),根據(jù)頁(yè)面需要的安全權(quán)限使用了獨(dú)立的渲染進(jìn)程進(jìn)行頁(yè)面內(nèi)容解析及渲染;在擴(kuò)展和擴(kuò)展所需的插件運(yùn)行時(shí),為需要不同權(quán)限的擴(kuò)展和插件使用獨(dú)立的擴(kuò)展或插件進(jìn)程;瀏覽器還為瀏覽器提示信息的內(nèi)部頁(yè)面分配了不同的進(jìn)程。由于谷歌Chrome瀏覽器原生只支持Webkit (WebKit是蘋果Mac OS X系統(tǒng)引擎框架版本的名稱,主要用于Safari, Dashboard, Mail和其他一些Mac OS X程序內(nèi)核),所以在用戶瀏覽不支持Webkit或者說(shuō)需要IE (Trident) (IE Internet Explorer,互聯(lián)網(wǎng)探索器;Trident,又稱為MSHTML,為Internet Explorer的排版引擎的名稱)內(nèi)核特性的頁(yè)面渲染時(shí),用戶就不能使用谷歌Chrome瀏覽器進(jìn)行瀏覽。此時(shí)谷歌的進(jìn)程復(fù)用模型也不再適用。另一方面在于谷歌Chrome自身的安全模型設(shè)計(jì)(主要是沙箱設(shè)計(jì))與IE內(nèi)核需要的系統(tǒng)安全權(quán)限可能存在沖突,可能導(dǎo)致直接使用Chrome的進(jìn)程復(fù)用模型不能很好地,甚至是不能正常展現(xiàn)Web頁(yè)面。但是對(duì)于多內(nèi)核瀏覽器下的進(jìn)程復(fù)用目前還沒有解決的方案。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種在用于多核瀏覽器的進(jìn)程復(fù)用方法和多核瀏覽器的方案。為解決上述技術(shù)問題,本發(fā)明的一方面,提供一種用于多核瀏覽器的進(jìn)程復(fù)用方法,包括預(yù)設(shè)瀏覽器側(cè)的最大進(jìn)程數(shù);在瀏覽器側(cè)發(fā)起對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求,在所述多個(gè)瀏覽器內(nèi)核中確定一適配渲染該請(qǐng)求網(wǎng)頁(yè)的第一瀏覽器內(nèi)核;判斷當(dāng)前已有進(jìn)程數(shù)已達(dá)到所述最大進(jìn)程數(shù);查找到所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程;核實(shí)所述查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致;使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè);如果判斷當(dāng)前已有進(jìn)程數(shù)未達(dá)到所述瀏覽器側(cè)最大進(jìn)程數(shù)時(shí),新建一個(gè)使用第一瀏覽器內(nèi)核的進(jìn)程,打開所述網(wǎng)頁(yè)。根據(jù)本發(fā)明的實(shí)施例,所述在所述多個(gè)瀏覽器內(nèi)核中確定一適配渲染該請(qǐng)求網(wǎng)頁(yè)的第一瀏覽器內(nèi)核還可以包括基于被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址URL,查詢?cè)跒g覽器側(cè)的網(wǎng)址與瀏覽器渲染內(nèi)核之間的映射表;從所述的多個(gè)瀏覽器內(nèi)核中確定與被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址相適配的瀏覽器內(nèi)核進(jìn)行所述網(wǎng)頁(yè)的渲染。根據(jù)本發(fā)明的實(shí)施例,所述預(yù)設(shè)瀏覽器側(cè)的瀏覽器最大進(jìn)程數(shù)步驟還可以包括,依據(jù)運(yùn)行所述瀏覽器的本地計(jì)算設(shè)備的硬件資源狀況設(shè)定瀏覽器側(cè)的瀏覽器最大進(jìn)程數(shù);根據(jù)本發(fā)明的實(shí)施例,所述硬件資源狀況還可以包括CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。根據(jù)本發(fā)明的實(shí)施例,所述核實(shí)查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致步驟還可以包括分別枚舉各所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程,當(dāng)被枚舉的所述進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致時(shí),使用所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)。根據(jù)本發(fā)明的實(shí)施例,所述核實(shí)查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致步驟還可以包括,對(duì)以下任一權(quán)限或任何其中若干權(quán)限的組合進(jìn)行核實(shí)后臺(tái)運(yùn)行權(quán)限;訪問書簽權(quán)限;訪問chrome://favicon權(quán)限;訪問上下文菜單權(quán)限;訪問cookie權(quán)限;訪問chrome, experimental. *接口權(quán)限;訪問geolocation接口權(quán)限;訪問歷史記錄權(quán)限;訪問chrome, idle模塊提供的接口權(quán)限;訪問chrome, management模塊提供的接口權(quán)限;訪問HTML5notifiCationS接口支持權(quán)限;訪問標(biāo)簽頁(yè)權(quán)限;無(wú)限Web存儲(chǔ)能力權(quán)限。根據(jù)本發(fā)明的實(shí)施例,所述使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)步驟還可以包括如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程中對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求進(jìn)行排隊(duì),逐一等待所述線程池中的由繁忙狀態(tài)轉(zhuǎn)為空閑狀態(tài)的線程打開所述網(wǎng)頁(yè)。根據(jù)本發(fā)明的實(shí)施例,所述使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)步驟還可以包括如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程都處于繁忙狀態(tài)時(shí),則通知瀏覽器主進(jìn)程查找其他已有瀏覽器進(jìn)程,確定另一個(gè)瀏覽器內(nèi)核類型及權(quán)限與打開所述新網(wǎng)頁(yè)所需瀏覽器內(nèi)核類型及權(quán)限相一致的已有進(jìn)程,打開所述網(wǎng)頁(yè)。根據(jù)本發(fā)明的實(shí)施例,所述使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)步驟還可以包括如果所述第一瀏覽器內(nèi)核為IE內(nèi)核,且所述進(jìn)程中的各線程都處于繁忙狀態(tài),則在所述進(jìn)程中新建線程,打開所述網(wǎng)頁(yè),并在所述新線程打開所述網(wǎng)頁(yè)后在被關(guān)閉時(shí)再銷毀所述該新建的線程。根據(jù)本發(fā)明的實(shí)施例,所述核實(shí)查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致步驟還可以進(jìn)一步包括核實(shí)到被查找到的一瀏覽器進(jìn)程中的各線程都處于繁忙狀態(tài);通知瀏覽器的主進(jìn)程去核實(shí)所述查找到的其他進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致且所述進(jìn)程中有處于空閑狀態(tài)的線程,以便在瀏覽器進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致的其他瀏覽器進(jìn)程中打開所述網(wǎng)頁(yè)。
根據(jù)本發(fā)明的另一方面,一種多核瀏覽器,包括預(yù)設(shè)最大進(jìn)程數(shù)模塊用于預(yù)設(shè)瀏覽器側(cè)的最大進(jìn)程數(shù);內(nèi)核確定模塊用于在瀏覽器側(cè)發(fā)起對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求,在所述多個(gè)瀏覽器內(nèi)核中確定一適配渲染該請(qǐng)求網(wǎng)頁(yè)的第一瀏覽器內(nèi)核;判斷進(jìn)程數(shù)模塊用于判斷當(dāng)前已有進(jìn)程數(shù)已達(dá)到所述最大進(jìn)程數(shù);查找進(jìn)程模塊用于查找到所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程;核實(shí)進(jìn)程權(quán)限模塊用于核實(shí)所述查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致;打開網(wǎng)頁(yè)模塊用于使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè);新建進(jìn)程模塊用于如果判斷當(dāng)前已有進(jìn)程數(shù)未達(dá)到所述瀏覽器側(cè)最大進(jìn)程數(shù)時(shí),新建一個(gè)使用第一瀏覽器內(nèi)核的進(jìn)程,打開所述網(wǎng)頁(yè)。根據(jù)本發(fā)明的實(shí)施例,所述內(nèi)核確定模塊還可以用于基于被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址URL,查詢?cè)跒g覽器側(cè)的網(wǎng)址與瀏覽器渲染內(nèi)核之間的映射表;從所述的多個(gè)瀏覽器內(nèi)核中確定與被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址相適配的瀏覽器內(nèi)核進(jìn)行所述網(wǎng)頁(yè)的渲染。根據(jù)本發(fā)明的實(shí)施例,所述預(yù)設(shè)最大進(jìn)程數(shù)模塊還可以用于,依據(jù)運(yùn)行所述瀏覽器的本地計(jì)算設(shè)備的硬件資源狀況設(shè)定瀏覽器側(cè)的瀏覽器最大進(jìn)程數(shù);根據(jù)本發(fā)明的實(shí)施例,所述硬件資源狀況可以包括CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。根據(jù)本發(fā)明的實(shí)施例,所述核實(shí)進(jìn)程權(quán)限模塊還可以用于,分別枚舉各所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程,當(dāng)被枚舉的所述進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致時(shí),使用所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)。根據(jù)本發(fā)明的實(shí)施例,所述核實(shí)進(jìn)程權(quán)限模塊還可以用于,對(duì)以下任一權(quán)限或任何其中若干權(quán)限的組合進(jìn)行核實(shí)后臺(tái)運(yùn)行權(quán)限;訪問書簽權(quán)限;訪問chrome://favicon權(quán)限;訪問上下文菜單權(quán)限;訪問cookie權(quán)限;訪問chrome, experimental. *接口權(quán)限;訪問geolocation接口權(quán)限;訪問歷史記錄權(quán)限;訪問chrome, idle模塊提供的接口權(quán)限;訪問chrome, management模塊提供的接口權(quán)限;訪問HTML5 notifications接口支持權(quán)限;訪問標(biāo)簽頁(yè)權(quán)限;無(wú)限Web存儲(chǔ)能力權(quán)限。根據(jù)本發(fā)明的實(shí)施例,所述打開網(wǎng)頁(yè)模塊還可以用于,如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程中對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求進(jìn)行排隊(duì),逐一等待所述線程池中的由繁忙狀態(tài)轉(zhuǎn)為空閑狀態(tài)的線程打開所述網(wǎng)頁(yè)。根據(jù)本發(fā)明的實(shí)施例,所述打開網(wǎng)頁(yè)模塊還可以用于,如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程都處于繁忙狀態(tài)時(shí),則通知瀏覽器主進(jìn)程查找其他已有瀏覽器進(jìn)程,確定另一個(gè)瀏覽器內(nèi)核類型及權(quán)限與打開所述新網(wǎng)頁(yè)所需瀏覽器內(nèi)核類型及權(quán)限相一致的已有進(jìn)程,打開所述網(wǎng)頁(yè)。根據(jù)本發(fā)明的實(shí)施例,所述打開網(wǎng)頁(yè)模塊還可以用于,如果所述第一瀏覽器內(nèi)核為IE內(nèi)核,且所述進(jìn)程中的各線程都處于繁忙狀態(tài),則在所述進(jìn)程中新建線程,打開所述網(wǎng)頁(yè),并在所述新線程打開所述網(wǎng)頁(yè)后在被關(guān)閉時(shí)再銷毀所述該新建的線程。根據(jù)本發(fā)明的實(shí)施例,所述核實(shí)進(jìn)程權(quán)限模塊還可以用于核實(shí)到被查找到的一瀏覽器進(jìn)程中的各線程都處于繁忙狀態(tài);通知瀏覽器的主進(jìn)程去核實(shí)所述查找到的其他進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致且所述進(jìn)程中有處于空閑狀態(tài)的線程,以便在瀏覽器進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致的其他瀏覽器進(jìn)程中打開所述網(wǎng)頁(yè)。根據(jù)本發(fā)明實(shí)施例,通過(guò)在多核瀏覽器的內(nèi)核中確定一適配渲染該請(qǐng)求網(wǎng)頁(yè)的瀏覽器內(nèi)核;判斷當(dāng)前已有進(jìn)程數(shù)已達(dá)到所述最大進(jìn)程數(shù);就可以確定進(jìn)行進(jìn)程的復(fù)用了,并查找到所述已有進(jìn)程中的是所述確定的適配瀏覽器內(nèi)核的進(jìn)程,核實(shí)所述查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致;使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)。這樣就可以保證多核瀏覽器的進(jìn)程復(fù)用中的安全性,對(duì)于被打開的網(wǎng)頁(yè)使其在復(fù)用進(jìn)程中打開時(shí)都是核實(shí)過(guò)其網(wǎng)頁(yè)權(quán)限和進(jìn)程權(quán)限的,而且也實(shí)現(xiàn)了對(duì)于多內(nèi)核瀏覽器情況下的進(jìn)程的復(fù)用。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1示出了根據(jù)本發(fā)明實(shí)施例所述的一種用于多核瀏覽器的進(jìn)程復(fù)用方法流程圖;圖2示出了根據(jù)本發(fā)明實(shí)施例所述的一種多核瀏覽器結(jié)構(gòu)框圖;圖3示出了根據(jù)本發(fā)明實(shí)施例的一種多核瀏覽器中實(shí)現(xiàn)進(jìn)程復(fù)用的方法中的進(jìn)程及線程結(jié)構(gòu)圖;圖4示出了圖3中進(jìn)程310的線程構(gòu)成的渲染線程池310C結(jié)構(gòu)圖;圖5示出了根據(jù)本發(fā)明實(shí)施例所述的一種用于多核瀏覽器的進(jìn)程復(fù)用方法的一個(gè)實(shí)施例流程圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。如圖1所示,為根據(jù)本發(fā)明實(shí)施例所述的一種用于多核瀏覽器的進(jìn)程復(fù)用方法流程圖,包括以下步驟步驟101 :預(yù)設(shè)瀏覽器側(cè)的最大進(jìn)程數(shù);例如例1,依據(jù)用戶的選擇預(yù)設(shè)瀏覽器測(cè)的最大進(jìn)程數(shù)為10個(gè);優(yōu)選的,步驟101還可以包括依據(jù)運(yùn)行所述瀏覽器的本地計(jì)算設(shè)備的硬件資源狀況設(shè)定瀏覽器側(cè)的瀏覽器最大進(jìn)程數(shù);優(yōu)選的,步驟101所述硬件資源狀況包括CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。例如例2,偵測(cè)到運(yùn)行瀏覽器的計(jì)算機(jī)性能狀況為CPU :1ntel Core i7,主頻2. 8GHz顯卡性能=NVIDIA GeForce GTX 680M SLI核心頻率720MHz內(nèi)存4GB,依據(jù)此計(jì)算機(jī)的性能,確定瀏覽器最大進(jìn)程數(shù)為10個(gè)。
步驟102 :在瀏覽器側(cè)發(fā)起對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求,在所述多個(gè)瀏覽器內(nèi)核中確定一適配渲染該請(qǐng)求網(wǎng)頁(yè)的第一瀏覽器內(nèi)核;例如續(xù)前述例1,當(dāng)用戶在一個(gè)用IE內(nèi)核渲染的頁(yè)面中,點(diǎn)擊一個(gè)地址鏈接hao. 360. cn,本方法確定IE內(nèi)核為適配該網(wǎng)頁(yè)請(qǐng)求的第一瀏覽器內(nèi)核。優(yōu)選的,步驟102還可以包括,基于被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址URL,查詢?cè)跒g覽器側(cè)的網(wǎng)址與瀏覽器渲染內(nèi)核之間的映射表;從所述的多個(gè)瀏覽器內(nèi)核中確定與被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址相適配的瀏覽器內(nèi)核進(jìn)行所述網(wǎng)頁(yè)的渲染。例如續(xù)前述例2,在瀏覽器側(cè)已經(jīng)收集了大量用戶對(duì)于特定網(wǎng)址對(duì)特定瀏覽器內(nèi)核的依賴情況信息,以其構(gòu)成網(wǎng)址與瀏覽器渲染內(nèi)核的映射表,表中“WWW. gmail. com”與“chrome瀏覽器內(nèi)核”相映射,當(dāng)用戶點(diǎn)擊一個(gè)網(wǎng)址www. gmail. com時(shí),本方法確定chrome瀏覽器內(nèi)核為適配該網(wǎng)頁(yè)請(qǐng)求的第一瀏覽器內(nèi)核。步驟103 :判斷當(dāng)前已有進(jìn)程數(shù)已達(dá)到所述最大進(jìn)程數(shù);優(yōu)選的,步驟103還包括,如果判斷當(dāng)前已有進(jìn)程數(shù)未達(dá)到所述瀏覽器側(cè)最大進(jìn)程數(shù)時(shí),新建一個(gè)使用第一瀏覽器內(nèi)核的進(jìn)程,打開所述網(wǎng)頁(yè)。例如續(xù)前述例2 :瀏覽器最大進(jìn)程數(shù)為10,如果當(dāng)前瀏覽器已有進(jìn)程為10,則進(jìn)行步驟104及其以后的步驟;例如例3 :如果當(dāng)前瀏覽器的已有進(jìn)程為6,小于瀏覽器最大進(jìn)程數(shù)10,針對(duì)網(wǎng)址WWW. gmail. com,則新建一個(gè)使用chrome瀏覽器內(nèi)核的進(jìn)行渲染的進(jìn)程,打開 www. gmail. com。步驟104 :查找到所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程;例如續(xù)前述例2 :瀏覽器最大進(jìn)程數(shù)為10,當(dāng)前瀏覽器已有10個(gè)進(jìn)程,本方法查找到其中7個(gè)進(jìn)程使用chrome瀏覽器內(nèi)核即第一瀏覽器內(nèi)核進(jìn)行渲染。步驟105 :核實(shí)所述查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致;優(yōu)選的,步驟105還可以包括分別枚舉各所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程,當(dāng)被枚舉的所述進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致時(shí),使用所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)。優(yōu)選的,步驟105還可以包括對(duì)以下任一權(quán)限或任何其中若干權(quán)限的組合進(jìn)行核實(shí)后臺(tái)運(yùn)行權(quán)限;訪問書簽權(quán)限;訪問chrome://favicon權(quán)限;訪問上下文菜單權(quán)限;訪問 cookie 權(quán)限;訪問 chrome, experimental. * 接 口權(quán)限;訪問 geolocation 接 口權(quán)限;訪問歷史記錄權(quán)限;訪問chrome, idle模塊提供的接口權(quán)限;訪問chrome, management模塊提供的接口權(quán)限;訪問HTML5notifiCationS接口支持權(quán)限;訪問標(biāo)簽頁(yè)權(quán)限;無(wú)限Web存儲(chǔ)能力權(quán)限。例如續(xù)前述例2 :打開所述www. gmail. com需要后臺(tái)運(yùn)行權(quán)限、訪問cookie權(quán)限,對(duì)已找到的7個(gè)使用chrome瀏覽器內(nèi)核進(jìn)的進(jìn)程進(jìn)行逐一枚舉,其中進(jìn)程A、進(jìn)程B都有后臺(tái)運(yùn)行權(quán)限、訪問cookie權(quán)限。優(yōu)選的,步驟105還可以包括核實(shí)到被查找到的一瀏覽器進(jìn)程中的各線程都處于繁忙狀態(tài);通知瀏覽器的主進(jìn)程去核實(shí)所述查找到的其他進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致且所述進(jìn)程中有處于空閑狀態(tài)的線程,以便在瀏覽器進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致的其他瀏覽器進(jìn)程中打開所述網(wǎng)頁(yè)。例如前續(xù)例2 :若進(jìn)程B的所有線程處于繁忙狀態(tài),則通知瀏覽器的主進(jìn)程去核實(shí)所述查找到的其他進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致且所述進(jìn)程中有處于空閑狀態(tài)的線程,例如進(jìn)程A。步驟106 :使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)。例如續(xù)前述例2,用進(jìn)程A中的頁(yè)面線程打開所述網(wǎng)頁(yè)。優(yōu)選的,步驟106還可以包括,如果所述第一瀏覽器內(nèi)核為ChiOme瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程中對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求進(jìn)行排隊(duì),逐一等待所述線程池中的由繁忙狀態(tài)轉(zhuǎn)為空閑狀態(tài)的線程打開所述網(wǎng)頁(yè)。例如續(xù)前述例2,如果進(jìn)程A中有3個(gè)頁(yè)面線程,將對(duì)所述www. gmail. com的瀏覽請(qǐng)求及在其之后的瀏覽請(qǐng)求排隊(duì),待進(jìn)程A中的3個(gè)頁(yè)面線程中的一個(gè)進(jìn)入空閑狀態(tài),則以此空閑的線程響應(yīng)所述隊(duì)列中的瀏覽網(wǎng)頁(yè)請(qǐng)求。優(yōu)選的,步驟106還可以包括如果所述第一瀏覽器內(nèi)核為ChiOme瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程都處于繁忙狀態(tài)時(shí),則通知瀏覽器主進(jìn)程查找其他已有瀏覽器進(jìn)程,確定另一個(gè)瀏覽器內(nèi)核類型及權(quán)限與打開所述新網(wǎng)頁(yè)所需瀏覽器內(nèi)核類型及權(quán)限相一致的已有進(jìn)程,打開所述網(wǎng)頁(yè)。例如續(xù)前述例2,如果進(jìn)程A中有3個(gè)頁(yè)面線程,并正都處繁忙狀態(tài),則通知瀏覽器主進(jìn)程查找其他已有瀏覽器進(jìn)程,確定另一個(gè)瀏覽器內(nèi)核類型及權(quán)限與打開所述新網(wǎng)頁(yè)所需瀏覽器內(nèi)核類型及權(quán)限相一致的已有進(jìn)程(例如,進(jìn)程B),打開所述www. gmail. com網(wǎng)頁(yè)。優(yōu)選的,步驟106還可以包括如果所述第一瀏覽器內(nèi)核為IE內(nèi)核,且所述進(jìn)程中的各線程都處于繁忙狀態(tài),則在所述進(jìn)程中新建線程,打開所述網(wǎng)頁(yè),并在所述新線程打開所述網(wǎng)頁(yè)后在被關(guān)閉時(shí)再銷毀所述該新建的線程。例如續(xù)前述例1,已確定用IE瀏覽器內(nèi)核作為第一瀏覽器打開所述hao. 360. cn/網(wǎng)頁(yè),本方法查找到進(jìn)程C使用IE瀏覽器內(nèi)核即第一瀏覽器內(nèi)核進(jìn)行渲染,進(jìn)程C中的各線程都處于繁忙狀態(tài),則在進(jìn)程C中新建一個(gè)頁(yè)面線程,打開hao. 360. cn/網(wǎng)頁(yè),在所述hao. 360. cn網(wǎng)頁(yè)關(guān)閉后,銷毀所述新建的線程。如圖2所示,為根據(jù)本發(fā)明實(shí)施例所述的一種多核瀏覽器200結(jié)構(gòu)框圖,包括以下模塊預(yù)設(shè)最大進(jìn)程數(shù)模塊201 :用于預(yù)設(shè)瀏覽器側(cè)的最大進(jìn)程數(shù);優(yōu)選的,預(yù)設(shè)最大進(jìn)程數(shù)模塊201還可以用于,依據(jù)運(yùn)行所述瀏覽器的本地計(jì)算設(shè)備的硬件資源狀況設(shè)定瀏覽器側(cè)的瀏覽器最大進(jìn)程數(shù);優(yōu)選的,所述硬件資源狀況包括=CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。內(nèi)核確定模塊202 :用于在瀏覽器側(cè)發(fā)起對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求,在所述多個(gè)瀏覽器內(nèi)核中確定一適配渲染該請(qǐng)求網(wǎng)頁(yè)的第一瀏覽器內(nèi)核;優(yōu)選的,內(nèi)核確定模塊202還可以用于,基于被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址URL,查詢?cè)跒g覽器側(cè)的網(wǎng)址與瀏覽器渲染內(nèi)核之間的映射表;從所述的多個(gè)瀏覽器內(nèi)核中確定與被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址相適配的瀏覽器內(nèi)核進(jìn)行所述網(wǎng)頁(yè)的渲染。判斷進(jìn)程數(shù)模塊203 :用于判斷當(dāng)前已有進(jìn)程數(shù)已達(dá)到所述最大進(jìn)程數(shù);查找進(jìn)程模塊204 :用于查找到所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程;核實(shí)進(jìn)程權(quán)限模塊205 :用于核實(shí)所述查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致;優(yōu)選的,核實(shí)進(jìn)程權(quán)限模塊205還可以用于分別枚舉各所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程,當(dāng)被枚舉的所述進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致時(shí),使用所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)。優(yōu)選的,核實(shí)進(jìn)程權(quán)限模塊205還可以用于對(duì)以下任一權(quán)限或任何其中若干權(quán)限的組合進(jìn)行核實(shí)后臺(tái)運(yùn)行權(quán)限;訪問書簽權(quán)限;訪問chrome://favicon權(quán)限;訪問上下文菜單權(quán)限;訪問cookie權(quán)限;訪問chrome, experimental. *接口權(quán)限;訪問geolocation接口權(quán)限;訪問歷史記錄權(quán)限;訪問chrome, idle模塊提供的接口權(quán)限;訪問chrome, management模塊提供的接口權(quán)限;訪問HTML5 notifications接口支持權(quán)限;訪問標(biāo)簽頁(yè)權(quán)限;無(wú)限Web存儲(chǔ)能力權(quán)限。優(yōu)選的,核實(shí)進(jìn)程權(quán)限模塊205還可以用于核實(shí)到被查找到的一瀏覽器進(jìn)程中的各線程都處于繁忙狀態(tài);通知瀏覽器的主進(jìn)程去核實(shí)所述查找到的其他進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致且所述進(jìn)程中有處于空閑狀態(tài)的線程,以便在瀏覽器進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致的其他瀏覽器進(jìn)程中打開所述網(wǎng)頁(yè)。打開網(wǎng)頁(yè)模塊206 :用于使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)。優(yōu)選的,打開網(wǎng)頁(yè)模塊206還可以用于如果所述第一瀏覽器內(nèi)核為ChiOme瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程中對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求進(jìn)行排隊(duì),逐一等待所述線程池中的由繁忙狀態(tài)轉(zhuǎn)為空閑狀態(tài)的線程打開所述網(wǎng)頁(yè)。優(yōu)選的,打開網(wǎng)頁(yè)模塊206還可以用于如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程都處于繁忙狀態(tài)時(shí),則通知瀏覽器主進(jìn)程查找其他已有瀏覽器進(jìn)程,確定另一個(gè)瀏覽器內(nèi)核類型及權(quán)限與打開所述新網(wǎng)頁(yè)所需瀏覽器內(nèi)核類型及權(quán)限相一致的已有進(jìn)程,打開所述網(wǎng)頁(yè)。優(yōu)選的,打開網(wǎng)頁(yè)模塊206還可以用于如果所述第一瀏覽器內(nèi)核為IE內(nèi)核,且所述進(jìn)程中的各線程都處于繁忙狀態(tài),則在所述進(jìn)程中新建線程,打開所述網(wǎng)頁(yè),并在所述新線程打開所述網(wǎng)頁(yè)后在被關(guān)閉時(shí)再銷毀所述該新建的線程。優(yōu)選的,本瀏覽器還可以包括新建進(jìn)程模塊用于如果判斷當(dāng)前已有進(jìn)程數(shù)未達(dá)到所述瀏覽器側(cè)最大進(jìn)程數(shù)時(shí),新建一個(gè)使用第一瀏覽器內(nèi)核的進(jìn)程,打開所述網(wǎng)頁(yè)。如圖3,為根據(jù)本發(fā)明實(shí)施例的一種多核瀏覽器中實(shí)現(xiàn)進(jìn)程復(fù)用的方法中的進(jìn)程及線程結(jié)構(gòu)圖。如圖所示,主進(jìn)程300包括進(jìn)程310、進(jìn)程320、進(jìn)程330 ;進(jìn)程310包括線程311、線程312、線程313 ;進(jìn)程320包括線程321、線程322、線程323。如圖4,為如圖3中進(jìn)程310的線程構(gòu)成的渲染線程池310C結(jié)構(gòu)圖。如圖所示渲染線程池310C包括線程311、線程312、線程313,以及后續(xù)在應(yīng)用下述方案3時(shí)新建的線程314。依據(jù)本方法,預(yù)設(shè)瀏覽器側(cè)的最大進(jìn)程數(shù)為3;在瀏覽器側(cè)發(fā)起對(duì)網(wǎng)頁(yè)www.gmail. com的瀏覽請(qǐng)求,在所述多個(gè)瀏覽器內(nèi)核中確定chrome瀏覽器內(nèi)核為適配渲染該請(qǐng)求網(wǎng)頁(yè)謂.gmail. com的第一瀏覽器內(nèi)核;判斷當(dāng)前已有進(jìn)程數(shù)3已達(dá)到所述最大進(jìn)程數(shù)3 ;查找到所述已有進(jìn)程中進(jìn)程310使用chrome瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程;核實(shí)所述查找到的進(jìn)程310的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致;使用權(quán)限相一致的所述進(jìn)程310中的頁(yè)面線程打開所述網(wǎng)頁(yè)的具體步驟如下用進(jìn)程310中的頁(yè)面線程打開所述網(wǎng)頁(yè)??蛇x擇下述方案方案1:如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程中對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求進(jìn)行排隊(duì),逐一等待所述線程池中的由繁忙狀態(tài)轉(zhuǎn)為空閑狀態(tài)的線程打開所述網(wǎng)頁(yè)。例如進(jìn)程310中有3個(gè)頁(yè)面線程311 313,將對(duì)所述www. gmail. com的瀏覽請(qǐng)求及在其之后的瀏覽請(qǐng)求排隊(duì),此時(shí)若線程311進(jìn)入空閑狀態(tài),則以此空閑的線程311響應(yīng)所述隊(duì)列中的瀏覽網(wǎng)頁(yè)請(qǐng)求。方案2 :在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程都處于繁忙狀態(tài)時(shí),則通知瀏覽器主進(jìn)程查找其他已有瀏覽器進(jìn)程,確定另一個(gè)瀏覽器內(nèi)核類型及權(quán)限與打開所述新網(wǎng)頁(yè)所需瀏覽器內(nèi)核類型及權(quán)限相一致的已有進(jìn)程,打開所述網(wǎng)頁(yè)。例如進(jìn)程310中有3個(gè)頁(yè)面線程31廣313,并正都處繁忙狀態(tài),則通知瀏覽器主進(jìn)程300查找其他已有瀏覽器進(jìn)程,確定另一個(gè)瀏覽器內(nèi)核類型及權(quán)限與打開所述新網(wǎng)頁(yè)所需瀏覽器內(nèi)核類型及權(quán)限相一致的已有進(jìn)程(例如,進(jìn)程320),打開所述gmail. com網(wǎng)頁(yè)。另一種情況是,若所述第一瀏覽器內(nèi)核為Trident(IE)內(nèi)核,查找到所述已有進(jìn)程中進(jìn)程310使用Trident (IE)內(nèi)核進(jìn)行渲染的進(jìn)程;可選擇采用上述方案2打開網(wǎng)頁(yè),但不可采用上述方案I打開網(wǎng)頁(yè),而可選擇采用下述方案3打開網(wǎng)頁(yè)方案3 :如果所述第一瀏覽器內(nèi)核為IE內(nèi)核,且所述進(jìn)程中的各線程都處于繁忙狀態(tài),則在所述進(jìn)程中新建線程,打開所述網(wǎng)頁(yè),并在所述新線程打開所述網(wǎng)頁(yè)后在被關(guān)閉時(shí)再銷毀所述該新建的線程。例如進(jìn)程310的各線程31 f 313處于繁忙狀態(tài),則在進(jìn)程310中新建線程314,打開所述WWW. gmail. com網(wǎng)頁(yè),并在所述www. gmail. com被關(guān)閉后,銷毀所述新建的線程314。另一種情況是,無(wú)論所述第一瀏覽器內(nèi)核為何種類型,所述核實(shí)查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致步驟,進(jìn)一步包括核實(shí)到被查找到的一瀏覽器進(jìn)程中的各線程都處于繁忙狀態(tài);通知瀏覽器的主進(jìn)程去核實(shí)所述查找到的其他進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致且所述進(jìn)程中有處于空閑狀態(tài)的線程,以便在瀏覽器進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致的其他瀏覽器進(jìn)程中打開所述網(wǎng)頁(yè)。例如,核實(shí)進(jìn)程310、進(jìn)程320都為第一瀏覽器內(nèi)核,310的權(quán)限與打開網(wǎng)頁(yè)www.gmail. com的所需權(quán)限一致,并進(jìn)一步核實(shí)到進(jìn)程310的各線程都處于繁忙狀態(tài);通知瀏覽器主進(jìn)程300去核實(shí)進(jìn)程320的權(quán)限與打開網(wǎng)頁(yè)www. gmail. com所需權(quán)限是否一致并且進(jìn)程320中是否有空閑線程,若是,則使用進(jìn)程320打開所述www. gmail. com網(wǎng)頁(yè)。如圖5 :為根據(jù)本發(fā)明實(shí)施例所述的一種用于多核瀏覽器的進(jìn)程復(fù)用方法的一個(gè)實(shí)施例流程圖,包括以下步驟步驟501 :根據(jù)用戶本地的switcher數(shù)據(jù)和后臺(tái)數(shù)據(jù)判斷用戶瀏覽所述網(wǎng)頁(yè)的內(nèi)核類型switcher是根據(jù)通過(guò)分析大量的用戶反饋后,記錄的對(duì)于某些特定網(wǎng)站或者網(wǎng)頁(yè),由于頁(yè)面的html代碼或依賴特殊的插件(或控件)需要使用Trident內(nèi)核才能正常顯示或者正常工作的數(shù)據(jù),例如某網(wǎng)站網(wǎng)購(gòu)時(shí)的支付頁(yè)面能夠成功須采用Trident內(nèi)核瀏覽器。若須使用Trident內(nèi)核,則在執(zhí)行步驟502后,執(zhí)行步驟523 步驟530 ;若須使用Webkit內(nèi)核,則在執(zhí)行步驟502后,執(zhí)行步驟503 步驟510 ;步驟502 :根據(jù)用戶硬件系統(tǒng)判斷合適的瀏覽器最大進(jìn)程數(shù);步驟503 :依據(jù)前述步驟,若判斷須使用Webkit內(nèi)核,開始執(zhí)行步驟503 步驟510。判斷當(dāng)前已有瀏覽器進(jìn)程數(shù)是否已達(dá)到所述瀏覽器最大進(jìn)程數(shù);如果所述已有進(jìn)程數(shù)已達(dá)到所述最大進(jìn)程數(shù),執(zhí)行步驟504 ;若否,執(zhí)行步驟510 ;步驟504 :枚舉使用Webkit內(nèi)核的渲染進(jìn)程;所謂枚舉,即逐個(gè)查找,當(dāng)找到一個(gè)使用Webkit內(nèi)核的渲染進(jìn)程,執(zhí)行后續(xù)步驟505 ;步驟505 :判斷是否枚舉完所有使用Webkit內(nèi)核的渲染進(jìn)程;如果枚舉完所有使用Webkit內(nèi)核的渲染進(jìn)程,則執(zhí)行步驟510 ;若否,則執(zhí)行步驟506 ;步驟506 :核實(shí)該進(jìn)程的權(quán)限;即核實(shí)找到的使用Webkit內(nèi)核的渲染進(jìn)程的權(quán)限;步驟507 :核實(shí)該進(jìn)程的權(quán)限是否與打開所述新網(wǎng)頁(yè)所需的權(quán)限匹配;若不匹配,則轉(zhuǎn)步驟504枚舉另一個(gè)使用Webkit內(nèi)核的渲染進(jìn)程;若匹配,則執(zhí)行步驟508 ;步驟508 :核實(shí)該進(jìn)程的線程數(shù)是否已經(jīng)達(dá)到最大容許線程數(shù);若是;則轉(zhuǎn)步驟504枚舉另一個(gè)使用Webkit內(nèi)核的渲染進(jìn)程;若否,執(zhí)行步驟509 ;步驟509 :通知找到的進(jìn)程,發(fā)起新的頁(yè)面瀏覽過(guò)程;即用經(jīng)過(guò)前述步驟508查找到的符合要求的進(jìn)程打開頁(yè)面;步驟510 :新建一個(gè)使用Webkit內(nèi)核的渲染進(jìn)程并發(fā)起瀏覽網(wǎng)頁(yè)過(guò)程。依據(jù)前述步驟,在兩種情況下執(zhí)行步驟510,一,在步驟503中判斷當(dāng)前瀏覽器進(jìn)程數(shù)尚未達(dá)到瀏覽器最大進(jìn)程數(shù)時(shí),執(zhí)行步驟510 ;二,在步驟505中,判斷所有使用Webkit內(nèi)核的渲染進(jìn)程枚舉完畢,但未找到可用進(jìn)程時(shí),執(zhí)行步驟510。步驟523 步驟530 :在步驟501中,若根據(jù)用戶本地的switcher數(shù)據(jù)和后臺(tái)數(shù)據(jù)判斷用戶瀏覽所述網(wǎng)頁(yè)的內(nèi)核類型為Trident(IE)內(nèi)核,則在執(zhí)行步驟502后,執(zhí)行步驟523 步驟530。步驟523 步驟530與前述步驟503 步驟510相對(duì)應(yīng),區(qū)別是對(duì)采用Trident (IE)內(nèi)核的進(jìn)程進(jìn)行相應(yīng)步驟。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說(shuō)明書中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的圖2設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種用于多核瀏覽器的進(jìn)程復(fù)用方法,包括 預(yù)設(shè)瀏覽器側(cè)的最大進(jìn)程數(shù); 在瀏覽器側(cè)發(fā)起對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求,在所述多個(gè)瀏覽器內(nèi)核中確定一適配渲染該請(qǐng)求網(wǎng)頁(yè)的第一瀏覽器內(nèi)核; 判斷當(dāng)前已有進(jìn)程數(shù)已達(dá)到所述最大進(jìn)程數(shù); 查找到所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程; 核實(shí)所述查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致; 使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè); 如果判斷當(dāng)前已有進(jìn)程數(shù)未達(dá)到所述瀏覽器側(cè)最大進(jìn)程數(shù)時(shí),新建一個(gè)使用第一瀏覽器內(nèi)核的進(jìn)程,打開所述網(wǎng)頁(yè)。
2.如權(quán)利要求1所述方法,其特征在于,所述在所述多個(gè)瀏覽器內(nèi)核中確定一適配渲染該請(qǐng)求網(wǎng)頁(yè)的第一瀏覽器內(nèi)核包括 基于被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址URL,查詢?cè)跒g覽器側(cè)的網(wǎng)址與瀏覽器渲染內(nèi)核之間的映射表; 從所述的多個(gè)瀏覽器內(nèi)核中確定與被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址相適配的瀏覽器內(nèi)核進(jìn)行所述網(wǎng)頁(yè)的渲染。
3.如權(quán)利要求1所述方法,其特征在于,所述預(yù)設(shè)瀏覽器側(cè)的瀏覽器最大進(jìn)程數(shù)步驟,依據(jù)運(yùn)行所述瀏覽器的本地計(jì)算設(shè)備的硬件資源狀況設(shè)定瀏覽器側(cè)的瀏覽器最大進(jìn)程數(shù)。
4.如權(quán)利要求3所述方法,其特征在于,所述硬件資源狀況包括CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。
5.如權(quán)利要求1所述方法,其特征在于,所述核實(shí)查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致步驟,包括分別枚舉各所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程,當(dāng)被枚舉的所述進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致時(shí),使用所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)。
6.如權(quán)利要求1所述方法,其特征在于,所述核實(shí)查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致步驟,包括對(duì)以下任一權(quán)限或任何其中若干權(quán)限的組合進(jìn)行核實(shí) 后臺(tái)運(yùn)行權(quán)限; 訪問書簽權(quán)限; 訪問 chrome://favicon 權(quán)限; 訪問上下文菜單權(quán)限; 訪問cookie權(quán)限; 訪問 chrome, experimental. * 接口權(quán)限; 訪問geolocation接口權(quán)限; 訪問歷史記錄權(quán)限; 訪問chrome, idle模塊提供的接口權(quán)限; 訪問chrome, management模塊提供的接口權(quán)限; 訪問HTML5 notifications接口支持權(quán)限; 訪問標(biāo)簽頁(yè)權(quán)限;無(wú)限Web存儲(chǔ)能力權(quán)限。
7.如權(quán)利要求1所述方法,其特征在于,所述使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)步驟,包括如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程中對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求進(jìn)行排隊(duì),逐一等待所述線程池中的由繁忙狀態(tài)轉(zhuǎn)為空閑狀態(tài)的線程打開所述網(wǎng)頁(yè)。
8.如權(quán)利要求1所述方法,其特征在于,所述使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)步驟,包括如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程都處于繁忙狀態(tài)時(shí),則通知瀏覽器主進(jìn)程查找其他已有瀏覽器進(jìn)程,確定另一個(gè)瀏覽器內(nèi)核類型及權(quán)限與打開所述新網(wǎng)頁(yè)所需瀏覽器內(nèi)核類型及權(quán)限相一致的已有進(jìn)程,打開所述網(wǎng)頁(yè)。
9.如權(quán)利要求1所述方法,其特征在于,所述使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)步驟,包括如果所述第一瀏覽器內(nèi)核為IE內(nèi)核,且所述進(jìn)程中的各線程都處于繁忙狀態(tài),則在所述進(jìn)程中新建線程,打開所述網(wǎng)頁(yè),并在所述新線程打開所述網(wǎng)頁(yè)后在被關(guān)閉時(shí)再銷毀所述該新建的線程。
10.如權(quán)利要求1所述方法,其特征在于,所述核實(shí)查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致步驟,進(jìn)一步包括核實(shí)到被查找到的一瀏覽器進(jìn)程中的各線程都處于繁忙狀態(tài);通知瀏覽器的主進(jìn)程去核實(shí)所述查找到的其他進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致且所述進(jìn)程中有處于空閑狀態(tài)的線程,以便在瀏覽器進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致的其他瀏覽器進(jìn)程中打開所述網(wǎng)頁(yè)。
11.一種多核瀏覽器,包括預(yù)設(shè)最大進(jìn)程數(shù)模塊,用于預(yù)設(shè)瀏覽器側(cè)的最大進(jìn)程數(shù);內(nèi)核確定模塊,用于在瀏覽器側(cè)發(fā)起對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求,在所述多個(gè)瀏覽器內(nèi)核中確定一適配渲染該請(qǐng)求網(wǎng)頁(yè)的第一瀏覽器內(nèi)核;判斷進(jìn)程數(shù)模塊,用于判斷當(dāng)前已有進(jìn)程數(shù)已達(dá)到所述最大進(jìn)程數(shù);查找進(jìn)程模塊,用于查找到所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程;核實(shí)進(jìn)程權(quán)限模塊,用于核實(shí)所述查找到的進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致;打開網(wǎng)頁(yè)模塊,用于使用權(quán)限相一致的所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè);新建進(jìn)程模塊,用于如果判斷當(dāng)前已有進(jìn)程數(shù)未達(dá)到所述瀏覽器側(cè)最大進(jìn)程數(shù)時(shí),新建一個(gè)使用第一瀏覽器內(nèi)核的進(jìn)程,打開所述網(wǎng)頁(yè)。
12.如權(quán)利要求11所述瀏覽器,其特征在于,所述內(nèi)核確定模塊用于基于被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址URL,查詢?cè)跒g覽器側(cè)的網(wǎng)址與瀏覽器渲染內(nèi)核之間的映射表;從所述的多個(gè)瀏覽器內(nèi)核中確定與被請(qǐng)求的網(wǎng)頁(yè)的網(wǎng)址相適配的瀏覽器內(nèi)核進(jìn)行所述網(wǎng)頁(yè)的渲染。
13.如權(quán)利要求11所述瀏覽器,其特征在于,所述預(yù)設(shè)最大進(jìn)程數(shù)模塊用于,依據(jù)運(yùn)行所述瀏覽器的本地計(jì)算設(shè)備的硬件資源狀況設(shè)定瀏覽器側(cè)的瀏覽器最大進(jìn)程數(shù)。
14.如權(quán)利要求13所述瀏覽器,其特征在于,所述硬件資源狀況包括CPU性能、或顯卡性能、或內(nèi)存性能、或任何前述兩者或三者的組合、或由任何前述兩者或三者以預(yù)定規(guī)則得到的綜合性能指數(shù)。
15.如權(quán)利要求11所述瀏覽器,其特征在于,所述核實(shí)進(jìn)程權(quán)限模塊用于,分別枚舉各所述已有進(jìn)程中使用第一瀏覽器內(nèi)核進(jìn)行渲染的進(jìn)程,當(dāng)被枚舉的所述進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致時(shí),使用所述進(jìn)程中的頁(yè)面線程打開所述網(wǎng)頁(yè)。
16.如權(quán)利要求11所述瀏覽器,其特征在于,所述核實(shí)進(jìn)程權(quán)限模塊用于,對(duì)以下任一權(quán)限或任何其中若干權(quán)限的組合進(jìn)行核實(shí) 后臺(tái)運(yùn)行權(quán)限; 訪問書簽權(quán)限; 訪問 chrome://favicon 權(quán)限; 訪問上下文菜單權(quán)限; 訪問cookie權(quán)限; 訪問 chrome, experimental. * 接口權(quán)限; 訪問geolocation接口權(quán)限; 訪問歷史記錄權(quán)限; 訪問chrome, idle模塊提供的接口權(quán)限; 訪問chrome, management模塊提供的接口權(quán)限; 訪問HTML5 notifications接口支持權(quán)限; 訪問標(biāo)簽頁(yè)權(quán)限; 無(wú)限Web存儲(chǔ)能力權(quán)限。
17.如權(quán)利要求11所述瀏覽器,其特征在于,所述打開網(wǎng)頁(yè)模塊用于, 如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程中對(duì)網(wǎng)頁(yè)的瀏覽請(qǐng)求進(jìn)行排隊(duì),逐一等待所述線程池中的由繁忙狀態(tài)轉(zhuǎn)為空閑狀態(tài)的線程打開所述網(wǎng)頁(yè)。
18.如權(quán)利要求11所述瀏覽器,其特征在于,所述打開網(wǎng)頁(yè)模塊用于, 如果所述第一瀏覽器內(nèi)核為Chrome瀏覽器的內(nèi)核,在所述使用權(quán)限相一致的進(jìn)程的線程池中的各線程都處于繁忙狀態(tài)時(shí),則通知瀏覽器主進(jìn)程查找其他已有瀏覽器進(jìn)程,確定另一個(gè)瀏覽器內(nèi)核類型及權(quán)限與打開所述新網(wǎng)頁(yè)所需瀏覽器內(nèi)核類型及權(quán)限相一致的已有進(jìn)程,打開所述網(wǎng)頁(yè)。
19.如權(quán)利要求11所述瀏覽器,其特征在于,所述打開網(wǎng)頁(yè)模塊用于, 如果所述第一瀏覽器內(nèi)核為IE內(nèi)核,且所述進(jìn)程中的各線程都處于繁忙狀態(tài),則在所述進(jìn)程中新建線程,打開所述網(wǎng)頁(yè),并在所述新線程打開所述網(wǎng)頁(yè)后在被關(guān)閉時(shí)再銷毀所述該新建的線程。
20.如權(quán)利要求11所述瀏覽器,其特征在于,所述核實(shí)進(jìn)程權(quán)限模塊用于 核實(shí)到被查找到的一瀏覽器進(jìn)程中的各線程都處于繁忙狀態(tài); 通知瀏覽器的主進(jìn)程去核實(shí)所述查找到的其他進(jìn)程的權(quán)限是否與打開所述網(wǎng)頁(yè)所需的權(quán)限一致且所述進(jìn)程中有 處于空閑狀態(tài)的線程,以便在瀏覽器進(jìn)程的權(quán)限與打開所述網(wǎng)頁(yè)所需的權(quán)限一致的其他瀏覽器進(jìn)程中打開所述網(wǎng)頁(yè)。
全文摘要
本發(fā)明公開了一種用于多核瀏覽器的進(jìn)程復(fù)用方法和多核瀏覽器。本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及進(jìn)程復(fù)用的方法及進(jìn)程復(fù)用的多核瀏覽器。本發(fā)明要解決的問題是,根據(jù)已經(jīng)存在的渲染進(jìn)程的權(quán)限分配渲染進(jìn)程,同時(shí)能直接使用到Chrome模型中。所述多核瀏覽器包括預(yù)設(shè)最大進(jìn)程數(shù)模塊;內(nèi)核確定模塊;判斷進(jìn)程數(shù)模塊;查找進(jìn)程模塊;核實(shí)進(jìn)程權(quán)限模塊;打開網(wǎng)頁(yè)模塊;新建進(jìn)程模塊。
文檔編號(hào)G06F9/48GK103019846SQ20121053080
公開日2013年4月3日 申請(qǐng)日期2012年12月10日 優(yōu)先權(quán)日2012年12月10日
發(fā)明者曹龍, 任寰 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司