一种用于浏览器的活动对象执行方法、系统及浏览器技术方案

技术编号:8532564 阅读:153 留言:0更新日期:2013-04-04 15:25
本发明专利技术公开了一种用于浏览器的活动对象执行方法、系统及浏览器。其中系统包括页面进程模块,适于在活动对象创建之前获知插件的类型;以及拦截页面进程创建活动对象的过程创建代理对象替换实际要创建的活动对象;独立进程模块,适于在独立进程中创建实际要创建的活动对象;位于页面进程模块中的代理对象、位于独立进程模块中的活动对象以及在活动对象和代理对象中分别创建通信窗口;如果根据插件的类型获知插件为第二类插件,页面进程模块还适于拦截页面进程查询预创建活动对象的安全性接口,返回表示第二类插件为安全插件的信息。本发明专利技术通过在页面进程中运行代理对象,而在独立进程中运行活动对象,使得真正的ActiveX插件与页面进程分离。

【技术实现步骤摘要】

本专利技术涉及计算机网络
,具体涉及一种用于浏览器的活动对象执行方法、系统及浏览器
技术介绍
在打开浏览器时浏览器的页面进程会创建活动对象,而后进行页面的各项操作,所述活动对象通常指浏览器的插件,例如ActiveX插件。ActiveX插件是微软公司的IE内核浏览器支持的一种增强浏览体验的扩展接口方式,代表性的插件有Flash、百度影音、快播(QVOD)等。ActiveX插件是一种可重用的软件组件,通过使用ActiveX插件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。如StockTicker插件可以用来在网页上即时地加入活动信息,动画插件可用来向网页中加入动画特性。ActiveX插件在IE浏览器的页面进程中运行时,由于ActiveX插件数量繁多,运行环境复杂,以及ActiveX插件的开放性,导致了 ActiveX插件平均质量较差,一旦ActiveX插件出现卡死或崩溃等问题,会导致整个页面退出,影响了页面操作的稳定性。反之,如果页面进程由于某种原因出现卡死或崩溃等问题,会导致页面中的ActiveX插件退出,影响了 ActiveX插件的稳定性。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的用于浏览器的活动对象执行系统、浏览器和相应的用于浏览器的活动对象执行方法。根据本专利技术的一个方面,提供了一种用于浏览器的活动对象执行方法,所述活动对象为插件对应的对象,所述方法包括在活动对象创建之前,获知插件的类型;拦截页面进程创建活动对象的过程,根据所述插件的类型,创建代理对象替换实际要创建的活动对象,所述代理对象在页面进程中运行;在页面进程激活所述代理对象时,根据所述插件的类型,在独立于页面进程的独立进程中创建所述实际要创建的活动对象,所述活动对象在独立进程中运行;在活动对象和代理对象中分别创建通信窗口 ;所述活动对象和代理对象通过所述通信窗口进行通信,实现代理对象调用活动对象和/或活动对象调用代理对象;其中,如果根据所述插件的类型获知所述插件为第二类插件,在所述拦截页面进程创建活动对象的过程的步骤之前还包括拦截页面进程查询预创建活动对象的安全性接口,返回表示所述第二类插件为安全插件的信息。根据本专利技术的另一方面,提供了一种用于浏览器的活动对象执行系统,包括页面进程模块,适于在活动对象创建之前,获知插件的类型;以及,拦截页面进程创建活动对象的过程,根据所述插件的类型,创建代理对象替换实际要创建的活动对象,所述代理对象在页面进程中运行;独立进程模块,适于在页面进程激活所述代理对象时,根据所述插件的类型,在独立于页面进程的独立进程中创建所述实际要创建的活动对象,所述活动对象在独立进程中运行;位于所述页面进程模块中的代理对象、位于所述独立进程模块中的活动对象以及在活动对象和代理对象中分别创建通信窗口,所述活动对象为插件对应的活动对象,所述活动对象和代理对象通过所述通信窗口进行通信,实现代理对象调用活动对象和/或活动对象调用代理对象;其中,如果根据所述插件的类型获知所述插件为第二类插件,所述页面进程模块还适于拦截页面进程查询预创建活动对象的安全性接口,返回表示所述第二类插件为安全插件的信息。根据本专利技术的又一方面,提供了一种浏览器,包括上述用于浏览器的活动对象执行系统。在本专利技术中,通过在页面进程中运行代理对象,而在独立进程中运行活动对象,使得真正的ActiveX插件与页面进程分离,从而使ActiveX插件出现问题时不会影响页面进程,提高了浏览器的稳定性,尤其是当ActiveX插件出现病毒等安全性问题时,也不会对页面进程产生影响,提高了浏览器的安全性;同时,页面进程出现问题不会影响ActiveX插件的正常运行,提高了 ActiveX插件的稳定性。而且本专利技术兼容于所有ActiveX插件,包括在注册表中声明其脚本安全性的插件以及没有声明其脚本安全性的插件。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图1示出了根据本专利技术一个实施例的用于浏览器的活动对象执行方法的流程图;图2示出了本专利技术中代理对象和活动对象的创建过程的示意图;图3示出了本专利技术中一种由代理对象执行活动对象的脚本的方法的流程图;图4示出了本专利技术中另一种由代理对象执行活动对象的脚本的方法的流程图;图5示出了本专利技术中由活动对象执行代理对象的脚本的方法的流程图;图6示出了根据本专利技术一个实施例的用于浏览器的活动对象执行系统的结构框图;图7示出了根据本专利技术另一个实施例的用于浏览器的活动对象执行系统的结构框图;图8示出了根据本专利技术又一个实施例的用于浏览器的活动对象执行系统的结构框图。具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例的用于浏览器的活动对象执行方法100的流程图。本方法中,活动对象为ActiveX插件对应的对象。如图1所示,方法100始于步骤S101,其中在活动对象创建之前,获知插件的类型。具体来说,在页面中有ActiveX插件的情况下,在浏览器的页面进程创建ActiveX插件之前,首先查询注册表,查看与该插件相关的注册表中有没有声明该插件的脚本的安全性。本文中将注册表中已声明插件的脚本的安全性的插件称为第一类插件,如Flash插件就属于第一类插件;将注册表中没有声明插件的脚本的安全性的插件称为第二类插件,如百度影音、QVOD等视频播放插件就属于第二类插件。因此,根据注册表中有没有声明该插件的脚本的安全性即可获知当前插件的类型,如果当前插件为第一类插件,则跳转至步骤S104 ;如果当前插件为第二类插件,则执行步骤S102。在步骤S102中,对于第二类插件,在查询注册表之后,创建预创建活动对象。在步骤S102之后,方法100进入步骤S103,其中拦截页面进程查询预创建活动对象的安全性接口(IObjectSafety接口),直接返回表示插件为安全插件的信息。对于在注册表中没有声明其脚本的安全性的插件,可以通过查询该插件的预创建活动对象的IObjectSafety来确定该插件的安全性,只有在确认插件安全的情况下才会真正的创建插件的活动对象。针对第二类插件,如果此处不进行特殊处理的话,将会显示警告或不创建对象的信息,使得这类插件无法正常运行。所以在页面进程查询预创建活动对象的IObjectSafety接口时,对于该接口进行拦截,向其返回指示了插件安全性的 IObjectSatety 接口,通过 GetlnterfaceSafetyOptions 返回 INTERFACESAFE_FOR_UNTR本文档来自技高网...

