书签 分享 收藏 举报 版权申诉 / 7

多核浏览器下的消息传递方法与装置.pdf

  • 上传人:t****
  • 文档编号:4273151
  • 上传时间:2018-09-13
  • 格式:PDF
  • 页数:7
  • 大小:335.90KB
  • 摘要
    申请专利号:

    CN201210059928.8

    申请日:

    2012.03.08

    公开号:

    CN102915256A

    公开日:

    2013.02.06

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 9/54变更事项:专利权人变更前:北京金山安全软件有限公司变更后:北京金山安全软件有限公司变更事项:地址变更前:100085 北京市海淀区小营西路33号金山大厦变更后:100085 北京市海淀区小营西路33号金山大厦变更事项:共同专利权人变更前:可牛网络技术(北京)有限公司 贝壳网际(北京)安全技术有限公司变更后:可牛网络技术(北京)有限公司 北京猎豹移动科技有限公司|||授权|||实质审查的生效IPC(主分类):G06F 9/54申请日:20120308|||公开

    IPC分类号:

    G06F9/54; G06F15/163

    主分类号:

    G06F9/54

    申请人:

    北京金山安全软件有限公司; 可牛网络技术(北京)有限公司; 贝壳网际(北京)安全技术有限公司

    发明人:

    石淼磊; 徐鸣; 孙明焱

    地址:

    100085 北京市海淀区小营西路33号金山大厦

    优先权:

    专利代理机构:

    北京银龙知识产权代理有限公司 11243

    代理人:

    许静;姜精斌

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供一种多核浏览器下的消息传递方法与装置,用于解决多核浏览器下每一个核所对应的窗口均对接收的消息进行处理的问题。该多核浏览器下的消息传递方法包括:多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,通过所述主框架的处理程序对所述消息进行处理。本发明的技术方案的有益效果为:由多核浏览器的主框架对接收到的消息进行统一的处理,避免各个核独自处理,从开发的角度,节省了开发时间,从用户的角度,由主框架统一处理用户输入的消息,并统一呈现处理结果,提高了用户的用户体验。

    权利要求书

    权利要求书一种多核浏览器下的消息传递方法,其特征在于,包括:
    多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,由所述主框架的处理程序对所述消息进行处理。
    如权利要求1所述的消息传递方法,其特征在于,所述多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,由所述主框架的处理程序对所述消息进行处理包括:
    所述多核浏览器的任一核所对应的UI线程获取到所述消息;
    所述任一核所对应的UI线程将所述消息通过所述任一核所对应的IO线程发送给所述主框架;
    所述主框架的IO线程接收所述消息并将所述消息传递给所述主框架的UI线程。
    一种多核浏览器下的消息传递装置,其特征在于,包括:
    传递模块,用于多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,并由所述主框架的处理程序对所述消息进行处理。
    如权利要求3所述的消息传递装置,其特征在于,所述传递模块包括:
    获取模块,用于所述多核浏览器的任一核所对应的UI线程获取到所述消息;
    发送模块,用于所述任一核所对应的UI线程将所述消息通过所述任一核所对应的IO线程发送给所述主框架;
    接收模块,用于所述主框架的IO线程接收所述消息并将所述消息传递给所述主框架的UI线程。

    说明书

    说明书多核浏览器下的消息传递方法与装置
    技术领域
    本发明属于浏览器技术,涉及一种消息传递方法,更具体的涉及一种多核浏览器下的消息传递方法与装置。
    背景技术
    在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的。首先,UI线程是一种“线程”,所以它具有一个线程应该具有的所有特征,比如有一个线程函数和一个线程ID。其次,“UI线程”又是“特殊”的,这是因为UI线程的线程函数中会创建一种特殊的对象——窗体,同时,还一并负责创建窗体上的各种控件。窗体和控件具有接收用户操作的功能,它们是用户使用整个应用程序的媒介,没有这样一个媒介,用户就无法控制整个应用程序的运行和停止,往往也无法直接看到程序的运行过程和最终结果。
    但是,窗体和控件又不具备独立地响应用户操作(比如键盘和鼠标操作)的功能,比如用鼠标点击了一个按钮,并且看到了鼠标“陷”下去,然后又还原,之后,就会在显示器上看到了程序执行了此按钮所对应的任务,其实,窗体和控件之所以能响应用户操作,关键在于负责创建该操作的UI线程拥有一个“消息循环(Message Loop)”,这个消息循环由线程函数负责启动。
    而在多核浏览器中,每一个核都会拥有一个UI线程,也就是说每个核都有单独处理用户操作的能力,这样一来,对于多核浏览器,要为每一核都要对应开发出一套用户操作结果,而对用户来说,相同的执行操作被不同的核接收到,其显示结果就会不同。
    因此,在现有技术中,多核浏览器中存在每一个核都会对获取到的消息进处理而带来的开发资源浪费的问题。
    发明内容
    本发明公开一种多核浏览器下的消息传递方法与装置,用于解决现有技术中存在的因多核浏览器中存在每一个核都会对获取到的消息进行处理而带来的开发资源浪费的问题。
    为实现上述目的,根据本发明的一个方面,提供一种多核浏览器下的消息传递方法,并采用以下技术方案:
    多核浏览器下的消息传递方法包括:多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,由所述主框架的处理程序对所述消息进行处理。
    进一步地,所述多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,由所述主框架的处理程序对所述消息进行处理包括:所述多核浏览器的任一核所对应的UI线程获取到所述消息;所述任一核所对应的UI线程将所述消息通过所述任一核所对应的IO线程发送给所述主框架;所述主框架的IO线程接收所述消息并将所述消息传递给所述主框架的UI线程。
    根据本发明的另外一个方面,提供一种多核浏览器下的消息传递装置,并采用以下技术方案:
    多核浏览器下的消息传递装置包括:传递模块,用于多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,并由所述主框架的处理程序对所述消息进行处理。
    进一步地,所述传递模块包括:获取模块,用于所述多核浏览器的任一核所对应的UI线程获取到所述消息;发送模块,用于所述任一核所对应的UI线程将所述消息通过所述任一核所对应的IO线程发送给所述主框架;接收模块,用于所述主框架的IO线程接收所述消息并将所述消息传递给所述主框架的UI线程。
    根据本发明的上述技术方案,由多核浏览器的主框架对接收到的消息进行统一的处理,避免各个核独自处理,从开发的角度,节省了开发时间,从用户的角度,由主框架统一处理用户输入的消息,并统一呈现处理结果,提高了用户的用户体验。
    除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。
    附图说明
    附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
    图1表示本发明实施例所述的多核浏览器主框架与多内核之间的关系示意图;
    图2表示本发明实施例一所述的多核浏览器下的消息传递方法的主要流程图;
    图3表示本发明实施例二所述的多核浏览器下的消息传递方法的示意图;
    图4表示本发明实施例所述的多核浏览器下的消息传递装置的主要结构示意图。
    具体实施方式
    以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
    图1表示本发明实施例所述的多核浏览器主框架与多内核之间的关系示意图。
    本实施例以多核浏览器主框架browser的主进程有两类子进程为例,两类子进程可以为任何内核的子进程,如图1中的chrome_render和ie_render,在图1中,browser为该多核浏览器的主框架。
    图2表示本发明实施例一所述的多核浏览器下的消息传递方法的主要流程图。
    参见图2所示,多核浏览器下的消息传递方法包括:
    S101:多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架;
    S103:由所述主框架的处理程序对所述消息进行处理。
    在步骤S101中,多核浏览器将获取到的消息传递给所述多核浏览器的主框架,意指不管多核浏览器的哪一个核或者说窗体截获到的消息,均禁止处理该消息,将该消息传递给多核浏览器的主框架所对应的处理程序进行处理。该方法的优点可用一个具体的实例进行说明,现有技术的技术效果为:用户在多核浏览器中的一个窗体中执行单击鼠标“右键”的操作,接收该消息的窗体,对该消息进行处理后,会给出一个处理的结果,显示给用户的结果就是在该窗体上呈现一“菜单”,如果该操作在另外一个窗体上执行,则显示的结果就是另外一个窗体所对应的“菜单”,这样,呈现给用户的两个“菜单”就是不一样的,同样道理,如果该操作被多核浏览器的主框架接收后并进行处理,呈现给用户的“菜单”和前两个就都是不一样的。而采用本发明的技术方案,所有消息均由主框架进行处理,相应的,也就只要开发一个“菜单”,不管用户单击鼠标“右键”的操作被那个窗口接收到,均会将该消息传递给主框架,由主框架对应的处理程序进行处理,显示给用户的“菜单”也就是只有一个。
    图3表示本发明实施例二所述的多核浏览器下的消息传递方法的主要流程图;
    本实施例为多核浏览器的IE render核截获了消息的情形。
    参见图3所示,多核浏览器下的消息传递方法包括:
    S201:IE render的UI线程截获消息;
    S202:通过IE render的IO线程发给主框架browser;
    S203:Browser的IO线程收到该消息后,提供给Browser的UI线程进行处理。
    具体而言,操作系统会监控计算机上的键盘和鼠标等输入设备,为每一个输入事件(由用户操作所引发,比如用户按了某个键)生成一个消息。根据事件发生时的情况(比如当前激活的窗体负责接收用户按键,而依据用户点击鼠标的坐标可以知道用户在哪个窗体区域内点击了鼠标),操作系统会确定出此消息应该发给哪个窗体对象。这些生成的消息会统一地先临时放置在一个“系统消息队列(system message queue)”中,然后,操作系统有一个专门的线程负责从这一队列中取出消息,根据消息的目标对象(就是窗体的句柄),将其移动到创建它的UI线程所对应的消息队列中。操作系统在创建进程和线程时,都同时记录了大量的控制信息(比如通过进程控制块和句柄表可以查找到进程所创建的所有线程和引用的核心对象),因此,根据窗体句柄来确定此消息应属于哪个UI线程,在步骤S201中,在根据上述描述确定该消息属于IE render进程的UI线程时,可以通过IE render进程的IO线程发给主框体Browser的UI线程。IE render的IO线程收到该消息,并提供给IE render的IO线程,并由IE render的IO线程传递给IE render的UI线程进行处理。
    图4表示本发明实施例所述的多核浏览器下的消息传递装置的主要结构示意图。
    参见图4所示,多核浏览器下的消息传递装置包括传递模块40,用于多核浏览器将获取到的消息传递给所述多核浏览器的主框架,由所述主框架所对应的处理程序对所述消息进行处理。
    优选地,传递模块40包括获取模块41,用于所述多核浏览器的任一核所对应的UI线程获取到所述消息;发送模块43,用于所述任一核所对应的UI线程将所述消息通过所述任一核所对应的IO线程发送给所述主框架;接收模块45,用于所述主框架的IO线程接收所述消息并将所述消息传递给所述主框架的UI线程。
    根据本发明的上述技术方案,由多核浏览器的主框架对接收到的消息进行统一的处理,避免各个核独自处理,从开发的角度,节省了开发时间,从用户的角度,由主框架统一处理用户输入的消息,并统一呈现处理结果,提高了用户的用户体验。

    关 键  词:
    多核 浏览器 消息 传递 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:多核浏览器下的消息传递方法与装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4273151.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1