发明内容
本发明所要解决的技术问题在于提供一种方法或浏览器,其能够解决IE浏览器要进行进程复用的进程中的安全权限管理问题;
为解决上述技术问题,本发明的一方面提供一种用于IE浏览器的进程复用方法,预设IE浏览器侧的浏览器最大进程数;在IE浏览器侧发起对新网页的浏览请求;判断当前已有浏览器进程数已达到所述浏览器最大进程数;查找到所述已有浏览器进程中使用IE浏览器内核进行渲染的进程;核实所述查找到的进程的权限是否与打开所述新网页所需的权限匹配;使用权限相匹配的所述进程中的页面线程打开所述网页;如果判断当前已有浏览器进程数未达到所述浏览器最大进程数时,新建一个使用IE浏览器内核进行渲染的进程,打开所述请求的网页。
根据本发明的实施例,本方法所述预设IE浏览器侧的浏览器最大进程数步骤还可以包括:依据运行所述IE浏览器的本地计算设备的硬件资源状况设定IE浏览器侧的浏览器最大进程数;所述硬件资源状况包括,CPU性能、或显卡性能、或内存性能、或任何前述两者或三者的组合、或由任何前述两者或三者以预定规则得到的综合性能指数。
根据本发明的实施例,本方法所述使用权限相匹配的所述进程中的页面线程打开所述网页步骤,还可以包括:选择在所述进程中的空闲的页面线程打开所述网页;若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数小于所述进程最大容许线程数,则在所述进程中新建页面线程打开所述网页;若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数达到所述进程最大容许线程数,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
根据本发明的实施例,本方法所述使用权限相匹配的所述进程中的页面线程打开所述网页步骤,还可以包括:若所述进程中不存在空闲的页面线程,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
根据本发明的实施例,本方法所述核实所述查找到的进程的权限是否与打开所述新网页所需的权限匹配步骤,还可以包括对以下任一或任何其中若干权限的组合进行核实:后台运行权限;访问书签权限;访问收藏夹权限;访问上下文菜单权限;访问cookie权限;访问geolocation接口权限;访问历史记录权限;访问标签页权限;无限Web存储能力权限。
根据本发明的实施例,本方法所述所述核实所述查找到的进程的权限是否与打开所述新网页所需的权限匹配步骤,还可以包括枚举所述查找到的进程的权限,并逐一与打开所述网页所需的权限相比较。
本发明的一方面提供一种IE浏览器,包括:预设最大进程数模块,用于预设IE浏览器侧的浏览器最大进程数;发起请求模块,用于在IE浏览器侧发起对新网页的浏览请求;判断进程数模块,用于判断当前已有浏览器进程数已达到所述浏览器最大进程数;查找IE进程模块,用于查找到所述已有浏览器进程中使用IE浏览器内核进行渲染的进程;核实进程权限模块,用于核实所述查找到的进程的权限是否与打开所述新网页所需的权限匹配;打开网页模块,用于使用权限相匹配的所述进程中的页面线程打开所述网页;新建进程模块,用于如果判断当前已有浏览器进程数未达到所述浏览器最大进程数时,新建一个使用IE浏览器内核进行渲染的进程,打开所述请求的网页。
根据本发明的实施例,本浏览器所述预设最大进程数模块,还可以用于,依据运行所述IE浏览器的本地计算设备的硬件资源状况设定IE浏览器侧的浏览器最大进程数;所述硬件资源状况包括,CPU性能、或显卡性能、或内存性能、或任何前述两者或三者的组合、或由任何前述两者或三者以预定规则得到的综合性能指数。
根据本发明的实施例,本浏览器所述打开网页模块,还可以用于:选择在所述进程中的空闲的页面线程打开所述网页;若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数小于所述进程最大容许线程数,则在所述进程中新建页面线程打开所述网页;若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数达到所述进程最大容许线程数,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
根据本发明的实施例,本浏览器所述打开网页模块,还可以用于:若所述进程中不存在空闲的页面线程,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
根据本发明的实施例,本浏览器所述核实进程权限模块,还可以用于,对以下任一或任何其中若干权限的组合进行核实:后台运行权限;访问书签权限;访问收藏夹权限;访问上下文菜单权限;访问cookie权限;访问geolocation接口权限;访问历史记录权限;访问标签页权限;无限Web存储能力权限。
根据本发明的实施例,本浏览器所述核实进程权限模块,还可以用于,枚举所述查找到的进程的权限,并逐一与打开所述网页所需的权限相比较。
本发明的方案中能够解决IE浏览器要进行进程复用的进程中的安全权限管理问题,能够保证在IE浏览器中进行进程复用时将被打开的网页所需要的权限和进程的权限进行匹配后,使用权限相匹配的进程中的页面线程打开所述网页,这样保证复用进程中的权限安全性,实现依据已经存在的渲染进程的权限分配渲染进程来打开网页。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,为根据本发明实施例所述的一种用于IE浏览器的进程复用方法流程图,包括以下步骤:
步骤101,预设IE浏览器侧的浏览器最大进程数;
例如,依据用户的选择预设IE浏览器测的最大进程数为10个;
优选的,所述预设IE浏览器侧的浏览器最大进程数步骤包括:依据运行所述IE浏览器的本地计算设备的硬件资源状况设定IE浏览器侧的浏览器最大进程数;所述硬件资源状况包括,CPU性能、或显卡性能、或内存性能、或任何前述两者或三者的组合、或由任何前述两者或三者以预定规则得到的综合性能指数。
例如,侦测到运行浏览器的计算机性能状况为CPU:Intel Core i7,主频2.8GHz显卡性能:NVIDIA GeForce GTX 680M SLI核心频率720MHz内存:4GB,依据此计算机的性能,确定浏览器最大进程数为10个。
步骤102,在IE浏览器侧发起对新网页的浏览请求。
例如,当用户在一个用IE浏览器打开的页面中,点击一个地址链接http://hao.360.cn/,本方法向所述IE浏览器发起针对该地址的网页的浏览请求。
步骤103,判断当前已有浏览器进程数已达到所述浏览器最大进程数;优选的,还包括:如果判断当前已有浏览器进程数未达到所述浏览器最大进程数时,新建一个使用IE浏览器内核进行渲染的进程,打开所述请求的网页。
例如:浏览器最大进程数为10,如果当前浏览器已有进程为10,则进行步骤104及104以后的步骤;如果当前浏览器的已有进程为6,小于浏览器最大进程数10,则新建一个使用IE浏览器内核进行渲染的进程,打开http://hao.360.cn/。
步骤104,查找到所述已有浏览器进程中使用IE浏览器内核进行渲染的进程;
例如:浏览器最大进程数为10,当前浏览器已有10个进程,本方法查找到其中7个进程使用IE浏览器内核进行渲染。
步骤105,核实所述查找到的进程的权限是否与打开所述新网页所需的权限匹配;优选的,包括枚举所述查找到的进程的权限,并逐一与打开所述网页所需的权限相比较。优选的,包括对以下任一或任何其中若干权限的组合进行核实:后台运行权限;访问书签权限;访问收藏夹权限;访问上下文菜单权限;访问cookie权限;访问geolocation接口权限;访问历史记录权限;访问标签页权限;无限Web存储能力权限。
例如:打开所述http://hao.360.cn/需要后台运行权限、访问历史记录权限,对已找到的7个使用IE浏览器内核进的进程进行逐一枚举,其中A进程、B进程都有后台运行权限、访问历史记录权限。
步骤106,使用权限相匹配的所述进程中的页面线程打开所述网页。
优选的,包括:选择在所述进程中的空闲的页面线程打开所述网页;若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数小于所述进程最大容许线程数,则在所述进程中新建页面线程打开所述网页;若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数达到所述进程最大容许线程数,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
例如:依据上例,使用7个使用IE浏览器内核进的进程中A进程打开所述网页。
若所述A进程已有5个页面线程,其中1个页面线程处于空闲状态,则用所述页面线程打开所述http://hao.360.cn/网页。
若所述A进程已有5个页面线程,都不处于空闲状态,则比较已有页面线程数和A进程允许的最大线程数,A进程允许的最大线程数为7个,已有页面线程数5小于允许的最大进程数7,则新建一个页面线程打开所述http://hao.360.cn/网页。
若所述A进程已有7个页面线程,都不处于空闲状态,则比较已有页面线程数和A进程允许的最大线程数,A进程允许的最大线程数为7个,已有页面线程数7已达到允许的最大进程数7,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程(例如,进程B)打开所述http://hao.360.cn/网页。
另一种优选方案是:若所述进程中不存在空闲的页面线程,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
例如:若所述A进程已有5个页面线程,都不处于空闲状态,则不比较已有页面线程数5和A进程允许的最大线程数7,直接则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程(例如,进程B)打开所述http://hao.360.cn/网页。
如图2所示,为根据本发明实施例所述的一种进程复用的IE内核浏览器***框图,包括以下模块:
预设最大进程数模块201:用于预设IE浏览器侧的浏览器最大进程数;优选的,预设最大进程数模块201用于依据运行所述IE浏览器的本地计算设备的硬件资源状况设定IE浏览器侧的浏览器最大进程数;所述硬件资源状况包括,CPU性能、或显卡性能、或内存性能、或任何前述两者或三者的组合、或由任何前述两者或三者以预定规则得到的综合性能指数。
发起请求模块202:用于在IE浏览器侧发起对新网页的浏览请求;
判断进程数模块203:用于判断当前已有浏览器进程数已达到所述浏览器最大进程数;
查找IE进程模块204:用于查找到所述已有浏览器进程中使用IE浏览器内核进行渲染的进程;
核实进程权限模块205:用于核实所述查找到的进程的权限是否与打开所述新网页所需的权限匹配;优选的,核实进程权限模块205包括用于枚举所述查找到的进程的权限,并逐一与打开所述网页所需的权限相比较。优选的,核实进程权限模块205包括用于对以下任一或任何其中若干权限的组合进行核实:后台运行权限;访问书签权限;访问收藏夹权限;访问上下文菜单权限;访问cookie权限;访问geolocation接口权限;访问历史记录权限;访问标签页权限;无限Web存储能力权限。
打开网页模块206:用于使用权限相匹配的所述进程中的页面线程打开所述网页。
优选的,打开网页模块206用于:选择在所述进程中的空闲的页面线程打开所述网页;若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数小于所述进程最大容许线程数,则在所述进程中新建页面线程打开所述网页;若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数达到所述进程最大容许线程数,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
优选的,打开网页模块206还可用于:若所述进程中不存在空闲的页面线程,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
优选的,所述浏览器还包括:
新建进程模块207:用于如果判断当前已有浏览器进程数未达到所述浏览器最大进程数时,新建一个使用IE浏览器内核进行渲染的进程,打开所述请求的网页。
如图3,为根据本发明实施例的一种用于IE浏览器的进程复用方法中的进程及线程结构图。如图所示,主进程300包括进程310、进程320、进程330、进程340、直至进程n350,共n个进程;进程310包括线程311、线程312、线程313;进程320包括线程321、线程322、线程323。
如图4,为如图3中进程310的线程构成的IE渲染线程池310C结构图。如图所示IE渲染线程池310C包括线程311、线程312、线程313,以及后续在应用本发明方法中新建的线程314、线程315。
依据本发明方法,预设IE浏览器侧的浏览器最大进程数为n;在IE浏览器侧发起对新网页http://hao.360.cn/的浏览请求;判断当前已有浏览器进程数n已达到所述浏览器最大进程数n;查找到所述已有浏览器进程中使用IE浏览器内核进行渲染的进程为进程310、进程320;核实所述查找到的进程的310权限与打开所述新网页http://hao.360.cn/所需的权限匹配;使用权限相匹配的所述进程310中的页面线程打开所述网页的具体步骤如下:
选择在所述进程中的空闲的页面线程打开所述网页,枚举IE渲染线程池中的线程,循环渲染任务队列,选一个空闲的满足安全权限的渲染线程。
例如,如果进程310中的线程311处于空闲状态,则用线程311打开所述网页。
若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数小于所述进程最大容许线程数,则在所述进程中新建页面线程打开所述网页;
例如:如果进程310中的3个线程都不处于空闲状态,且页面线程数3小于进程310最大容许线程数5,则在进程310中新建页面线程314打开所述网页。
若所述进程中不存在空闲的页面线程,且所述进程中的页面线程数达到所述进程最大容许线程数,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页;
例如:如果进程310中的3个线程311、线程312、线程313都不处于空闲状态,并且已经新建了两个线程即线程314、线程315也都不处于空闲状态,此时页面线程数5等于进程310最大容许线程数5,则通知主进程300查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页;
另一种优选方案是:若所述进程中不存在空闲的页面线程,则通知主进程查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
例如:如果进程310中的3个线程都不处于空闲状态,不判断进程310已有线程数与进程310最大容许线程数的大小,直接通知主进程300查找其他已有进程,确定另一个权限上与打开所述网页所需权限相匹配的已有进程打开所述网页。
如图5:为根据本发明实施例所述的一种用于IE浏览器的进程复用方法的一个实施例流程图,包括以下步骤:
步骤501:浏览器启动建立主进程和页面进程(渲染进程);此步骤为一般情况下浏览器工作的状态,也是以下步骤复用页面进程之前的状态和基础;
步骤502:预设IE浏览器侧的浏览器最大进程数;一般,依据运行浏览器的计算机的硬件情况预设所述最大进程数;
步骤503:判断当前已有浏览器进程数是否已达到所述浏览器最大进程数;如果所述已有进程数已达到所述最大进程数,执行步骤504;若否,执行步骤510;
步骤504:枚举使用Trident(IE)内核的渲染进程;所谓枚举,即逐个查找,当找到一个使用Trident内核的渲染进程,执行后续步骤505;
步骤505:判断是否枚举完所有使用Trident内核的渲染进程;如果枚举完所有使用Trident内核的渲染进程,则执行步骤510;若否,则执行步骤506;
步骤506:核实该进程的权限;即核实找到的使用Trident内核的渲染进程的权限;
步骤507:核实该进程的权限是否与打开所述新网页所需的权限匹配;若不匹配,则转步骤504枚举另一个使用Trident内核的渲染进程;若匹配,则执行步骤508;
步骤508:核实该进程的线程数是否已经达到最大容许线程数;若是;则转步骤504枚举另一个使用Trident内核的渲染进程;若否,执行步骤509;
步骤509:通知找到的进程,发起新的页面浏览过程;即用经过前述步骤508查找到的符合要求的进程打开页面;
步骤510:新建一个使用Trident内核的渲染进程并发起浏览网页过程。依据前述步骤,在两种情况下执行步骤510,一,在判断当前浏览器进程数尚未达到浏览器最大进程数时,执行步骤510;二,在所有使用Trident内核的渲染进程枚举完毕,但未找到可用进程时,执行步骤510。
本发明的实施例的方案中能够解决IE浏览器要进行进程复用的进程中的安全权限管理问题,能够保证在IE浏览器中进行进程复用时将被打开的网页所需要的权限和进程的权限进行匹配后,使用权限相匹配的进程中的页面线程打开所述网页,这样保证复用进程中的权限安全性,实现依据已经存在的渲染进程的权限分配渲染进程来打开网页。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的图2设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。