《多核浏览器下的消息传递方法与装置.pdf》由会员分享,可在线阅读,更多相关《多核浏览器下的消息传递方法与装置.pdf(7页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102915256 A (43)申请公布日 2013.02.06 C N 1 0 2 9 1 5 2 5 6 A *CN102915256A* (21)申请号 201210059928.8 (22)申请日 2012.03.08 G06F 9/54(2006.01) G06F 15/163(2006.01) (71)申请人北京金山安全软件有限公司 地址 100085 北京市海淀区小营西路33号 金山大厦 申请人可牛网络技术(北京)有限公司 贝壳网际(北京)安全技术有限公司 (72)发明人石淼磊 徐鸣 孙明焱 (74)专利代理机构北京银龙知识产权代理有限 公司 11243。
2、 代理人许静 姜精斌 (54) 发明名称 多核浏览器下的消息传递方法与装置 (57) 摘要 本发明提供一种多核浏览器下的消息传递方 法与装置,用于解决多核浏览器下每一个核所对 应的窗口均对接收的消息进行处理的问题。该多 核浏览器下的消息传递方法包括:多核浏览器的 任一核将获取到的消息传递给所述多核浏览器的 主框架,通过所述主框架的处理程序对所述消息 进行处理。本发明的技术方案的有益效果为:由 多核浏览器的主框架对接收到的消息进行统一的 处理,避免各个核独自处理,从开发的角度,节省 了开发时间,从用户的角度,由主框架统一处理用 户输入的消息,并统一呈现处理结果,提高了用户 的用户体验。 (51)。
3、Int.Cl. 权利要求书1页 说明书3页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 3 页 附图 2 页 1/1页 2 1.一种多核浏览器下的消息传递方法,其特征在于,包括: 多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,由所述主框架 的处理程序对所述消息进行处理。 2.如权利要求1所述的消息传递方法,其特征在于,所述多核浏览器的任一核将获取 到的消息传递给所述多核浏览器的主框架,由所述主框架的处理程序对所述消息进行处理 包括: 所述多核浏览器的任一核所对应的UI线程获取到所述消息; 所述任一核所对应的UI线程将所述消息。
4、通过所述任一核所对应的IO线程发送给所述 主框架; 所述主框架的IO线程接收所述消息并将所述消息传递给所述主框架的UI线程。 3.一种多核浏览器下的消息传递装置,其特征在于,包括: 传递模块,用于多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框 架,并由所述主框架的处理程序对所述消息进行处理。 4.如权利要求3所述的消息传递装置,其特征在于,所述传递模块包括: 获取模块,用于所述多核浏览器的任一核所对应的UI线程获取到所述消息; 发送模块,用于所述任一核所对应的UI线程将所述消息通过所述任一核所对应的IO 线程发送给所述主框架; 接收模块,用于所述主框架的IO线程接收所述消息并将所述。
5、消息传递给所述主框架 的UI线程。 权 利 要 求 书CN 102915256 A 1/3页 3 多核浏览器下的消息传递方法与装置 技术领域 0001 本发明属于浏览器技术,涉及一种消息传递方法,更具体的涉及一种多核浏览器 下的消息传递方法与装置。 背景技术 0002 在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)” 的特殊类型的线程创建的。首先,UI线程是一种“线程”,所以它具有一个线程应该具有的 所有特征,比如有一个线程函数和一个线程ID。其次,“UI线程”又是“特殊”的,这是因为 UI线程的线程函数中会创建一种特殊的对象窗体,同时,还。
6、一并负责创建窗体上的各 种控件。窗体和控件具有接收用户操作的功能,它们是用户使用整个应用程序的媒介,没有 这样一个媒介,用户就无法控制整个应用程序的运行和停止,往往也无法直接看到程序的 运行过程和最终结果。 0003 但是,窗体和控件又不具备独立地响应用户操作(比如键盘和鼠标操作)的功能, 比如用鼠标点击了一个按钮,并且看到了鼠标“陷”下去,然后又还原,之后,就会在显示器 上看到了程序执行了此按钮所对应的任务,其实,窗体和控件之所以能响应用户操作,关键 在于负责创建该操作的UI线程拥有一个“消息循环(Message Loop)”,这个消息循环由线 程函数负责启动。 0004 而在多核浏览器中,。
7、每一个核都会拥有一个UI线程,也就是说每个核都有单独处 理用户操作的能力,这样一来,对于多核浏览器,要为每一核都要对应开发出一套用户操作 结果,而对用户来说,相同的执行操作被不同的核接收到,其显示结果就会不同。 0005 因此,在现有技术中,多核浏览器中存在每一个核都会对获取到的消息进处理而 带来的开发资源浪费的问题。 发明内容 0006 本发明公开一种多核浏览器下的消息传递方法与装置,用于解决现有技术中存在 的因多核浏览器中存在每一个核都会对获取到的消息进行处理而带来的开发资源浪费的 问题。 0007 为实现上述目的,根据本发明的一个方面,提供一种多核浏览器下的消息传递方 法,并采用以下技术。
8、方案: 0008 多核浏览器下的消息传递方法包括:多核浏览器的任一核将获取到的消息传递给 所述多核浏览器的主框架,由所述主框架的处理程序对所述消息进行处理。 0009 进一步地,所述多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主 框架,由所述主框架的处理程序对所述消息进行处理包括:所述多核浏览器的任一核所对 应的UI线程获取到所述消息;所述任一核所对应的UI线程将所述消息通过所述任一核所 对应的IO线程发送给所述主框架;所述主框架的IO线程接收所述消息并将所述消息传递 给所述主框架的UI线程。 说 明 书CN 102915256 A 2/3页 4 0010 根据本发明的另外一个方面,。
9、提供一种多核浏览器下的消息传递装置,并采用以 下技术方案: 0011 多核浏览器下的消息传递装置包括:传递模块,用于多核浏览器的任一核将获取 到的消息传递给所述多核浏览器的主框架,并由所述主框架的处理程序对所述消息进行处 理。 0012 进一步地,所述传递模块包括:获取模块,用于所述多核浏览器的任一核所对应的 UI线程获取到所述消息;发送模块,用于所述任一核所对应的UI线程将所述消息通过所述 任一核所对应的IO线程发送给所述主框架;接收模块,用于所述主框架的IO线程接收所述 消息并将所述消息传递给所述主框架的UI线程。 0013 根据本发明的上述技术方案,由多核浏览器的主框架对接收到的消息进行。
10、统一的 处理,避免各个核独自处理,从开发的角度,节省了开发时间,从用户的角度,由主框架统一 处理用户输入的消息,并统一呈现处理结果,提高了用户的用户体验。 0014 除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。 下面将参照图,对本发明作进一步详细的说明。 附图说明 0015 附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中: 0016 图1表示本发明实施例所述的多核浏览器主框架与多内核之间的关系示意图; 0017 图2表示本发明实施例一所述的多核浏览器下的消息传递方法的主要流程图。
11、; 0018 图3表示本发明实施例二所述的多核浏览器下的消息传递方法的示意图; 0019 图4表示本发明实施例所述的多核浏览器下的消息传递装置的主要结构示意图。 具体实施方式 0020 以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定 和覆盖的多种不同方式实施。 0021 图1表示本发明实施例所述的多核浏览器主框架与多内核之间的关系示意图。 0022 本实施例以多核浏览器主框架browser的主进程有两类子进程为例,两类子进程 可以为任何内核的子进程,如图1中的chrome_render和ie_render,在图1中,browser为 该多核浏览器的主框架。 0023 图。
12、2表示本发明实施例一所述的多核浏览器下的消息传递方法的主要流程图。 0024 参见图2所示,多核浏览器下的消息传递方法包括: 0025 S101:多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架; 0026 S103:由所述主框架的处理程序对所述消息进行处理。 0027 在步骤S101中,多核浏览器将获取到的消息传递给所述多核浏览器的主框架,意 指不管多核浏览器的哪一个核或者说窗体截获到的消息,均禁止处理该消息,将该消息传 递给多核浏览器的主框架所对应的处理程序进行处理。该方法的优点可用一个具体的实 例进行说明,现有技术的技术效果为:用户在多核浏览器中的一个窗体中执行单击鼠标“右 。
13、键”的操作,接收该消息的窗体,对该消息进行处理后,会给出一个处理的结果,显示给用户 说 明 书CN 102915256 A 3/3页 5 的结果就是在该窗体上呈现一“菜单”,如果该操作在另外一个窗体上执行,则显示的结果 就是另外一个窗体所对应的“菜单”,这样,呈现给用户的两个“菜单”就是不一样的,同样道 理,如果该操作被多核浏览器的主框架接收后并进行处理,呈现给用户的“菜单”和前两个 就都是不一样的。而采用本发明的技术方案,所有消息均由主框架进行处理,相应的,也就 只要开发一个“菜单”,不管用户单击鼠标“右键”的操作被那个窗口接收到,均会将该消息 传递给主框架,由主框架对应的处理程序进行处理,。
14、显示给用户的“菜单”也就是只有一个。 0028 图3表示本发明实施例二所述的多核浏览器下的消息传递方法的主要流程图; 0029 本实施例为多核浏览器的IE render核截获了消息的情形。 0030 参见图3所示,多核浏览器下的消息传递方法包括: 0031 S201:IE render的UI线程截获消息; 0032 S202:通过IE render的IO线程发给主框架browser; 0033 S203:Browser的IO线程收到该消息后,提供给Browser的UI线程进行处理。 0034 具体而言,操作系统会监控计算机上的键盘和鼠标等输入设备,为每一个输入事 件(由用户操作所引发,比如用户。
15、按了某个键)生成一个消息。根据事件发生时的情况(比 如当前激活的窗体负责接收用户按键,而依据用户点击鼠标的坐标可以知道用户在哪个窗 体区域内点击了鼠标),操作系统会确定出此消息应该发给哪个窗体对象。这些生成的消息 会统一地先临时放置在一个“系统消息队列(system message queue)”中,然后,操作系统 有一个专门的线程负责从这一队列中取出消息,根据消息的目标对象(就是窗体的句柄), 将其移动到创建它的UI线程所对应的消息队列中。操作系统在创建进程和线程时,都同时 记录了大量的控制信息(比如通过进程控制块和句柄表可以查找到进程所创建的所有线 程和引用的核心对象),因此,根据窗体句柄。
16、来确定此消息应属于哪个UI线程,在步骤S201 中,在根据上述描述确定该消息属于IE render进程的UI线程时,可以通过IE render进 程的IO线程发给主框体Browser的UI线程。IE render的IO线程收到该消息,并提供给 IE render的IO线程,并由IE render的IO线程传递给IE render的UI线程进行处理。 0035 图4表示本发明实施例所述的多核浏览器下的消息传递装置的主要结构示意图。 0036 参见图4所示,多核浏览器下的消息传递装置包括传递模块40,用于多核浏览器 将获取到的消息传递给所述多核浏览器的主框架,由所述主框架所对应的处理程序对所述 消。
17、息进行处理。 0037 优选地,传递模块40包括获取模块41,用于所述多核浏览器的任一核所对应的UI 线程获取到所述消息;发送模块43,用于所述任一核所对应的UI线程将所述消息通过所述 任一核所对应的IO线程发送给所述主框架;接收模块45,用于所述主框架的IO线程接收 所述消息并将所述消息传递给所述主框架的UI线程。 0038 根据本发明的上述技术方案,由多核浏览器的主框架对接收到的消息进行统一的 处理,避免各个核独自处理,从开发的角度,节省了开发时间,从用户的角度,由主框架统一 处理用户输入的消息,并统一呈现处理结果,提高了用户的用户体验。 说 明 书CN 102915256 A 1/2页 6 图1 图2 图3 说 明 书 附 图CN 102915256 A 2/2页 7 图4 说 明 书 附 图CN 102915256 A 。