浏览器控件恢复方法及系统的制作方法

文档序号:6385403阅读:165来源:国知局
专利名称:浏览器控件恢复方法及系统的制作方法
技术领域
本发明涉及网络通信技术领域,特别涉及一种浏览器控件恢复方法及系统。
背景技术
ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。ActiveX控件技术是国际上通用的基于Windows平台的软件技术,除了在线杀毒控件之外,许多软件均采用此种方式开发,例如Flash动画播放控件、Microsoft MediaPlayer控件、CNNIC通用网址控件、网络实名控件等。ActiveX控件需要嵌入到网页中,控件和页面会在同一个进程下运行。因此,当ActiveX控件出现崩溃后,会导致整个网页退出,正在书写的邮件博客等工作会丢失,影响了页面操作的稳定性。同时,现有的崩溃恢复机制是强制重新启动一个页面进程,这种恢复机制往往需要花费较多的时间,影响用户的使用效率。

发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种浏览器控件恢复方法及系统。依据本发明的一个方面,提供了一种浏览器控件恢复方法,其包括步骤截获浏览器的页面进程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面进程中运行;在独立于浏览器页面进程的独立进程中,创建所述实际要创建的活动对象,所述活动对象在独立进程中运行;代理对象通过与独立进程和/或其活动对象通信判断活动对象是否中断,如果是,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象;代理对象定期询问活动对象的运行信息,并保存所述运行信息;其中,所述代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象,进一步为 代理对象向独立进程发送所述激活信息和所述运行信息;根据所述激活信息,在独立进程中重新创建活动对象;根据所述运行信息,获取原活动对象的中断位置,令新创建的活动对象在所述中断位置处继续运行。可选地,所述代理对象通过与独立进程和/或其活动对象通信判断活动对象是否中断,如果是,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象的步骤,具体包括代理对象通过与独立进程和/或其活动对象通信判断活动对象是否卡死和/或独立进程是否崩溃;如果活动对象卡死,则代理对象停止与所述活动对象的通信并向独立进程发送激活信息,在独立进程中重新创建活动对象,如果独立进程崩溃,则创建新的独立进程,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象。可选地,所述代理对象通过与独立进程和/或其活动对象通信判断活动对象是否卡死和/或独立进程是否崩溃的步骤,具体包括代理对象定期询问独立进程和/或其活动对象的运行状态信息,并根据所述运行状态信息判断活动对象是否卡死和/或独立进程是否崩溃。可选地,所述代理对象定期询问独立进程和/或其活动对象的运行状态信息,并根据所述运行状态信息判断活动对象是否卡死和/或独立进程是否崩溃的步骤中,如果根据所述运行状态信息发现以下至少一项活动对象所在线程的消息循环不活动,活动对象的窗口挂起,活动对象线程的一直忙,则判定活动对象卡死;如果根据所述运行状态信息发现以下至少一项独立进程中的主窗口不存在,活动对象中的窗口不存在,则判定独立进程崩溃。可选地,所述代理对象通过与独立进程和/或其活动对象通信判断活动对象是否中断,如果是,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象,进一步包括所述代理对象通过与独立进程通信判断活动对象是否中断,如果是,提示用户活动对象中断;接收用户的重激活指令;代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象。可选地,所述在独立于浏览器页面进程的独立进程中,创建所述实际要创建的活动对象,所述活动对象在独立进程中运行,之后还包括步骤代理对象通过与独立进程通信,调用活动对象,和/或,代理对象通过与独立进程通信,被活动对象调用。可选地,页面进程为每个页面创建一个页面线程,截获页面线程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面线程中运行;独立进程为每个页面创建一个独立于页面线程的对象线程,在所述对象线程中创建所述实际要创建的活动对象,所述活动对象在对象线程中运行;代理对象通过与对象线程通信判断活动对象是否中断,如果是,代理对象向对象线程发送激活信息,在对象线程中重新创建活动对象。可选地,所述方法还包括当活动对象出现问题时,对运行所述活动对象的对象线程执行挂起、降低权限或终止操作。可选地,所述方法还包括独立进程创建活动对象时,代理对象将页面进程或页面线程的通信句柄和代理对象标识作为通信标识,传送给独立进程或对象线程;独立进程创建活动对象后,活动对象将独立进程或对象线程的通信句柄和活动对象标识作为通信标识,传送给代理对象。可选地,所述独立进程为每个页面创建一个独立于页面线程的对象线程,包括
独立进程创建主线程,主线程为每个页面创建一个独立于页面线程的对象线程,所述主线程用于维护全局配置。可选地,所述活动对象包括ActiveX对象。根据本发明的另一方面,提供了一种浏览器控件恢复系统,其包括页面进程模块,适于截获浏览器的页面进程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面进程中运行;独立进程模块,适于在独立于浏览器页面进程的独立进程中,创建所述实际要创建的活动对象,所述活动对象在独立进程中运行;恢复模块,适于令代理对象通过与独立进程和/或其活动对象通信判断活动对象是否中断,如果是,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象;所述恢复模块还适于令代理对象定期询问活动对象的运行信息,并保存所述运行/[目息;以及,还适于在活动对象中断时,令代理对象向独立进程发送所述激活信息和所述运行信息,根据所述激活信息在独立进程中重新创建活动对象,并且,根据所述运行信息,获取原活动对象的中断位置,令新创建的活动对象在所述中断位置处继续运行。可选地,所述恢复模块包括判断子模块,适于令代理对象通过与独立进程和/或其活动对象通信判断活动对象是否卡死和/或独立进程是否崩溃;卡死子模块,适于在活动对象卡死时,令代理对象停止与所述活动对象的通信并向独立进程发送激活信息,在独立进程中重新创建活动对象;崩溃子模块,适于在独立进程崩溃时,创建新的独立进程,令代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象。可选地,所述判断子模块,适于令代理对象定期询问独立进程和/或其活动对象的运行状态信息,并根据所述运行状态信息判断活动对象是否卡死和/或独立进程是否崩溃。可选地,所述判断子模块中,如果根据所述运行状态信息发现以下至少一项活动对象所在线程的消息循环不活动,活动对象的窗口挂起,活动对象线程的一直忙,则判定活动对象卡死;如果根据所述运行状态信息发现以下至少一项独立进程中的主窗口不存在,活动对象中的窗口不存在,则判定独立进程崩溃。可选地,所述系统还包括交互模块,适于在活动对象中断的情况下,提示用户活动对象中断,以及接收用户的重激活指令,并将所述重激活指令发送给所述恢复模块。可选地,所述系统还包括调用模块,适于令代理对象通过与独立进程通信,调用活动对象,和/或,代理对象通过与独立进程通信,被活动对象调用。可选地,所述页面进程模块,还适于令页面进程为每个页面创建一个页面线程,截获页面线程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面线程中运行;
所述独立进程模块,还适于令独立进程为每个页面创建一个独立于页面线程的对象线程,在所述对象线程中创建所述实际要创建的活动对象,所述活动对象在对象线程中运行;所述恢复模块,还适于令代理对象通过与对象线程通信判断活动对象是否中断,如果是,代理对象向对象线程发送激活信息,在对象线程中重新创建活动对象。可选地,所述系统还包括错误处理模块,适于当活动对象出现问题时,对运行所述活动对象的对象线程执行挂起、降低权限或终止操作。可选地,所述系统还包括代理对象通信标识传送模块,适于令独立进程模块创建活动对象时,代理对象将页面进程或页面线程的通信句柄和代理对象标识作为通信标识,传送给独立进程或对象线程;活动对象通信标识传送模块,适于令独立进程模块创建活动对象后,活动对象将独立进程或对象线程的通信句柄和活动对象标识作为通信标识,传送给代理对象。可选地,所述页面进程模块,还适于令独立进程创建主线程,主线程为每个页面创建一个对象线程,所述主线程用于维护全局配置。本发明所述浏览器控件恢复方法及系统,在页面进程中创建代理对象,在独立进程中创建活动对象,借助代理对象与独立进程和/或其活动对象之间的通信,及时发现活动对象的中断,并在发现活动对象中断后重新创建活动对象,从而缩短了活动对象中断后的恢复时间,提高了用户的使用效率。另外,通过保存活动对象的运行信息,可以令重新创建的活动对象在原活动对象的中断位置处开始运行,进一步提高了用户的使用效率。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图1示出了根据本发明一个实施例的所述浏览器控件恢复方法流程图;图2示出了根据本发明一个实施例的所述浏览器控件恢复方法应用于多页面时的流程图;图3示出了根据本发明一个实施例的浏览器控件恢复系统的模块结构示意图;图4示出了根据本发明一个实施例的恢复模块的内部模块结构示意图;图5示出了根据本发明另一个实施例的浏览器控件恢复系统的模块结构示意图;图6示出了根据本发明再一个实施例的浏览器控件恢复系统的模块结构示意图。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本发明一个实施例的所述浏览器控件恢复方法流程图,如图1所示,所述方法包括步骤SlOO :截获浏览器的页面进程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面进程中运行。其中,所述的活动对象就是真实的浏览器控件,例如真实的ActiveX对象,SPActiveX控件;所述的代理对象可以是模拟的浏览器控件,例如模拟的ActiveX控件,所述代理对象在页面进程中运行。具体举例说明本发明如下在网页中有ActiveX控件的情况下,在浏览器创建ActiveX控件时,会根据控件CLSID或者ProgID查询注册表,其中可以通过CLSIDFromProgID获取CLSID,由此查看系统是否已安装相应控件,若安装则会继续创建过程。浏览器通过调用CoGetClassObject得到相应控件的IUnknown指针,然后通过标准接口进行相互操作。CoGetClassObject执行过程为,通过CLSID去注册表查询ActiveX路径,获得ActiveX路径后,调用LoadLibrary加载ActiveX控件,调用其导出函数DllGetClassObject获得类厂指针(IClassFactory),然后调用IClassFactory的CreateInstance方法得到ActiveX控件对应的IUnknown指针。在加载ActiveX控件时,拦截CoGetClassObject,创建一个ActiveX控件代理对象,该ActiveX控件代理对象包括一系列接口,例如IUnknown指针将会调用的很多标准接口,例如 IOleOb ject、IViewOb ject 等。然后在调用 IClassFactory 的 CreateInstance 时,将所创建的ActiveX控件代理对象返回给ActiveX控件的IUnknown指针。S200 :在独立于浏览器页面进程的独立进程中,创建所述实际要创建的活动对象,所述活动对象在独立进程中运行。仍具体举例说明本发明如下在页面激活所述ActiveX控件时,提取出该控件的属性、URL、大小等相关信息,然后创建一个独立进程。具体来说,创建一个文件(document),在其中插入一个对象,该独立进程调用CoGetClassObject,拦截该CoGetClassObject,再创建另一个ActiveX控件活动对象,该ActiveX控件活动对象包括一系列接口,例如IUnknown指针将会调用的很多标准接口,例如IOleObject、IViewObject等。然后在调用IClassFactory的CreateInstance时,将所创建的该另一个ActiveX控件活动对象返回给独立进程的ActiveX控件的IUnknown指针。S300 :代理对象通过与独立进程和/或其活动对象通信判断活动对象是否中断,如果是,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象,结束流程;否则,直接结束流程。具体举例说明本发明如下在所创建的两个ActiveX控件对象中分别创建一个与该控件对象关联的窗口以用来进行通信。具体来说两个控件对象可以针对大小、焦点、刷新、脚本以及其他信息进行交互。根据本发明的方法可以拦截以上两个进程中的所有请求,通过预先创建的两个ActiveX控件对象来实现这两个进程之间的信息交互。由此ActiveX控件的具体计算过程在独立进程中进行,因而不会影响原网页的进程。
所述步骤S300进一步包括S310 :代理对象通过与独立进程和/或其活动对象通信判断活动对象是否卡死和/或独立进程是否崩溃。具体地,代理对象定期询问独立进程和/或其活动对象的运行状态信息,并根据所述运行状态信息判断活动对象是否卡死和/或独立进程是否崩溃。如果根据所述运行状态信息发现以下至少一项活动对象所在线程的消息循环不活动,活动对象的窗口挂起,活动对象线程的一直忙,则判定活动对象卡死;如果根据所述运行状态信息发现以下至少一项独立进程中的主窗口不存在,活动对象中的窗口不存在,则判定独立进程崩溃。代理对象定期询问独立进程和/或其活动对象的运行状态信息,具体来说可以用很多方式实现这一监控动作,举例来说,可以在开启的独立进程中为每一个活动对象绑定一个消息窗口 ;令页面进程的代理对象定期地查询该消息窗口,以监控该活动对象是否正常运行。S320 :如果活动对象卡死,则代理对象停止与所述活动对象的通信并向独立进程发送激活信息,在独立进程中重新创建活动对象。S330:如果独立进程崩溃,则创建新的独立进程,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象。通过上述方法步骤的执行,能够及时识别活动对象的中断,并在活动对象中断后对其及时重新激活,缩短响应时间。另外,所述步骤S200之后还可以包括步骤Pl :代理对象定期询问活动对象的运行信息,并保存所述运行信息。相应地,所述步骤S300中,所述代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象,进一步为代理对象向独立进程发送所述激活信息和所述运行信息;根据所述激活信息,在独立进程中重新创建活动对象;根据所述运行信息,获取原活动对象的中断位置,令新创建的活动对象在所述中断位置处继续运行。其中,所述激活信息主要是活动对象的属性、URL、位置、大小等信息;所述运行信息是活动对象的运行进度信息。通过采用所述步骤P1,以及对所述步骤S300进行相应的改变,可以保证活动对象能够在中断位置处开始重新运行,相比现有技术中完全的重新启动,显然进一步提高了响应效率。所述步骤S300中还可以由用户选择是否重新激活已经中断的活动对象以提高与用户的交互性能,具体地,其可以进一步包括所述代理对象通过与独立进程通信判断活动对象是否中断,如果是,提示用户活动对象中断;接收用户的重激活指令;代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象。所述步骤S300之后还可以包括步骤S400 :代理对象通过与独立进程通信,调用活动对象,和/或,代理对象通过与独立进程通信,被活动对象调用。
通常一个浏览器往往可以打开很多个页面来浏览不同的网页,参见图2,所述方法还可以应用于多页面的情况,此时可以多线程方式对应多个页面运行多个活动对象,具体地,所述方法步骤如下:S100’:页面进程为每个页面创建一个页面线程,截获页面线程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面线程中运行.
S200’:独立进程为每个页面创建一个独立于页面线程的对象线程,在所述对象线程中创建所述实际要创建的活动对象,所述活动对象在对象线程中运行。该步骤中,独立进程创建主线程,主线程为每个页面创建一个独立于页面线程的对象线程,所述主线程用于维护全局配置。并且,该步骤中,独立进程创建活动对象时,代理对象将页面进程或页面线程的通信句柄和代理对象标识作为通信标识,传送给独立进程或对象线程;独立进程创建活动对象后,活动对象将独立进程或对象线程的通信句柄和活动对象标识作为通信标识,传送给代理对象。S300’:代理对象通过与对象线程通信判断活动对象是否中断,如果是,代理对象向对象线程发送激活信息,在对象线程中重新创建活动对象。所述活动对象包括ActiveX对象,以ActiveX对象为例,则ActiveX对象在对象线程中运行,当ActiveX对象出现问题时,例如ActiveX对象陷入死循环时,可以对运行所述ActiveX对象的对象线程执行挂起操作,使得所述对象线程暂时不能运行;或者对运行所述ActiveX对象的对象线程执行降低权限操作;或者对运行所述ActiveX对象的对象线程执行终止操作,终止所述的对象线程。

在本申请所述的方法中,例如,针对IE浏览器中ActiveX控件的执行过程中,可以创建模拟的ActiveX类厂,取代真实的ActiveX类厂,在页面进程或页面线程模拟标准方
式,创建代理对象,例如,参考如下的模型:
权利要求
1.一种浏览器控件恢复方法,其包括: 截获浏览器的页面进程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面进程中运行; 在独立于浏览器页面进程的独立进程中,创建所述实际要创建的活动对象,所述活动对象在独立进程中运行; 代理对象通过与独立进程和/或其活动对象通信判断活动对象是否中断,如果是,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象; 代理对象定期询问活动对象的运行信息,并保存所述运行信息; 所述代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象,进一步为: 代理对象向独立进程发送所述激活信息和所述运行信息; 根据所述激活信息,在独立进程中重新创建活动对象; 根据所述运行信息,获取原活动对象的中断位置,令新创建的活动对象在所述中断位置处继续运行。
2.如权利要求1所述的方法,其特征在于,所述代理对象通过与独立进程和/或其活动对象通信判断活动对象是否中断,如果是,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象的步骤,具体包括: 代理对象通过与独立进程和/或其活动对象通信判断活动对象是否卡死和/或独立进程是否崩溃; 如果活动对象卡死,则代理对象停止与所述活动对象的通信并向独立进程发送激活信息,在独立进程中重新创建活动对象, 如果独立进程崩溃,则创建新的独立进程,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象。
3.如权利要求2所述的方法,其特征在于,所述代理对象通过与独立进程和/或其活动对象通信判断活动对象是否卡死和/或独立进程是否崩溃的步骤,具体包括: 代理对象定期询问独立进程和/或其活动对象的运行状态信息,并根据所述运行状态信息判断活动对象是否卡死和/或独立进程是否崩溃。
4.如权利要求3所述的方法,其特征在于,所述代理对象定期询问独立进程和/或其活动对象的运行状态信息,并根据所述运行状态信息判断活动对象是否卡死和/或独立进程是否崩溃的步骤中, 如果根据所述运行状态信息发现以下至少一项:活动对象所在线程的消息循环不活动,活动对象的窗口挂起,活动对象线程的一直忙,则判定活动对象卡死; 如果根据所述运行状态信息发现以下至少一项:独立进程中的主窗口不存在,活动对象中的窗口不存在,则判定独立进程崩溃。
5.如权利要求1所述的方法,其特征在于,所述代理对象通过与独立进程和/或其活动对象通信判断活动对象是否中断,如果是,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象,进一步包括: 所述代理对象通过与独立进程通信判断活动对象是否中断,如果是,提示用户活动对象中断;接收用户的重激活指令; 代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象。
6.如权利要求1所述的方法,其特征在于,所述在独立于浏览器页面进程的独立进程中,创建所述实际要创建的活动对象,所述活动对象在独立进程中运行,之后还包括步骤: 代理对象通过与独立进程通信,调用活动对象,和/或, 代理对象通过与独立进程通信,被活动对象调用。
7.如权利要求1所述的方法,其特征在于, 页面进程为每个 页面创建一个页面线程,截获页面线程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面线程中运行; 独立进程为每个页面创建一个独立于页面线程的对象线程,在所述对象线程中创建所述实际要创建的活动对象,所述活动对象在对象线程中运行; 代理对象通过与对象线程通信判断活动对象是否中断,如果是,代理对象向对象线程发送激活信息,在对象线程中重新创建活动对象。
8.根据权利要求7所述的方法,其特征在于,还包括: 当活动对象出现问题时,对运行所述活动对象的对象线程执行挂起、降低权限或终止操作。
9.根据权利要求7所述的方法,其特征在于,还包括: 独立进程创建活动对象时,代理对象将页面进程或页面线程的通信句柄和代理对象标识作为通信标识,传送给独立进程或对象线程; 独立进程创建活动对象后,活动对象将独立进程或对象线程的通信句柄和活动对象标识作为通信标识,传送给代理对象。
10.根据权利要求7所述的方法,其特征在于,所述独立进程为每个页面创建一个独立于页面线程的对象线程,包括: 独立进程创建主线程,主线程为每个页面创建一个独立于页面线程的对象线程,所述主线程用于维护全局配置。
11.如权利要求1所述的方法,其特征在于,所述活动对象包括ActiveX对象。
12.一种浏览器控件恢复系统,其包括: 页面进程模块,适于截获浏览器的页面进程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面进程中运行; 独立进程模块,适于在独立于浏览器页面进程的独立进程中,创建所述实际要创建的活动对象,所述活动对象在独立进程中运行; 恢复模块,适于令代理对象通过与独立进程和/或其活动对象通信判断活动对象是否中断,如果是,代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象; 所述恢复模块还适于令代理对象定期询问活动对象的运行信息,并保存所述运行信息;以及, 还适于在活动对象中断时,令代理对象向独立进程发送所述激活信息和所述运行信息,根据所述激活信息在独立进程中重新创建活动对象,并且,根据所述运行信息,获取原活动对象的中断位置,令新创建的活动对象在所述中断位置处继续运行。
13.如权利要求12所述的系统,其特征在于,所述恢复模块包括:判断子模块,适于令代理对象通过与独立进程和/或其活动对象通信判断活动对象是否卡死和/或独立进程是否崩溃; 卡死子模块,适于在活动对象卡死时,令代理对象停止与所述活动对象的通信并向独立进程发送激活信息,在独立进程中重新创建活动对象; 崩溃子模块,适于在独立进程崩溃时,创建新的独立进程,令代理对象向独立进程发送激活信息,在独立进程中重新创建活动对象。
14.如权利要求13所述的系统,其特征在于,所述判断子模块,适于令代理对象定期询问独立进程和/或其活动对象的运行状态信息,并根据所述运行状态信息判断活动对象是否卡死和/或独立进程是否崩溃。
15.如权利要求14所述的系统,其特征在于,所述判断子模块中, 如果根据所述运行状态信息发现以下至少一项:活动对象所在线程的消息循环不活动,活动对象的窗口挂起,活动对象线程的一直忙,则判定活动对象卡死; 如果根据所述运行状态信息发现以下至少一项:独立进程中的主窗口不存在,活动对象中的窗口不存在,则判定独立进程崩溃。
16.如权利要求12所述的系统,其特征在于,所述系统还包括: 交互模块,适于在活动对象中断的情况下,提示用户活动对象中断,以及接收用户的重激活指令,并将所述重激活指令发送给所述恢复模块。
17.如权利要求12所述的系统,其特征在于,所述系统还包括: 调用模块,适于令代理对象通过与独立进程通信,调用活动对象,和/或,代理对象通过与独立进程通信,被活动对象调用。
18.如权利要求12所述的系统,其特征在于, 所述页面进程模块,还适于令页面进程为每个页面创建一个页面线程,截获页面线程创建活动对象的过程,创建代理对象替换实际要创建的活动对象,所述代理对象在页面线程中运行; 所述独立进程模块,还适于令独立进程为每个页面创建一个独立于页面线程的对象线程,在所述对象线程中创建所述实际要创建的活动对象,所述活动对象在对象线程中运行; 所述恢复模块,还适于令代理对象通过与对象线程通信判断活动对象是否中断,如果是,代理对象向对象线程发送激活信息,在对象线程中重新创建活动对象。
19.如权利要求18所述的系统,其特征在于,所述系统还包括: 错误处理模块,适于当活动对象出现问题时,对运行所述活动对象的对象线程执行挂起、降低权限或终止操作。
20.如权利要求18所述的系统,其特征在于,所述系统还包括: 代理对象通信标识传送模块,适于令独立进程模块创建活动对象时,代理对象将页面进程或页面线程的通信句柄和代理对象标识作为通信标识,传送给独立进程或对象线程; 活动对象通信标识传送模块,适于令独立进程模块创建活动对象后,活动对象将独立进程或对象线程的通信句柄和活动对象标识作为通信标识,传送给代理对象。
全文摘要
本发明公开了一种浏览器控件恢复方法及系统,涉及网络通信领域。所述系统包括页面进程模块;独立进程模块;恢复模块;所述恢复模块还适于令代理对象定期询问活动对象的运行信息,并保存所述运行信息;以及,还适于在活动对象中断时,令代理对象向独立进程发送所述激活信息和所述运行信息,根据所述激活信息在独立进程中重新创建活动对象,并且,根据所述运行信息,获取原活动对象的中断位置,令新创建的活动对象在所述中断位置处继续运行。本发明能够及时发现活动对象的中断,并在发现活动对象中断后重新创建活动对象,从而缩短了活动对象中断后的恢复时间,提高了用户的使用效率。
文档编号G06F11/07GK103077092SQ201210572060
公开日2013年5月1日 申请日期2012年12月25日 优先权日2012年12月25日
发明者李锦伟, 贺跃松, 陈志 , 付俣, 任寰 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1