【技术保护点】
一种用于浏览器的活动对象执行方法,所述活动对象为插件对应的对象,所述方法包括:在活动对象创建之前,获知插件的类型;拦截页面进程创建活动对象的过程,根据所述插件的类型,创建代理对象替换实际要创建的活动对象,所述代理对象在页面进程中运行;在页面进程激活所述代理对象时,根据所述插件的类型,在独立于页面进程的独立进程中创建所述实际要创建的活动对象,所述活动对象在独立进程中运行;在活动对象和代理对象中分别创建通信窗口;所述活动对象和代理对象通过所述通信窗口进行通信,实现代理对象调用活动对象和/或活动对象调用代理对象;其中,如果根据所述插件的类型获知所述插件为第二类插件,在所述拦截页面进程创建活动对象的过程的步骤之前还包括:拦截页面进程查询预创建活动对象的安全性接口,返回表示所述第二类插件为安全插件的信息。

【技术特征摘要】
1.一种用于浏览器的活动对象执行方法,所述活动对象为插件对应的对象,所述方法包括 在活动对象创建之前,获知插件的类型; 拦截页面进程创建活动对象的过程,根据所述插件的类型,创建代理对象替换实际要创建的活动对象,所述代理对象在页面进程中运行; 在页面进程激活所述代理对象时,根据所述插件的类型,在独立于页面进程的独立进程中创建所述实际要创建的活动对象,所述活动对象在独立进程中运行; 在活动对象和代理对象中分别创建通信窗口; 所述活动对象和代理对象通过所述通信窗口进行通信,实现代理对象调用活动对象和/或活动对象调用代理对象; 其中,如果根据所述插件的类型获知所述插件为第二类插件,在所述拦截页面进程创建活动对象的过程的步骤之前还包括拦截页面进程查询预创建活动对象的安全性接口,返回表示所述第二类插件为安全插件的信息。2.根据权利要求1所述的方法,所述在独立于页面进程的独立进程中创建所述实际要创建的活动对象包括拦截独立进程查询IWebBrowser2接口,返回自创建的IWebBrowser2接口,从而创建所述实际要创建的活动对象。3.根据权利要求1或2所述的方法,所述活动对象和代理对象通过所述通信窗口进行通信包括活动对象和代理对象之间的脚本执行过程。4.根据权利要求3所述的方法,所述活动对象和代理对象之间的脚本执行过程包括由代理对象执行活动对象的脚本,如果根据所述插件的类型获知所述插件为第一类插件,则所述由代理对象执行活动对象的脚本的过程包括 所述活动对象通过通信窗口将脚本发送给所述代理对象; 所述代理对象查询所述页面进程中与脚本执行有关的接口,根据该接口获取脚本执行方法; 所述代理对象根据所述脚本执行方法执行所述脚本。5.根据权利要求3所述的方法,所述活动对象和代理对象之间的脚本执行过程包括由代理对象执行活动对象的脚本,如果根据所述插件的类型获知所述插件为第二类插件,则所述由代理对象执行活动对象的脚本的过程包括 所述活动对象通过通信窗口将脚本发送给所述代理对象; 所述活动对象通过调用所述代理对象的调度接口,获取所述脚本中待执行方法的调度标识; 所述活动对象拦截独立进程中执行所述脚本中待执行方法的指令,将所述指令发送给所述代理对象; 所述代理对象通过执行所述指令,执行所述脚本中待执行的方法,而后将执行结果返回给所述活动对象。6.根据权利要求5所述的方法,所述活动对象通过调用所述代理对象的调度接口,获取所述脚本中待执行方法的调度标识的步骤包括 所述活动对象通过调用所述代理对象的调度接口,让所述代理对象执行获取所述脚本中待执行方法的调度标识的方法,而后所述代理对象通过通信窗口将所述调度标识返回给所述活动对象。7.根据权利要求3所述的方法,所述活动对象和代理对象之间的脚本执行过程包括由活动对象执行代理对象的脚本,所述由活动对象执行代理对象的脚本的过程包括 所述代理对象通过通信窗口将脚本发送给所述活动对象; 所述代理对象通过调用所述活动对象的调度接口,获取所述脚本中待执行方法的调度标识; 所述代理对象拦截页面进程中执行所述脚本中待执行方法的指令,将所述指令发送给所述活动对象; 所述活动对象通过执行所述指令,执行所述脚本中待执行方法,而后将执行结果返回给代理对象。8.根据权利要求7所述的方法,所述代理对象通过调用所述活动对象的调度接口,获取所述脚本中待执行方法的调度标识的步骤包括 所述代理对象通过调用所述活动对象的调度接口,让所述活动对象执行获取所述脚本中待执行方法的调度标识的方法,而后所述活动对象通过通信窗口将所述调度标识返回给所述代理对象。9.根据权利要求1至8任一项所述的方法,运行于所述页面进程中的代理对象为多个,运行于所述独立进程中的活动对象为多个,所述代理对象和活动对象一一对应,所述代理对象的通信窗口和与所述代理对象对应的活动对象的通信窗口具有对应的属性,通过该两个通信窗口实现活动对象和代理对象的通信。10.根据权利要求4所述的方法,所述第一类插件为Flash插件。1...

【专利技术属性】
技术研发人员:李鸣李锦伟贺跃松陈志任寰
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

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

1