发明内容
本申请所要解决的技术问题是提供一种浏览器输入控件的进程控制方法,用以在浏览器中运行的输入法插件进程崩溃卡死时,不影响浏览器主进程,用户能够继续的浏览网页,给用户良好的上网体验。并且,及时给用户建议更换质量稳定的输入法。
相应的,本申请还提供了一种浏览器输入控件的进程控制装置,用以保障上述方法在实际中的应用。
为了解决上述问题,本申请公开了一种浏览器输入控件的进程控制方法,具体可以包括:
启动浏览器主进程;
所述浏览器主进程创建浏览器输入控件的第一独立子进程;
注入第一输入法程序到所述第一独立子进程;
所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
注入第二输入法程序到所述第二独立子进程。
优选的是,所述第一独立子进程控制第一输入法程序;所述浏览器主进程创建浏览器输入控件的第一独立子进程的步骤可以包括:
浏览器主进程加载输入控件;
在输入控件中调用子进程创建函数,创建第一独立子进程。
优选的是,所述的方法,还可以包括:
所述浏览器主进程创建监控子进程。
优选的是,所述浏览器主进程和子进程、子进程和子进程之间搭建信息交互通道;所述第二独立子进程控制第二输入法程序;所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程的步骤可以包括:
所述监控子进程通过所述信息交互通道将第一输入法程序异常的消息发送给所述浏览器主进程;
所述浏览器主进程关闭所述第一独立子进程;
在输入控件中调用子进程创建函数,创建第二独立子进程。
优选的是,所述监控子进程通过所述信息交互通道将第一输入法程序异常的消息发送给所述浏览器主进程的步骤可以包括:
所述监控子进程监控所述第一子进程的运行,获取第一输入法程序异常的反馈信息;
所述监控子进程将所述反馈信息编写成异常消息,通过所述交互通道发送给所述浏览器主进程。
优选的是,所述第一输入法程序可以包括浏览器主进程记录的用户首选的输入法;所述第二输入法程序可以包括浏览器默认的输入法或用户预置的输入法。
优选的是,所述注入第一输入法程序到所述第一独立子进程的步骤可以包括:
浏览器主进程在所述输入控件中调用输入法切换接口;
在所述第一子进程注入所述用户首选的输入法。
优选的是,所述注入第二输入法程序到所述第二独立子进程的步骤可以包括:
浏览器主进程在所述输入控件中调用输入法切换接口;
在所述第二子进程注入所述浏览器默认的输入法或用户预置的输入法。
优选的是,所述的方法,还可以包括:
统计所述输入法子进程出现异常的频率,生成提示信息。
优选的是,所述提示信息可以包括当前输入法子进程异常的提示信息;以及,是否更换首选输入法的选项。
本申请同时提供了一种浏览器输入控件的进程控制装置,具体可以包括:
主进程启动模块、用于启动浏览器主进程;
第一独立子进程创建模块、用于所述浏览器主进程创建浏览器输入控件的第一独立子进程;
第一输入法程序注入模块、用于注入第一输入法程序到所述第一独立子进程;
第二独立子进程创建模块、用于所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
第二输入法程序注入模块、用于注入第二输入法程序到所述第二独立子进程。
优选的是,所述第一独立子进程控制第一输入法程序;所述第一独立子进程创建模块可以包括:
输入控件加载子模块、用于浏览器主进程加载输入控件;
创建函数调用子模块、用于在输入控件中调用子进程创建函数,创建第一独立子进程。
优选的是,所述的装置,还可以包括:
监控子进程创建模块、用于所述浏览器主进程创建监控子进程。
优选的是,所述浏览器主进程和子进程、子进程和子进程之间搭建信息交互通道;所述第二独立子进程控制第二输入法程序;所述第二独立子进程创建模块可以包括:
异常消息发送子模块、用于所述监控子进程通过所述信息交互通道将第一输入法程序异常的消息发送给所述浏览器主进程;
第一独立子进程关闭子模块、用于所述浏览器主进程关闭所述第一独立子进程;
创建函数调用子模块、用于在输入控件中调用子进程创建函数,创建第二独立子进程。
优选的是,所述异常消息发送子模块可以包括:
反馈信息获取单元、用于所述监控子进程监控所述第一子进程的运行,获取第一输入法程序异常的反馈信息;
异常消息传递单元、用于所述监控子进程将所述反馈信息编写成异常消息,通过所述交互通道发送给所述浏览器主进程。
优选的是,所述第一输入法程序可以包括浏览器主进程记录的用户首选的输入法;所述第二输入法程序可以包括浏览器默认的输入法或用户预置的输入法。
优选的是,所述第一输入法程序注入模块可以包括:
切换接口调用子模块、用于浏览器主进程在所述输入控件中调用输入法切换接口;
首选输入法注入子模块、用于在所述第一子进程注入所述用户首选的输入法。
优选的是,所述第二输入法程序注入模块可以包括:
切换接口调用子模块、用于浏览器主进程在所述输入控件中调用输入法切换接口;
替换输入法注入子模块、用于在所述第二子进程注入所述浏览器默认的输入法或用户预置的输入法。
优选的是,所述的装置,还可以包括:
提示信息生成模块、用于统计所述输入法子进程出现异常的频率,生成提示信息。
优选的是,所述提示信息可以包括当前输入法子进程异常的提示信息;以及,是否更换首选输入法的选项。
本申请还同时提供了一种浏览器系统,具体可以包括:
主进程启动模块、用于启动浏览器主进程;
第一独立子进程创建模块、用于所述浏览器主进程创建浏览器输入控件的第一独立子进程;
第一输入法程序注入模块、用于注入第一输入法程序到所述第一独立子进程;
第二独立子进程创建模块、用于所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
第二输入法程序注入模块、用于注入第二输入法程序到所述第二独立子进程。
与现有技术相比,本申请具有以下优点:
本申请通过浏览器主进程在加载地址栏是,创建一个独立的输入法子进程。所述浏览器主进程通过创建另一个监控子进程对输入法子进程进行监控;在输入法子进程卡死或崩溃的情况下,监控子进程将消息发送给浏览器主进程,浏览器主进程通过交互通道关闭输入法子进程,不影响浏览器主进程继续运行。
并且,当输入法子进程卡死或崩溃时,浏览器主进程通过弹出提示信息,提示输入法子进程异常和提供是否更换输入法子进程的选项。还可以通过分析输入法子进程的异常率,推荐最优的输入法子进程。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例的核心构思之一在于,通过浏览器主进程在加载地址栏是,创建一个独立的输入法子进程。所述浏览器主进程通过创建另一个监控子进程对输入法子进程进行监控;在输入法子进程卡死或崩溃的情况下,监控子进程将消息发送给浏览器主进程,浏览器主进程通过交互通道关闭输入法子进程,不影响浏览器主进程继续运行。并且,当输入法子进程卡死或崩溃时,浏览器主进程通过弹出提示信息,提示输入法子进程异常和提供是否更换输入法子进程的选项。还可以通过分析输入法子进程的异常率,推荐最优的输入法子进程。
参照图1,示出了一种浏览器输入控件的进程控制方法实施例1的流程图,具体可以包括以下步骤:
步骤101、启动浏览器主进程;
在本申请的一种优选实施例中,所述浏览器主进程用于触发页面展示框架窗口加载页面,所述页面中包括输入控件。
在具体实现中,触发浏览器主进程后浏览器主进程可以创建多个子进程。当加载浏览器页面中的各个输入控件,包括加载浏览器的地址栏和搜索栏等。
步骤102、所述浏览器主进程创建浏览器输入控件的第一独立子进程;
在本申请的一种优选实施例中,所述第一独立子进程控制第一输入法程序;所述步骤102具体可以包括以下子步骤:
子步骤S11、浏览器主进程加载输入控件;
子步骤S12、在输入控件中调用子进程创建函数,创建第一独立子进程。
在具体实现中,浏览器主进程在触发之后,是逐条创建子进程的。当加载到功能控件的时候,可以创建对应的子进程,所以在加载输入控件的时候,浏览器主进程开始创建输入控件中的第一独立子进程。
步骤103、注入第一输入法程序到所述第一独立子进程;
步骤104、所述浏览器主进程创建监控子进程;
在具体实现中,主进程和子进程,子进程和子进程之间需要相互发送消息,反馈信息,可以通过多种现有方式实现跨进程通信。本申请主要采用搭建进程间的交互通道来实现进程之间的交互。
这里的交互通道可以采用管道的方式搭建,管道可以用于两个不同进程之间的通信。将一个主进程创建一个管道,并调用fork函数创建一个子进程后,主进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式。
步骤105、所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
在本申请的一种优选实施例中,所述第二独立子进程控制第二输入法程序;所述步骤105具体可以包括以下子步骤:
子步骤S21、所述监控子进程通过所述信息交互通道将第一输入法程序异常的消息发送给所述浏览器主进程;
在本申请的一种优选实施例中,所述子步骤S21具体可以包括以下单元:
所述监控子进程监控所述第一子进程的运行,获取第一输入法程序异常的反馈信息;
所述监控子进程将所述反馈信息编写成异常消息,通过所述交互通道发送给所述浏览器主进程。
子步骤S22、所述浏览器主进程关闭所述第一独立子进程;
子步骤S23、在输入控件中调用子进程创建函数,创建第二独立子进程。
步骤106、注入第二输入法程序到所述第二独立子进程。
在本申请的一种优选实施例中,所述第一输入法程序包括浏览器主进程记录的用户首选的输入法;所述第二输入法程序包括浏览器默认的输入法或用户预置的输入法。
参照图2,示出了一种浏览器输入控件的进程控制方法实施例2的流程图,具体可以包括以下步骤:
步骤201、启动浏览器主进程;
步骤202、所述浏览器主进程创建浏览器输入控件的第一独立子进程;
步骤203、注入第一输入法程序到所述第一独立子进程;
在本申请的一种优选实施例中,所述步骤203具体可以包括以下子步骤:
子步骤S31、浏览器主进程在所述输入控件中调用输入法切换接口;
子步骤S32、在所述第一子进程注入所述用户首选的输入法。
步骤204、所述浏览器主进程创建监控子进程;
在具体实现中,浏览器主进程可以创建多个子进程,其中可以创建一个监控子进程对其他的子进程进行监控。为了有效监控各个子进程的运行情况,可以首先创建监控子进程。
在具体实现中,可以通过跨进程通信来实现主进程对子进程建的控制,可以通过对输入法初始化,对进程间接口进行搭建交互通道,用于浏览器主进程和输入法子进程之间发送消息。
在浏览器主进程和监控子进程之间也可以设置交互通道,监控子进程可以通过交互通道反馈消息给浏览器主进程。
步骤205、所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
步骤206、注入第二输入法程序到所述第二独立子进程;
在本申请的一种优选实施例中,所述步骤203具体可以包括以下子步骤:
子步骤S41、浏览器主进程在所述输入控件中调用输入法切换接口;
子步骤S42、在所述第二子进程注入所述浏览器默认的输入法或用户预置的输入法。
步骤207、统计所述输入法子进程出现异常的频率,生成提示信息。
在本申请的一种优选实施例中,所述提示信息包括当前输入法子进程异常的提示信息;以及,是否更换首选输入法的选项。
在具体实现中,浏览器页面可以弹出一个信息提示框,在提示框中告诉用户当前的输入法出现了异常情况,已经关闭。同时,在信息提示框中可以附有一个选项框,提供用户是否选择自动替换另一个输入法。另一个输入法可以是默认的替换输入法,也可以是用户预设的用于替换的输入法。
信息提示框中还可以告知用户当前输入法不稳定,容易出现卡死和崩溃的情况,建议用户更换首选输入法。判断输入法的稳定性可以统计所述输入法出现异常的频率,当所述频率超过一个预设阈值时,可以判定此输入法不稳定。
在具体实现中,可以通过统计一个时间段的输入法子进程异常次数,可以用输入法子进程异常次数除以时间段中输入法子进程运行总次数得到输入法子进程异常率。
如:统计时间段设定为1周,总共在浏览器地址栏运行输入法子进程20次,其中有4次输入法子进程出现异常,因此4/20=20%,则该输入法子进程异常率为20%。与预设的输入法子进程异常阈值3%进行比较,由于该输入法子进程异常率超过了预设的输入法子进程异常阈值,所以此输入法不稳定。
为了方便本领域技术人员更好地理解本申请,以下通过一个完整示例更进一步说明本申请:
1、启动浏览器主进程,浏览器页面开始逐条加载功能栏。
2、浏览器首先加载监控功能组件,创建监控子进程;
3、当浏览器加载某输入控件的时候,浏览器主进程创建一个独立子进程“A”;并搭建浏览器主进程和输入法子进程之间的交互通道,以及搭建浏览器主进程和监控子进程之间、“A”和监控子进程之间的交互通道。
4、浏览器主进程将用户首选输入法注入“A”。
5、监控子进程发现输入法子进程“A”在运行中卡死,监控子进程通过交互通道将输入法子进程“A”卡死出现异常的消息发送给浏览器住进程;浏览器主进程在获取输入法子进程“A”卡死的信息后,通过交互通道发送关闭输入法子进程“A”的消息。
6、浏览器主进程创建一个独立子进程“B”;并搭建浏览器主进程和“B”之间的交互通道,以及搭建浏览器主进程和监控子进程之间、“B”和监控子进程之间的交互通道。
7、,浏览器主进程在桌面调用输入法子进程切换接口,调用浏览器默认输入法注入“B”。
8、浏览器主进程统计一周内,用户首选输入法的异常情况,得到用户首选输入法的异常率为40%,与预设的异常率阈值3%对比后,发现超出了预设阈值,浏览器页面弹出提示信息框,提示用户首选输入法不稳定,容易出现崩溃和卡死的现象,建议更换输入法。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
参照图3,示出了一种浏览器输入控件的进程控制装置实施例1的结构框图,具体可以包括:
主进程启动模块301、用于启动浏览器主进程;
第一独立子进程创建模块302、用于所述浏览器主进程创建浏览器输入控件的第一独立子进程;
在本申请的一种优选实施例中,所述第一独立子进程控制第一输入法程序;所述第一独立子进程创建模块302具体可以包括以下子模块:
输入控件加载子模块、用于浏览器主进程加载输入控件;
创建函数调用子模块、用于在输入控件中调用子进程创建函数,创建第一独立子进程。
第一输入法程序注入模块303、用于注入第一输入法程序到所述第一独立子进程;
在本申请的一种优选实施例中,所述第一输入法程序注入模块303具体可以包括以下子模块:
切换接口调用子模块、用于浏览器主进程在所述输入控件中调用输入法切换接口;
首选输入法注入子模块、用于在所述第一子进程注入所述用户首选的输入法。
第二独立子进程创建模块304、用于所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
在本申请的一种优选实施例中,所述第二独立子进程控制第二输入法程序;所述第二独立子进程创建模块304具体可以包括以下子模块:
异常消息发送子模块、用于所述监控子进程通过所述信息交互通道将第一输入法程序异常的消息发送给所述浏览器主进程;
在本申请的一种优选实施例中,所述异常消息发送子模块具体可以包括以下单元:
反馈信息获取单元、用于所述监控子进程监控所述第一子进程的运行,获取第一输入法程序异常的反馈信息;
异常消息传递单元、用于所述监控子进程将所述反馈信息编写成异常消息,通过所述交互通道发送给所述浏览器主进程。
第一独立子进程关闭子模块、用于所述浏览器主进程关闭所述第一独立子进程;
创建函数调用子模块、用于在输入控件中调用子进程创建函数,创建第二独立子进程。
第二输入法程序注入模块305、用于注入第二输入法程序到所述第二独立子进程。
在本申请的一种优选实施例中,所述第二输入法程序注入模块具体可以包括以下子步骤:
切换接口调用子模块、用于浏览器主进程在所述输入控件中调用输入法切换接口;
替换输入法注入子模块、用于在所述第二子进程注入所述浏览器默认的输入法或用户预置的输入法。
参照图4,示出了一种浏览器输入控件的进程控制装置实施例2的结构框图,具体可以包括:
主进程启动模块401、用于启动浏览器主进程;
第一独立子进程创建模块402、用于所述浏览器主进程创建浏览器输入控件的第一独立子进程;
第一输入法程序注入模块403、用于注入第一输入法程序到所述第一独立子进程;
监控子进程创建模块404、用于所述浏览器主进程创建监控子进程;
第二独立子进程创建模块405、用于所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
第二输入法程序注入模块406、用于注入第二输入法程序到所述第二独立子进程;
提示信息生成模块407、用于统计所述输入法子进程出现异常的频率,生成提示信息。
在本申请的一种优选实施例中,所述提示信息包括当前输入法子进程异常的提示信息;以及,是否更换首选输入法的选项。
参照图5,示出了一种浏览器系统实施例的结构框图,具体可以包括:
主进程启动模块501、用于启动浏览器主进程;
第一独立子进程创建模块502、用于所述浏览器主进程创建浏览器输入控件的第一独立子进程;
第一输入法程序注入模块503、用于注入第一输入法程序到所述第一独立子进程;
第二独立子进程创建模块504、用于所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
第二输入法程序注入模块505、用于注入第二输入法程序到所述第二独立子进程。
由于所述装置实施例基本相应于前述方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种浏览器输入控件的进程控制方法,一种浏览器输入控件的进程控制装置,以及,一种浏览器系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
本申请实施例公开了A1、一种浏览器输入控件的进程控制方法,包括:
启动浏览器主进程;
所述浏览器主进程创建浏览器输入控件的第一独立子进程;
注入第一输入法程序到所述第一独立子进程;
所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
注入第二输入法程序到所述第二独立子进程。
A2、如A1所述的方法,所述第一独立子进程控制第一输入法程序;所述浏览器主进程创建浏览器输入控件的第一独立子进程的步骤包括:
浏览器主进程加载输入控件;
在输入控件中调用子进程创建函数,创建第一独立子进程。
A3、如A2所述的方法,还包括:
所述浏览器主进程创建监控子进程。
A4、如A3所述的方法,所述浏览器主进程和子进程、子进程和子进程之间搭建信息交互通道;所述第二独立子进程控制第二输入法程序;所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程的步骤包括:
所述监控子进程通过所述信息交互通道将第一输入法程序异常的消息发送给所述浏览器主进程;
所述浏览器主进程关闭所述第一独立子进程;
在输入控件中调用子进程创建函数,创建第二独立子进程。
A5、如A4所述的方法,所述监控子进程通过所述信息交互通道将第一输入法程序异常的消息发送给所述浏览器主进程的步骤包括:
所述监控子进程监控所述第一子进程的运行,获取第一输入法程序异常的反馈信息;
所述监控子进程将所述反馈信息编写成异常消息,通过所述交互通道发送给所述浏览器主进程。
A6、如A5所述的方法,所述第一输入法程序包括浏览器主进程记录的用户首选的输入法;所述第二输入法程序包括浏览器默认的输入法或用户预置的输入法。
A7、如A6所述的方法,所述注入第一输入法程序到所述第一独立子进程的步骤包括:
浏览器主进程在所述输入控件中调用输入法切换接口;
在所述第一子进程注入所述用户首选的输入法。
A8、如A7所述的方法,所述注入第二输入法程序到所述第二独立子进程的步骤包括:
浏览器主进程在所述输入控件中调用输入法切换接口;
在所述第二子进程注入所述浏览器默认的输入法或用户预置的输入法。
A9、如A8所述的方法,还包括:
统计所述输入法子进程出现异常的频率,生成提示信息。
A10、如A9所述的方法,所述提示信息包括当前输入法子进程异常的提示信息;以及,是否更换首选输入法的选项。
本申请实施例还公开了B11、一种浏览器输入控件的进程控制装置,包括:
主进程启动模块、用于启动浏览器主进程;
第一独立子进程创建模块、用于所述浏览器主进程创建浏览器输入控件的第一独立子进程;
第一输入法程序注入模块、用于注入第一输入法程序到所述第一独立子进程;
第二独立子进程创建模块、用于所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
第二输入法程序注入模块、用于注入第二输入法程序到所述第二独立子进程。
B12、如B11所述的装置,所述第一独立子进程控制第一输入法程序;所述第一独立子进程创建模块包括:
输入控件加载子模块、用于浏览器主进程加载输入控件;
创建函数调用子模块、用于在输入控件中调用子进程创建函数,创建第一独立子进程。
B13、如B12所述的装置,还包括:
监控子进程创建模块、用于所述浏览器主进程创建监控子进程。
B14、如B13所述的装置,所述浏览器主进程和子进程、子进程和子进程之间搭建信息交互通道;所述第二独立子进程控制第二输入法程序;所述第二独立子进程创建模块包括:
异常消息发送子模块、用于所述监控子进程通过所述信息交互通道将第一输入法程序异常的消息发送给所述浏览器主进程;
第一独立子进程关闭子模块、用于所述浏览器主进程关闭所述第一独立子进程;
创建函数调用子模块、用于在输入控件中调用子进程创建函数,创建第二独立子进程。
B15、如B14所述的装置,所述异常消息发送子模块包括:
反馈信息获取单元、用于所述监控子进程监控所述第一子进程的运行,获取第一输入法程序异常的反馈信息;
异常消息传递单元、用于所述监控子进程将所述反馈信息编写成异常消息,通过所述交互通道发送给所述浏览器主进程。
B16、如B15所述的装置,所述第一输入法程序包括浏览器主进程记录的用户首选的输入法;所述第二输入法程序包括浏览器默认的输入法或用户预置的输入法。
B17、如B16所述的装置,所述第一输入法程序注入模块包括:
切换接口调用子模块、用于浏览器主进程在所述输入控件中调用输入法切换接口;
首选输入法注入子模块、用于在所述第一子进程注入所述用户首选的输入法。
B18、如B17所述的装置,所述第二输入法程序注入模块包括:
切换接口调用子模块、用于浏览器主进程在所述输入控件中调用输入法切换接口;
替换输入法注入子模块、用于在所述第二子进程注入所述浏览器默认的输入法或用户预置的输入法。
B19、如B18所述的装置,还包括:
提示信息生成模块、用于统计所述输入法子进程出现异常的频率,生成提示信息。
B20、如B19所述的装置,所述提示信息包括当前输入法子进程异常的提示信息;以及,是否更换首选输入法的选项。
本申请实施例还公开了C21、一种浏览器系统,包括:
主进程启动模块、用于启动浏览器主进程;
第一独立子进程创建模块、用于所述浏览器主进程创建浏览器输入控件的第一独立子进程;
第一输入法程序注入模块、用于注入第一输入法程序到所述第一独立子进程;
第二独立子进程创建模块、用于所述浏览器主进程获知第一输入法程序异常,关闭所述第一独立子进程,并创建浏览器输入控件的第二独立子进程;
第二输入法程序注入模块、用于注入第二输入法程序到所述第二独立子进程。
C22、如C21所述的系统,所述第一独立子进程控制第一输入法程序;所述第一独立子进程创建模块包括:
输入控件加载子模块、用于浏览器主进程加载输入控件;
创建函数调用子模块、用于在输入控件中调用子进程创建函数,创建第一独立子进程。
C23、如C22所述的系统,还包括:
监控子进程创建模块、用于所述浏览器主进程创建监控子进程。
C24、如C23所述的系统,所述浏览器主进程和子进程、子进程和子进程之间搭建信息交互通道;所述第二独立子进程控制第二输入法程序;所述第二独立子进程创建模块包括:
异常消息发送子模块、用于所述监控子进程通过所述信息交互通道将第一输入法程序异常的消息发送给所述浏览器主进程;
第一独立子进程关闭子模块、用于所述浏览器主进程关闭所述第一独立子进程;
创建函数调用子模块、用于在输入控件中调用子进程创建函数,创建第二独立子进程。
C25、如C24所述的系统,所述异常消息发送子模块包括:
反馈信息获取单元、用于所述监控子进程监控所述第一子进程的运行,获取第一输入法程序异常的反馈信息;
异常消息传递单元、用于所述监控子进程将所述反馈信息编写成异常消息,通过所述交互通道发送给所述浏览器主进程。
C26、如C25所述的系统,所述第一输入法程序包括浏览器主进程记录的用户首选的输入法;所述第二输入法程序包括浏览器默认的输入法或用户预置的输入法。
C27、如C26所述的系统,所述第一输入法程序注入模块包括:
切换接口调用子模块、用于浏览器主进程在所述输入控件中调用输入法切换接口;
首选输入法注入子模块、用于在所述第一子进程注入所述用户首选的输入法。
C28、如C27所述的系统,所述第二输入法程序注入模块包括:
切换接口调用子模块、用于浏览器主进程在所述输入控件中调用输入法切换接口;
替换输入法注入子模块、用于在所述第二子进程注入所述浏览器默认的输入法或用户预置的输入法。
C29、如C28所述的系统,还包括:
提示信息生成模块、用于统计所述输入法子进程出现异常的频率,生成提示信息。
B30、如C29所述的系统,所述提示信息包括当前输入法子进程异常的提示信息;以及,是否更换首选输入法的选项。