对网页中插件进行隔离的浏览器及网页插件的隔离方法技术

技术编号:8562851 阅读:222 留言:0更新日期:2013-04-11 04:28
本发明专利技术涉及互联网技术领域,公开了一种对网页中插件进行隔离的浏览器,包括:插件类型获取器,适于获取页面加载过程中待加载的页面中插件的类型;插件进程创建器,适于为相同类型的页面中插件创建一独立于浏览器进程的插件进程;插件线程创建器,适于在该独立的插件进程中为各个相同类型的页面中插件创建一线程以运行所述页面中插件。还公开了一种网页插件的隔离方法。本发明专利技术通过使不同类型的网页插件分别运行在与浏览器进程独立的不同的进程中,由此解决了由于插件崩溃导致的选项卡(或标签页)崩溃或甚至整个浏览器崩溃的问题,取得了使浏览器运行更稳定的有益效果。

【技术实现步骤摘要】

本专利技术涉及互联网
,具体涉及一种。
技术介绍
浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。网页浏览器主要通过HTTP协议与网页服务器交互并获取网页,这些网页由URL指定,文件格式通常为HTML格式,并由多媒体文件格式MME在HTTP协议中指明。一个网页中可以包括多个文档,每个文档都是分别从服务器获取的。大部分的浏览器本身都支持除了 HTML之外的其它广泛的格式,例如JPEG、PNG、GIF等图像格式,并且能够扩展支持众多的插件(plug-1ns)。另外,许多浏览器还支持其他的URL类型及其相应的协议,如FTP、Gopher、HTTPS (HTTP协议的加密版本)。HTTP内容类型和URL协议规范允许网页设计者在网页中嵌入图像、动画、视频、声音、流媒体等。个人电脑上常见的网页浏览器包括微软的 Internet Explorer、Mozilla 的 Firefox、Apple 的 Safari, Opera、GoogleChrome> GreenBrowser浏览器、360安全浏览器、搜狗高速浏览器、天天浏览器、腾讯TT、傲游浏览器、百度浏览器、腾讯QQ浏览器等,浏览器是最经常使用到的客户端程序。ActiveX在广义上是指微软公司的整个COM架构,但是现在通常用来称呼基于标准COM接口来实现对象连接与嵌入的ActiveX控件(在浏览器中通常作为插件被加载)。后者是指从VBX发展而来的,面向微软的Internet Explorer技术而设计的以OCX为扩展名的OLE控件。通过定义容器和组件之间的接口规范,如果编写了一个遵循规范的控件,那么可以很方便地在多种容器中使用而不用修改控件的代码。同样,通过实现标准接口调用,一个遵循规范的容器可以很容易地嵌入任何遵循规范的控件。由于OLE在ActiveX控件中的应用的普及,现在OLE技术中只有少数独立于ActiveX技术,例如复合文档。一些浏览器,例如Internet Explorer,网景浏览器等等都不同程度上支援ActiveX控件。这允许网页通过脚本和控件交互产生更加丰富的效果,但同时也带来一些安全性的问题,如控件的崩溃通常会导致浏览器程序崩溃。为了应对浏览器经常出现崩溃的现象,现在很多浏览器厂商都采用了多进程标签浏览的概念,其中包括IE8、Chrome、FirefOX等浏览器,而众多基于WebKit的浏览器在苹果发布WebKit2内核以后已经采用多进程标签浏览这个功能。因为在浏览器中添加多进程浏览功能之后,即使是浏览器其中的一个进程出现了崩溃现象,也不会牵连到其他浏览器窗口,从而有效的避免了整个浏览器的假死。在最新一代浏览器IE8中,微软添加了被称为“Loosely-Coupled IE(LCIE)”的架构(http: //www.1efans. net/liulana1-duoincheng-duib1-1ance)。通过Loosely-CoupledIE (LCIE)架构,IE8将主要的浏览进程与渲染进程相隔离。主要的进程处理浏览器、用户界面和框架(窗口),用于存储选项卡(即标签页)。IE8中的某些选项卡是运行在相同的进程中的,不过不同安全级别的选项卡是相互分开的,即运行在不同的进程中。ActiveX控件是通过选项卡进程进行处理的。在上述的IE浏览器的多进程架构中,虽然选项卡是被分类在不同的进程中从而形成了多进程的架构的,而且在各个进程中ActiveX控件是通过选项卡进程进行处理的。但是在同一个进程中的选项卡中的不同类型的ActiveX插件的都是运行在一个进程中,由于各种不同的ActiveX插件出现崩溃的概率是各自不同的,而且各个插件的情况各不相同,仍旧会导致其所在进程的崩溃,即相应的选项卡会崩溃。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的。依据本专利技术的一个方面,提供了一种对网页中插件进行隔离的浏览器,包括插件类型获取器,适于获取页面加载过程中待加载的页面中插件的类型;插件进程创建器,适于为相同类型的页面中插件创建一独立于浏览器进程的插件进程;插件线程创建器,适于在该独立的插件进程中为各个相同类型的页面中插件创建一线程以运行所述页面中插件。可选地,所述插件类型获取器包括类型I D解析器,适于解析待加载页面中对应的网页元素,从中解析出标识所述待加载的页面中插件的唯一 ID,从而获取待加载的页面中插件的类型。可选地,所述插件类型获取器进一步包括类型ID拦截器,适于拦截CoGetClassObject函数,获取被调用的所述待加载的页面中插件的唯一 ID。可选地,所述插件进程创建器进一步包括进程查询器,适于查询所述页面中插件的类型的插件进程是否已创建;进程创建器,适于未创建插件进程,或已创建的插件进程中线程数达到线程阈值或当前内存占用达到预定配额时为该类型的所述页面中插件创建新插件进程,并更新所述页面中插件的类型的进程信息列表。可选地,所述进程创建器进一步适于根据待加载页面的类型设置该页面中不同类型插件的进程优先级,按所述进程优先级依次创建相应页面中插件的插件进程。可选地,所述进程创建器进一步包括新进程生成器,适于生成一个具有唯一进程ID的新插件进程,并为其分配所述预定配额的内存空间;新进程配置器,适于设置所述新插件进程所属的页面中插件的类型、线程阈值、线程信息列表。可选地,所述浏览器还包括进程判断器,适于判断与所述浏览器进程独立的页面中插件的类型的进程数是否到达进程阈值,若未达到,则为该类型的所述页面中插件创建新插件进程。可选地,所述浏览器还包括进程通信器,适于所述页面中插件的类型的插件进程与浏览器进程之间通过互斥锁实现进程通信的互斥。可选地,所述浏览器还包括线程释放器,适于当所述页面中插件所在的浏览器标签页关闭时,则关闭所述页面中插件的线程,并释放所述线程占用的内存空间。根据本专利技术的另一方面,提供了一种网页插件的隔离方法,包括步骤获取页面加载过程中待加载的页面中插件的类型;为相同类型的页面中插件创建一独立于浏览器进程的插件进程;在该独立的插件进程中为各个相同类型的页面中插件创建一线程以运行所述页面中插件。可选地,所述获取页面加载过程中待加载的页面中插件的类型的步骤包括解析待加载页面中对应的网页元素,从中解析出标识所述待加载的页面中插件的唯一 ID,从而获取待加载的页面中插件的类型。可选地,进一步包括拦截CoGetClassObject函数,获取被调用的所述待加载的页面中插件的唯一 ID。可选地,所述为相同类型的页面中插件创建一独立于浏览器进程的插件进程包括查询所述页面中插件的类型的插件进程是否已创建;若未创建,或已创建的插件进程中线程数达到线程阈值或当前内存占用达到预定配额,则为该类型的所述页面中插件创建新插件进程,并更新所述页面中插件的类型的进程信息列表。可选地,所述为该类型的所述页面中插件创建新插件进程的步骤包括根据待加载页面的类型设置该页面中不同类型插件的进程优先级;按所述进程优先级依次创建相应页面中插件的插件进程。可选地,所述为该类型的所述页面中插件创建新插件进程的步骤进一步包括生成一个具有唯一进程ID的新插件进程,并为其分配所述本文档来自技高网
...

【技术保护点】
一种对网页中插件进行隔离的浏览器,包括:插件类型获取器,适于获取页面加载过程中待加载的页面中插件的类型;插件进程创建器,适于为相同类型的页面中插件创建一独立于浏览器进程的插件进程;插件线程创建器,适于在该独立的插件进程中为各个相同类型的页面中插件创建一线程以运行所述页面中插件。

【技术特征摘要】
1.一种对网页中插件进行隔离的浏览器,包括 插件类型获取器,适于获取页面加载过程中待加载的页面中插件的类型; 插件进程创建器,适于为相同类型的页面中插件创建一独立于浏览器进程的插件进程; 插件线程创建器,适于在该独立的插件进程中为各个相同类型的页面中插件创建一线程以运行所述页面中插件。2.如权利要求1所述的对网页中插件进行隔离的浏览器,其特征在于,所述插件类型获取器包括 类型ID解析器,适于解析待加载页面中对应的网页元素,从中解析出标识所述待加载的页面中插件的唯一 ID,从而获取待加载的页面中插件的类型。3.如权利要求2所述的对网页中插件进行隔离的浏览器,其特征在于,所述插件类型获取器进一步包括 类型ID拦截器,适于拦截CoGetClassOb ject函数,获取被调用的所述待加载的页面中插件的唯一 ID。4.如权利要求1所述的对网页中插件进行隔离的浏览器,其特征在于,所述插件进程创建器进一步包括 进程查询器,适于查询所述页面中插件的类型的插件进程是否已创建; 进程创建器,适于未创建插件进程,或已创建的插件进程中线程数达到线程阈值或当前内存占用达到预定配额时为该类型的所述页面中插件创建新插件进程,并更新所述页面中插件的类型的进程信息列表。5.如权利要求4所述的对网页中插件进行隔离的浏览器,其特征在于,所述进程创建器进一步适于根据待加载页面的类型设置该页面中不同类型插件的进程优先级,按所述进程优先级依次创建相应页面中插件的插件进程。6.如权利要求4所述的对网页中插件进行隔离的浏览器,其特征在于,所述进程创建器进一步包括 新进程生成器,适于生成一个具有唯一进程ID的新插件进程,并为其分配所述预定配额的内存空间; 新进程配置器,适于设置所述新插件进程所属的页面中插件的类型、线程阈值、线程信息列表。7.如权利要求4所述的对网页中插件进行隔离的浏览器,其特征在于,所述浏览器还包括 进程判断器,适于判断与所述浏览器进程独立的页面中插件的类型的进程数是否到达进程阈值,若未达到,则为该类型的所述页面中插件创建新插件进程。8.如权利要求广7中任一项所述的对网页中插件进行隔离的浏览器,其特征在于,所述浏览器还包括 进程通信器,适于所述页面中插件的类型的插件进程与浏览器进程之间通过互斥锁实现进程通信的互斥。9.如权利要求Γ7中任一项所述的对网页中插件进行隔离的浏览器,其特征在于,所述浏览器还包括线程释放器,适于当所述页面中插件所在的浏览器标签页关闭时...

【专利技术属性】
技术研发人员:杨晓兵任寰
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1