CN102779076B - 一种浏览器中进程间通信的方法和装置 - Google Patents

一种浏览器中进程间通信的方法和装置 Download PDF

Info

Publication number
CN102779076B
CN102779076B CN201210226976.1A CN201210226976A CN102779076B CN 102779076 B CN102779076 B CN 102779076B CN 201210226976 A CN201210226976 A CN 201210226976A CN 102779076 B CN102779076 B CN 102779076B
Authority
CN
China
Prior art keywords
bho
data
browser
information
memory space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active - Reinstated
Application number
CN201210226976.1A
Other languages
English (en)
Other versions
CN102779076A (zh
Inventor
杭程
段培堃
谢志宏
任寰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
3600 Technology Group Co ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210226976.1A priority Critical patent/CN102779076B/zh
Priority to CN201610159007.7A priority patent/CN105843691B/zh
Publication of CN102779076A publication Critical patent/CN102779076A/zh
Application granted granted Critical
Publication of CN102779076B publication Critical patent/CN102779076B/zh
Active - Reinstated legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种浏览器中进程间通信的方法和装置,所述方法包括:浏览器的框架FRAME进程对将传输数据进行序列化操作;所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;所述FRAME进程异步发送第一通知信息到浏览器辅助对象BHO进程,所述通知消息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;接收到所述BHO进程返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;释放分配的第一目标内存空间。因为不同的数据分别存放在不同的相应的内存空间段中,因此BHO进程不会读错数据,提高了浏览器中进程间通信的效率。

Description

一种浏览器中进程间通信的方法和装置
技术领域
本发明涉及通信技术领域,特别是涉及一种浏览器中进程间通信的方法和装置。
背景技术
进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,一个活动的实体。每一个进程都有私有的地址空间,一般情况下,包括代码段、数据段、堆栈段。代码段存储处理器执行的代码;数据段存储变量和进程执行期间使用的动态分配的内存;堆栈段存储着活动过程调用的指令和本地变量。
随着技术的发展,单进程程序在很多场合已不能满足人们的需求。如何编写多进程程序已成为现代程序设计技术的重点。在多进程程序中,数据的交互和共享是不可避免的。例如,某些浏览器支持多进程模式,页面A、页面B不在同一个进程运行,而需要经常在它们之间进行数据共享。
MicrosoftWin32API提供了多种进程通信的方式,如共享内存方式、剪贴板方式等。参照图1,示出了现有技术一种浏览器中以共享内存方式的进程通信方法的流程示意图,其中,进程A和进程B使用同一共享内存区,进程A发送数据1到共享内存区中去,并通知进程B去接收,此时进程B可能正忙于其他事务,而没有及时对共享内存区中的数据进行操作;此时若进程A发送数据2到共享内存中,进程B现在开始处理消息,并对共享内存区中的数据进行操作就会出现读写错乱的问题,影响进程的执行准确率。
为了避免读写错乱的问题,现有一种共享内存方式的进程通信方法采用一定的补救机制,也即,进程A发送数据到共享内存区中,进程B收到消息并操作,在执行完毕后通知进程A,此时进程A才能再次进行对共享内存区的读写。但如果采用上述补救机制,进程A就不能在需要写数据的时候随时写入,而是需要等待进程B执行完毕才可以进行下一次的操作,这就严重影响了进程A的执行效率和进程的通信效率,例如加载浏览器页面的效率等都会受到影响。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何保证浏览器中多个进程间通信不出现读写错乱的情况下提高进程通信的执行效率。
发明内容
本发明所要解决的技术问题是提供一种浏览器中进程间通信的方法和装置,以便在保证进程间通信不出现读写错乱的情况下提高进程通信的执行效率。
为了解决上述问题,本发明公开了一种浏览器中进程间通信的方法,包括:
浏览器的框架FRAME进程对将传输数据进行序列化操作;
所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;
所述FRAME进程异步发送第一通知信息到浏览器辅助对象BHO进程,所述通知消息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;
接收到所述BHO进程返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;
释放分配的第一目标内存空间。
优选的,所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中的步骤包括:
获取所述序列化后的数据的首地址和数据长度信息;
依据所述数据长度信息,在所述FRAME进程的虚拟地址空间中分配第一目标内存空间;
根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第一目标内存空间中。
优选的,所述FRAME进程对将传输数据进行序列化操作的步骤进一步包括:
采用重载运算符对将传输数据进行序列化操作,其中不同数据类型的将传输数据对应不同的重载运算符。
优选的,所述第二通知信息进一步包括:
所述分配的第一目标内存空间的地址信息以及所述FRAME进程标识;
则所述释放所述分配的第一目标内存空间的步骤进一步包括:
依据第二通知信息中的所述FRAME进程标识,确定为对所述FRAME进程进行处理,并获得所述FRAME进程的进程对象句柄;
依据所述FRAME进程的进程对象句柄和第二通知信息中的第一目标内存空间的地址信息,释放所述FRAME进程分配的第一目标内存空间。5、如权利要求1所述的方法,进一步包括:
接收浏览器的BHO进程发送来的第三通知信息,该第三通知信息携带所述BHO进程中分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识;
依据所述BHO进程的进程标识获取该BHO进程的进程对象句柄;
使用该进程对象句柄依据所述第二目标内存空间的地址信息获取数据进行处理;
处理结束后发送第四通知信息到所述BHO进程,通知所述BHO进程浏览器的FRAME进程对所述第二目标内存空间中的数据处理完毕。
优选的,所述第四通知信息进一步包括:
所述分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识。
优选的,所述浏览器辅助对象进程BHO是登录用控件的BHO子进程。
优选的,所述浏览器辅助对象进程BHO是两个或多个BHO进程。
为解决上述问题,本发明还公开了一种浏览器中进程间通信的方法,包括:
浏览器的辅助对象进程BHO对将传输数据进行序列化操作;
所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中;
所述BHO进程同步发送第五通知信息到浏览器的框架FRAME进程,所述通知信息中携带第三目标内存空间的地址信息以及所述BHO进程的进程标识;
接收到所述浏览器的FRAME进程返回的第六通知信息,通知对所述传输数据在所述FRAME进程中处理结束;
释放分配的第三目标内存空间。
优选的,所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中的步骤包括:
获取所述序列化后的数据的首地址和数据长度信息;
依据所述数据长度信息,在所述BHO进程的虚拟地址空间中分配第三目标内存空间;
根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第三目标内存空间中。
优选的,所述第六通知信息进一步包括:
所述分配的第三目标内存空间的地址信息以及所述BHO进程的进程标识;
则所述释放所述分配的第三目标内存空间的步骤包括:
依据第六通知信息中的BHO进程的进程标识,确定为对所述BHO进程进行处理,并获得所述BHO进程的进程对象句柄;
依据所述BHO进程的的进程对象句柄和第六通知信息中的第三目标内存空间的地址信息,释放所述框BHO进程分配的第三目标内存空间。
优选的,进一步包括:
接收浏览器的FRAME进程发送来的第七通知信息,该第七通知信息携带所述FRAME进程中分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识;
依据所述FRAME进程的进程标识获取该FRAME进程的进程对象句柄;
使用该进程对象句柄依据所述第四目标内存空间的地址信息获取数据进行处理;
处理结束后发送第八通知信息到所述FRAME进程,通知所述FRAME进程所述BHO进程对所述第四目标内存空间中的数据处理完毕。
优选的,所述第八通知信息进一步包括:
所述分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识。
优选的,所述浏览器辅助对象进程是登录控件的BHO子进程。
优选的,所述浏览器辅助对象进程BHO是两个或多个BHO进程。
为解决上述问题,本发明还公开了一种浏览器中进程间通信的装置,包括:
第一数据序列化模块,其配置为浏览器的框架进程FRAME对将传输数据进行序列化操作;
第一内存空间获取模块,其配置为所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;
第一通知信息发送模块,其配置为所述FRAME进程异步发送第一通知信息到浏览器辅助对象进程BHO,所述通知信息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;
第二通知信息接收模块,其配置为接收到所述浏览器辅助对象进程BHO返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;
第一内存空间释放模块,其配置为释放分配的第一目标内存空间。
优选的,所述第一内存空间获取模块包括:
第一数据提取单元,其配置为获取所述序列化后的数据的首地址和数据长度信息;
第一内存空间分配单元,其配置为依据所述数据长度信息,在所述FRAME进程的虚拟地址空间中分配第一目标内存空间;
第一数据复制单元,其配置为根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第一目标内存空间中。
优选的,所述第一数据序列化模块包括:
重载单元,其配置为采用重载运算符对将传输数据进行序列化操作,其中不同数据类型的将传输数据对应不同的重载运算符。
优选的,所述第二通知信息进一步包括:
所述分配的第一目标内存空间的地址信息以及所述FRAME进程标识;
则所述第一内存空间释放模块进一步包括:
第二内存释放单元,其配置为:
依据第二通知信息中的所述FRAME进程标识,确定为对所述FRAME进程进行处理,并获得所述FRAME进程的进程对象句柄;
依据所述FRAME进程的进程对象句柄和第二通知信息中的第一目标内存空间的地址信息,释放所述FRAME进程分配的第一目标内存空间。
优选的,进一步包括:
第三通知信息接收模块,其配置为接收浏览器的BHO进程发送来的第三通知信息,该第三通知信息携带所述BHO进程中分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识;
第一进程句柄获取模块,其配置为依据所述BHO进程的进程标识获取该BHO进程的进程对象句柄;
第二数据处理模块,其配置为使用该进程对象句柄依据所述第二目标内存空间的地址信息获取数据进行处理;
第四通知信息发送模块,其配置为处理结束后发送第四通知信息到所述BHO进程,通知所述BHO进程浏览器的FRAME进程对所述第二目标内存空间中的数据处理完毕。
优选的,所述第四通知信息进一步包括:
所述分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识。
优选的,所述浏览器辅助对象进程BHO是登录用控件的BHO子进程。
优选的,所述浏览器辅助对象进程BHO是两个或多个BHO进程。
为解决上述问题,本发明还公开了一种浏览器中进程间通信的装置,包括:
第二数据序列化模块,其配置为浏览器的辅助对象进程BHO对将传输数据进行序列化操作;
第三内存空间获取模块,其配置为所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中;
第五通知信息发送模块,其配置为所述BHO进程同步发送第五通知信息到浏览器的FRAME进程,所述通知信息中携带第三目标内存空间的地址信息以及所述BHO进程的进程标识;
第六通知信息接收模块,其配置为接收到所述浏览器的FRAME进程返回的第六通知信息,通知对所述传输数据在所述FRAME进程中处理结束;
第三内存空间释放模块,其配置为释放分配的第三目标内存空间。
优选的,所述第三内存空间获取模块包括:
第三数据提取单元,其配置为获取所述序列化后的数据的首地址和数据长度信息;
第三内存空间分配单元,其配置为依据所述数据长度信息,在所述BHO进程的虚拟地址空间中分配第三目标内存空间;
第三数据复制单元,其配置为根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第三目标内存空间中。
优选的,所述第六通知信息进一步包括:
所述分配的第三目标内存空间的地址信息以及所述BHO进程的进程标识;
则所第三内存空间释放模块进一步包括:
第三内存释放单元,其配置为:
依据第六通知信息中的BHO进程的进程标识,确定为对所述BHO进程进行处理,并获得所述BHO进程的进程对象句柄;
依据所述BHO进程的的进程对象句柄和第六通知信息中的第三目标内存空间的地址信息,释放所述框BHO进程分配的第三目标内存空间。
优选的,进一步包括:
第七通知信息接收模块,其配置为接收浏览器的FRAME进程发送来的第七通知信息,该第七通知信息携带所述FRAME进程中分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识;
第二进程句柄获取模块,其配置为依据所述FRAME进程的进程标识获取该FRAME进程的进程对象句柄;
第四数据处理模块,其配置为使用该进程对象句柄依据所述第四目标内存空间的地址信息获取数据进行处理;
第八通知信息发送模块,其配置为处理结束后发送第八通知信息到所述FRAME进程,通知所述FRAME进程所述BHO进程对所述第四目标内存空间中的数据处理完毕。
优选的,所述第八通知信息进一步包括:
所述分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识。
优选的,所述浏览器辅助对象进程是登录控件的BHO子进程。
优选的,所述浏览器辅助对象进程BHO是两个或多个BHO进程。
与现有技术相比,本发明具有以下优点:
现有浏览器中多个进程间进行通信是以共享内存方式对数据进行读写,但由于进程往往无法及时从共享内存中获取数据,因此容易造成数据读写错乱的问题。本发明的浏览器框架FRAME进程或浏览器辅助对象进程BHO在发送数据前首先对数据进行序列化操作,然后在其虚拟地址空间中分配第一目标内存空间,并复制序列化后的数据到第一目标内存空间,其次,发送携带有第一目标内存空间地址信息和发送方进程标识的通知信息,接收方进程基于该通知信息即可完成对第一目标内存空间中数据的读写。因为不同的数据(例如数据1和数据2)分别存放在不同的相应的内存空间段中(例如内存空间段1和内存空间段2),这样,即使发送方进程在接收方进程读取数据1之前将数据2写入了内存空间段2,并发消息通知接收方进程去读取数据2,接收方进程也不会读取错数据,并且,发送方进程不必等待接收方进程执行完读取等处理操作,即可发送新的数据,总之,本发明能够在保证读写数据不错乱的同时提高浏览器中进程的执行效率和进程间的通信效率。
另外,本发明将序列化操作完毕后的数据作为内存空间的存储对象,故本发明可以支持无限深度数据的存储,能够方便大量复杂数据结构的交互。
附图说明
图1示出了现有技术一种浏览器中以共享内存方式进程通信方法的流程示意图;
图2示出了本发明所述一种浏览器中进程间通信的方法的实施例1的流程示意图;
图3示出了本发明所述一种浏览器中进程间通信的方法的实施例2的流程示意图;
图4示出了本发明所述一种浏览器中进程间通信的方法的实施例3的流程示意图;
图5示出了本发明所述一种浏览器中进程间通信的方法一应用实施例的流程示意图;
图6示出了本发明所述一种浏览器中进程间通信装置一实施例的结构示意图;
图7示出了本发明所述一种浏览器中进程间通信装置的另一实施例的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面以浏览器框架进程(FRAME)为发送方进程,BHO(BrowserHelperObject,浏览器辅助对象)进程为接收方进程为例,结合附图和具体实施方式对本发明作进一步详细的说明。
参照图2,图2示出了本发明所述一种浏览器中进程间通信方法的实施例一流程示意图,所述方法包括:
步骤201,FRAME进程对将传输数据进行序列化操作。
首先,对将传数据进行序列化操作,创建序列化对象,并在该序列化对象中记录序列化内存的首地址、当前地址和内存总大小等信息;其次,存储将传数据到所述序列化内存中。具体而言,可根据序列化对象中所记录的内存总大小,依次向对应的序列化内存中存放序列化操作完毕后的数据。
例如,对应的序列化内存的内存总大小为4GB,首地址为0x00000000,假设发送给接收方进程的数据有5条,序列化操作后的大小分别为0.1G、0.2G、0.5G、0.6G、0.8G,假设依次往该序列化内存中存放这5条数据,则当前地址随着每次存放而不断变化。
不同的数据类型如字符串、整数等,其结构体是分块的,在内存空间中是不连续的几段空间,本发明实施例通过对数据进行序列化操作后可以把数据原本不连续的几段内存空间变成一段连续的内存地址,因此,本发明实施例可以为结构体中任意深度的数据结构分配内存空间,保证了数据的深层拷贝。
在本发明的另一优选实施例中,所述FRAME进程对将传输数据进行序列化操作的步骤进一步包括:采用重载运算符对将传输数据进行序列化操作,其中不同数据类型的将传输数据对应不同的重载运算符。
本优选实施例使用重载运算符<<对将传数据进行序列化。假设序列化对象的名称为CSerializeObject&obj,则可以采用obj<<m_nId;obj<<m_strGenName等重载运算符。“<<”运算符经过多次重载,可以针对不同的数据类型执行了不同的内存分配。例如针对int类型的数据,分配方式可以为:memcpy(pBuff,&nValue,sizeof(int));而针对string类型的数据,分配方式可以为:_tcscpy(pStr,strValue.c_str())。
对于其他类型的数据所采用的重载运算符请相互参照即可,在此不进行一一列举。
步骤202,FRAME进程在其虚拟地址空间中分配目标内存空间,并复制获取序列化后的数据到目标内存空间中。
在本发明另一优选实施例中,步骤202进一步包括:
获取所述序列化后的数据的首地址和数据长度信息;依据所述数据长度信息,在所述FRAME进程的虚拟地址空间中分配目标内存空间;根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的目标内存空间中。
具体而言:
首先,调用obj.GetBuffer(&lpData,&dwLength)来取得对数据序列化后的内存首地址及长度;
其次,调用VirtualAllocEx(GetCurrentProcess(),NULL,sizeof(TWHMessage),MEM_COMMIT,PAGE_READWRITE)在进程的地址空间上获得一块内存。其中,第一个参数GetCurrentProcess()可以获得进程句柄,第二个参数为NULL表示由函数自己决定分配到哪儿,第三个参数是内存的大小,第四个参数表示分配一块内存空间,第五个参数表示允许读写操作;
最后,调用memcpy将之前序列化的内存拷贝到分配的目标内存空间中。
步骤203,所述FRAME进程异步发送通知信息到BHO进程,所述通知信息中携带目标内存空间的地址信息以及所述FRAME进程的进程标识。
其中,发送给BHO进程的通知信息中携带的目标内存空间地址信息和FRAME进程标识分别为所述目标内存空间的指针和FRAME进程的进程ID。
浏览器辅助对象BHO是作为浏览器对第三方程序员开放交互接口的业界标准,通过简单的代码就可以进入浏览器领域的“交互接口”(INTERACTIVEDInterface)。通过这个接口,程序员可以编写代码获取浏览器的行为,比如“后退”、“前进”、“当前页面”等,利用BHO的交互特性,程序员还可以用代码控制浏览器行为,比如修改替换浏览器工具栏,添加自己的程序按钮等。
BHO对象依托于浏览器主窗口。实际上,这意味着一旦一个浏览器窗口产生,一个新的BHO对象实例就要生成。任何BHO对象与浏览器实例的生命周期是一致的
优选的,本发明实施例所述BHO进程是登录用控件的BHO子进程,该登录控件以按钮的形式添加在浏览器中,用于对浏览器窗口中网页标签中的登录表单进行处理;当浏览器窗口中同时打开了多个标签页面时,其对应的BHO进程亦为多个,其中每一个标签页面就是一个BHO子进程。
步骤204,FRAME进程接收到所述BHO进程返回的通知信息,通知对所述传输数据在所述BHO进程中处理结束。
步骤205,释放分配的第一目标内存空间。
BHO进程对目标内存空间中的数据处理完毕后,FRAME进程释放该目标内存空间以节省系统资源。
在本发明的另一优选实施例中,所述步骤204中BHO进程返回的通知信息中还包括:所述分配的目标内存空间的地址信息以及所述FRAME进程标识;
所述步骤204释放分配的第一目标内存空间进一步包括:
首先,依据BHO返回通知信息中的所述FRAME进程标识,确定为对所述FRAME进程进行处理,并获得所述FRAME进程的进程对象句柄。具体的,调用OpenProcess函数(重要参数为发送方进程ID,即FRAME返回通知信息中的FRAME进程标识),获得发送方的进程对象句柄。
其次,依据所述FRAME进程的进程对象句柄和BHO返回通知信息中的目标内存空间的地址信息,释放所述FRAME进程分配的目标内存空间。具体的,调用VirtualFreeEx函数释放(重要参数为上一步取得的进程句柄,以及之前分配内存的数据指针),并调用CloseHandle函数关闭线程句柄。
在本发明的另一优选实施例中,所述方法还包括:
FRAME进程接收BHO进程发送来的通知信息,该通知信息携带所述BHO进程中分配的目标内存空间的地址信息以及所述BHO进程的进程标识;
依据所述BHO进程的进程标识获取该BHO进程的进程对象句柄;
使用BHO进程对象句柄依据所述BHO进程分配的目标内存空间的地址信息获取数据进行处理;
处理结束后发送通知信息到所述BHO进程,通知所述BHO进程浏览器的FRAME进程对其目标内存空间中的数据处理完毕。
通过以上优选实施例的描述可知,所述FRAME进程和BHO进程可互为发送方进程和接收方进程进行浏览器中进程间的通信。
以上是本发明实施例一所述方案的内容,本领域技术人员应当理解,上述实施例中出现的函数、参数只是为了更好地理解本发明的内容,当本发明被应用于不同的操作系统或应用环境时,完全可根据实际需要选择或命名所需要的函数和参数,本发明对此不作限制。
参见图3,图3示出了本发明所述一种浏览器中进程间通信方法的实施例二的流程示意图。在本实施例中,BHO同步发送数据到Frame,Frame读取数据,最后BHO释放内存,所述方法具体包括:步骤301,BHO进程对将传输数据进行序列化操作。
步骤302,BHO进程在其虚拟地址空间中分配目标内存空间,并复制序列化后的数据到所述目标内存空间中。
具体包括:获取所述序列化后的数据的首地址和数据长度信息;依据所述数据长度信息,在所述BHO进程的虚拟地址空间中分配第三目标内存空间;根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第三目标内存空间中。
例如:LPVOIDpString=StructVirtualAlloc();
步骤303,BHO进程同步发送通知信息到浏览器的FRAME进程,所述通知信息中携带所述目标内存空间的地址信息以及所述BHO进程的进程标识。
步骤304,BHO进程接收到所述浏览器的FRAME进程返回的通知信息,通知对所述传输数据在所述FRAME进程中处理结束。
步骤305,BHO进程释放分配的目标内存空间。
例如,调用函数StructVirtualFree(pString)释放目标内存空间。
优选的,所述FRAME进程返回的通知信息进一步包括:所述分配的目标内存空间的地址信息以及所述BHO进程的进程标识;
所述BHO进程释放分配的目标内存空间进一步包括:
依据FRAME进程返回通知信息中的BHO进程的进程标识,确定为对所述BHO进程进行处理,并获得所述BHO进程的进程对象句柄;
依据所述BHO进程的的进程对象句柄和所述通知信息中的目标内存空间的地址信息,释放所述框BHO进程分配的目标内存空间。
参见图4,图4示出了本发明所述一种浏览器中进程间通信方法的实施例三的流程示意图。在本实施例中,BHO进程同步发送通知信息到Frame进程,Frame进程将数据填充进BHO的目标内存空间,最后BHO进程完成对目标内存空间的处理后释放内存,所述方法具体包括:
步骤401,BHO进程在其虚拟地址空间中分配目标内存空间。
步骤402,BHO进程同步发送通知信息到FRAME进程,所述通知信息中携带所述目标内存空间的地址信息以及所述BHO进程的进程标识。
步骤403,FRAME进程对将传数据进行序列化操作。
存储将传数据到序列化内存中。
步骤404,当FRAME进程接收BHO进程发送的通知信息,复制将传数据到BHO进程的目标内存空间中。
根据BHO进程通知消息中的BHO进程标识获得所述BHO进程的进程对象句柄;
依据所述BHO进程的的进程对象句柄和所述通知信息中的目标内存空间的地址信息,将所述序列化内存中的数据复制到所述目标内存空间中。
步骤405,BHO进程接收到FRAME进程返回的通知信息,通知对所述传输数据在所述FRAME进程中处理结束。
优选的,所述FRAME进程返回的通知信息中还包括BHO进程的目标内存地址信息和BHO进程标识。
步骤406,BHO进程读取目标内存空间中的数据。
步骤407,BHO进程释放目标内存空间。
为了更好理解本发明实施例的内容,下面参见图5,结合一个实例对本发明所述的一种浏览器间通信方法做进一步描述。在本实施例中,主进程FRAME与标签页面A、B、C对应的BHO子进程进行通信,具体包括:
参照表1,示出了本示例中用到的一些函数的功能和参数释义。
表1
下面以FRAME主进程与BHO1子进程的通信过程举例说明,其它BHO子进程与FRAME进程间的通信与其类似,这里不再赘述,该示例具体可以包括如下步骤:
步骤S1、FRAME进程在其进程的虚拟地址空间上分配一个目标内存空间,并将序列化操作完毕的数据存储至该目标内存空间。
LPVOIDlpData=StructVirtualAlloc();
具体包括:
A1:在发送数据前,对要发送的数据进行序列化操作,并将序列化操作完毕后的数据存储至相应的序列化内存,创建CSerializeObject&obj对象,该对象中记录了序列化内存的首地址,当前地址,内存总大小等信息;
A2:在序列化操作完毕之后,调用obj.GetBuffer(&lpData,&dwLength)来取得对数据序列化后的内存首地址及长度;
A3:调用VirtualAllocEx(GetCurrentProcess(),NULL,sizeof(TWHMessage),MEM_COMMIT,PAGE_READWRITE)在进程的虚拟地址空间上获得一个目标内存空间,该目标内存空间的长度与所述序列化内存的长度相等,VirtualAllocEx函数的返回值就是该内存空间段的地址信息;
A4、调用memcpy将之前序列化的内存拷贝到所述目标内存存空间中。
步骤S2、FRAME进程异步发送信息至BHO1进程通知其接收数据,该消息中携带有目标内存空间段的地址信息以及FRAME进程的进程标识。
Browser_PostMessage();
步骤S3、BHO1进程依据通知信息中携带的目标内存空间的地址信息以及FRAME进程的进程标识读取数据。
具体包括:
B1:BHO1进程调用OpenProcess函数(重要参数为FRAME进程进程ID)获得FRAME进程的进程对象句柄;
B2:BHO1进程调用ReadProcessMemory函数(重要参数为上一步的FRAME进程对象句柄及地址信息),获得数据。
B3:调用CloseHandle()函数关闭FRAME进程的进程对象句柄;
B4:BHO1进程处理数据。
步骤S4、BHO1进程向FRAME进程发送数据处理完毕的通知信息WM_BHO_FREEBUFFER,该数据处理完毕消息中携带有该目标内存空间的地址信息以及FRAME进程的进程标识。
步骤S5、FRAME进程依据该数据处理完毕通知信息释放相应的内存。
C1:调用OpenProcess函数(重要参数为FRAME进程ID),获得FRAME进程的进程对象句柄;
C2:调用VirtualFreeEx函数释放(重要参数为上一步取得的FRAME进程句柄,以及目标内存空间的地址信息);
C3:调用CloseHandle()函数关闭FRAME进程的进程对象句柄。
以上对本发明所提供的一种网页标签缩微图的显示方法做了描述,下面参见上述方法实施例的内容,对本发明的装置进行描述:
参见图6,图6示出了本发明所述一种浏览器中进程间通信的装置一实施例的结构示意图,所述装置包括:
第一数据序列化模块610,其配置为浏览器的框架进程FRAME对将传输数据进行序列化操作;
第一内存空间获取模块620,其配置为所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;
第一通知信息发送模块630,其配置为所述FRAME进程异步发送第一通知信息到浏览器辅助对象进程BHO,所述通知信息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;
第二通知信息接收模块640,其配置为接收到所述浏览器辅助对象进程BHO返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;
第一内存空间释放模块650,其配置为释放分配的第一目标内存空间。
优选的,所述第一内存空间获取模块620包括:
第一数据提取单元621,其配置为获取所述序列化后的数据的首地址和数据长度信息;
第一内存空间分配单元622,其配置为依据所述数据长度信息,在所述FRAME进程的虚拟地址空间中分配第一目标内存空间;
第一数据复制单元623,其配置为根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第一目标内存空间中。
优选的,所述第一数据序列化模块610包括:
重载单元611,其配置为采用重载运算符对将传输数据进行序列化操作,其中不同数据类型的将传输数据对应不同的重载运算符。
优选的,所述第二通知信息进一步包括:
所述分配的第一目标内存空间的地址信息以及所述FRAME进程标识;
则所述第一内存空间释放模块650进一步包括:
第二内存释放单元651,其配置为:
依据第二通知信息中的所述FRAME进程标识,确定为对所述FRAME进程进行处理,并获得所述FRAME进程的进程对象句柄;
依据所述FRAME进程的进程对象句柄和第二通知信息中的第一目标内存空间的地址信息,释放所述FRAME进程分配的第一目标内存空间。
优选的,所述装置进一步包括:
第三通知信息接收模块660,其配置为接收浏览器的BHO进程发送来的第三通知信息,该第三通知信息携带所述BHO进程中分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识;
第一进程句柄获取模块670,其配置为依据所述BHO进程的进程标识获取该BHO进程的进程对象句柄;
第二数据处理模块680,其配置为使用该进程对象句柄依据所述第二目标内存空间的地址信息获取数据进行处理;
第四通知信息发送模块690,其配置为处理结束后发送第四通知信息到所述BHO进程,通知所述BHO进程浏览器的FRAME进程对所述第二目标内存空间中的数据处理完毕。
优选的,所述第四通知信息进一步包括:
所述分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识。
优选的,所述浏览器辅助对象进程BHO是登录用控件的BHO子进程。
优选的,所述浏览器辅助对象进程BHO是两个或多个BHO进程。
参见图7,图7示出了本发明所述一种浏览器中进程间通信的装置一实施例的结构示意图,所述装置包括:
第二数据序列化模块710,其配置为浏览器的辅助对象进程BHO对将传输数据进行序列化操作;
第三内存空间获取模块720,其配置为所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中;
第五通知信息发送模块730,其配置为所述BHO进程同步发送第五通知信息到浏览器的FRAME进程,所述通知信息中携带第三目标内存空间的地址信息以及所述BHO进程的进程标识;
第六通知信息接收模块740,其配置为接收到所述浏览器的FRAME进程返回的第六通知信息,通知对所述传输数据在所述FRAME进程中处理结束;
第三内存空间释放模块750,其配置为释放分配的第三目标内存空间。
优选的,所述第三内存空间获取模块750包括:
第三数据提取单元751,其配置为获取所述序列化后的数据的首地址和数据长度信息;
第三内存空间分配单元752,其配置为依据所述数据长度信息,在所述BHO进程的虚拟地址空间中分配第三目标内存空间;
第三数据复制单元753,其配置为根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第三目标内存空间中。
优选的,所述第六通知信息进一步包括:
所述分配的第三目标内存空间的地址信息以及所述BHO进程的进程标识;
则所第三内存空间释放模块750进一步包括:
第三内存释放单元754,其配置为:
依据第六通知信息中的BHO进程的进程标识,确定为对所述BHO进程进行处理,并获得所述BHO进程的进程对象句柄;
依据所述BHO进程的的进程对象句柄和第六通知信息中的第三目标内存空间的地址信息,释放所述框BHO进程分配的第三目标内存空间。
优选的,所述装置进一步包括:
第七通知信息接收模块760,其配置为接收浏览器的FRAME进程发送来的第七通知信息,该第七通知信息携带所述FRAME进程中分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识;
第二进程句柄获取模块770,其配置为依据所述FRAME进程的进程标识获取该FRAME进程的进程对象句柄;
第四数据处理模块780,其配置为使用该进程对象句柄依据所述第四目标内存空间的地址信息获取数据进行处理;
第八通知信息发送模块790,其配置为处理结束后发送第八通知信息到所述FRAME进程,通知所述FRAME进程所述BHO进程对所述第四目标内存空间中的数据处理完毕。
优选的,所述第八通知信息进一步包括:
所述分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识。
优选的,所述浏览器辅助对象进程是登录控件的BHO子进程。
优选的,所述浏览器辅助对象进程BHO是两个或多个BHO进程。
上述本发明实施例中的方法和装置适用于各种网络或者客户端环境中,例如可以实现在诸如个人计算机设备之类的计算机设备中,或者可以实现在诸如移动电话、移动通信设备、个人数字助理(PDA)等其他便携式电子设备或者非便携式电子设备中。因此本领域技术人员要明确的是,本发明的保护范围并不限于PC上运行浏览器中的进程间通信方法和装置,仅是出于描述的简洁和方便而在本发明实施例中采用了PC上运行浏览器中的进程间通信方法和装置进行描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统和/或装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
而且,上文中的“和/或”表示本文既包含了“和”的关系,也包含了“或”的关系,其中:如果方案A与方案B是“和”的关系,则表示某实施例中可以同时包括方案A和方案B;如果方案A与方案B是“或”的关系,则表示某实施例中可以单独包括方案A,或者单独包括方案B。
以上对本发明所提供的一种浏览器中进程间通信的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (22)

1.一种浏览器中进程间通信的方法,其特征在于,包括:
浏览器的框架FRAME进程对将传输数据进行序列化操作;
所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;
所述FRAME进程异步发送第一通知信息到浏览器辅助对象BHO进程,所述通知消息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;
接收到所述BHO进程返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;其中,所述BHO进程是登录用控件的BHO子进程,所述登录用控件以按钮的形式添加在浏览器中,用于对浏览器窗口中网页标签中的登录表单进行处理;当浏览器窗口中同时打开了多个网页标签时,每一个标签页面对应一个BHO子进程;
释放分配的第一目标内存空间。
2.如权利要求1所述的方法,其特征在于,所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中的步骤包括:
获取所述序列化后的数据的首地址和数据长度信息;
依据所述数据长度信息,在所述FRAME进程的虚拟地址空间中分配第一目标内存空间;
根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第一目标内存空间中。
3.如权利要求1所述的方法,其特征在于,所述FRAME进程对将传输数据进行序列化操作的步骤进一步包括:
采用重载运算符对将传输数据进行序列化操作,其中不同数据类型的将传输数据对应不同的重载运算符。
4.如权利要求1所述的方法,其特征在于,所述第二通知信息进一步包括:
所述分配的第一目标内存空间的地址信息以及所述FRAME进程标识;
则所述释放所述分配的第一目标内存空间的步骤进一步包括:
依据第二通知信息中的所述FRAME进程标识,确定为对所述FRAME进程进行处理,并获得所述FRAME进程的进程对象句柄;
依据所述FRAME进程的进程对象句柄和第二通知信息中的第一目标内存空间的地址信息,释放所述FRAME进程分配的第一目标内存空间。
5.如权利要求1所述的方法,其特征在于,进一步包括:
接收浏览器的BHO进程发送来的第三通知信息,该第三通知信息携带所述BHO进程中分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识;
依据所述BHO进程的进程标识获取该BHO进程的进程对象句柄;
使用该进程对象句柄依据所述第二目标内存空间的地址信息获取数据进行处理;
处理结束后发送第四通知信息到所述BHO进程,通知所述BHO进程浏览器的FRAME进程对所述第二目标内存空间中的数据处理完毕。
6.如权利要求5所述的方法,其特征在于,所述第四通知信息进一步包括:
所述分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识。
7.一种浏览器中进程间通信的方法,其特征在于,包括:
浏览器的辅助对象进程BHO对将传输数据进行序列化操作;所述BHO进程是登录用控件的BHO子进程,所述登录用控件以按钮的形式添加在浏览器中,用于对浏览器窗口中网页标签中的登录表单进行处理;当浏览器窗口中同时打开了多个网页标签时,每一个标签页面对应一个BHO子进程;
所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中;
所述BHO进程同步发送第五通知信息到浏览器的框架FRAME进程,所述通知信息中携带第三目标内存空间的地址信息以及所述BHO进程的进程标识;
接收到所述浏览器的FRAME进程返回的第六通知信息,通知对所述传输数据在所述FRAME进程中处理结束;
释放分配的第三目标内存空间。
8.如权利要求7所述的方法,其特征在于,所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中的步骤包括:
获取所述序列化后的数据的首地址和数据长度信息;
依据所述数据长度信息,在所述BHO进程的虚拟地址空间中分配第三目标内存空间;
根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第三目标内存空间中。
9.如权利要求7所述的方法,其特征在于,所述第六通知信息进一步包括:
所述分配的第三目标内存空间的地址信息以及所述BHO进程的进程标识;
则所述释放所述分配的第三目标内存空间的步骤包括:
依据第六通知信息中的BHO进程的进程标识,确定为对所述BHO进程进行处理,并获得所述BHO进程的进程对象句柄;
依据所述BHO进程的进程对象句柄和第六通知信息中的第三目标内存空间的地址信息,释放所述BHO进程分配的第三目标内存空间。
10.如权利要求7所述的方法,其特征在于,进一步包括:
接收浏览器的FRAME进程发送来的第七通知信息,该第七通知信息携带所述FRAME进程中分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识;
依据所述FRAME进程的进程标识获取该FRAME进程的进程对象句柄;
使用该进程对象句柄依据所述第四目标内存空间的地址信息获取数据进行处理;
处理结束后发送第八通知信息到所述FRAME进程,通知所述FRAME进程所述BHO进程对所述第四目标内存空间中的数据处理完毕。
11.如权利要求10所述的方法,其特征在于,所述第八通知信息进一步包括:
所述分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识。
12.一种浏览器中进程间通信的装置,其特征在于,包括:
第一数据序列化模块,其配置为浏览器的框架进程FRAME对将传输数据进行序列化操作;
第一内存空间获取模块,其配置为所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;
第一通知信息发送模块,其配置为所述FRAME进程异步发送第一通知信息到浏览器辅助对象进程BHO,所述通知信息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;所述BHO进程是登录用控件的BHO子进程,所述登录用控件以按钮的形式添加在浏览器中,用于对浏览器窗口中网页标签中的登录表单进行处理;当浏览器窗口中同时打开了多个网页标签时,每一个标签页面对应一个BHO子进程;
第二通知信息接收模块,其配置为接收到所述浏览器辅助对象进程BHO返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;
第一内存空间释放模块,其配置为释放分配的第一目标内存空间。
13.如权利要求12所述的装置,其特征在于,所述第一内存空间获取模块包括:
第一数据提取单元,其配置为获取所述序列化后的数据的首地址和数据长度信息;
第一内存空间分配单元,其配置为依据所述数据长度信息,在所述FRAME进程的虚拟地址空间中分配第一目标内存空间;
第一数据复制单元,其配置为根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第一目标内存空间中。
14.如权利要求12所述的装置,其特征在于,所述第一数据序列化模块包括:
重载单元,其配置为采用重载运算符对将传输数据进行序列化操作,其中不同数据类型的将传输数据对应不同的重载运算符。
15.如权利要求12所述的装置,其特征在于,所述第二通知信息进一步包括:
所述分配的第一目标内存空间的地址信息以及所述FRAME进程标识;
则所述第一内存空间释放模块进一步包括:
第二内存释放单元,其配置为:
依据第二通知信息中的所述FRAME进程标识,确定为对所述FRAME进程进行处理,并获得所述FRAME进程的进程对象句柄;
依据所述FRAME进程的进程对象句柄和第二通知信息中的第一目标内存空间的地址信息,释放所述FRAME进程分配的第一目标内存空间。
16.如权利要求12所述的装置,其特征在于,进一步包括:
第三通知信息接收模块,其配置为接收浏览器的BHO进程发送来的第三通知信息,该第三通知信息携带所述BHO进程中分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识;
第一进程句柄获取模块,其配置为依据所述BHO进程的进程标识获取该BHO进程的进程对象句柄;
第二数据处理模块,其配置为使用该进程对象句柄依据所述第二目标内存空间的地址信息获取数据进行处理;
第四通知信息发送模块,其配置为处理结束后发送第四通知信息到所述BHO进程,通知所述BHO进程浏览器的FRAME进程对所述第二目标内存空间中的数据处理完毕。
17.如权利要求16所述的装置,其特征在于,所述第四通知信息进一步包括:
所述分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识。
18.一种浏览器中进程间通信的装置,其特征在于,包括:
第二数据序列化模块,其配置为浏览器的辅助对象进程BHO对将传输数据进行序列化操作;所述BHO进程是登录用控件的BHO子进程,所述登录用控件以按钮的形式添加在浏览器中,用于对浏览器窗口中网页标签中的登录表单进行处理;当浏览器窗口中同时打开了多个网页标签时,每一个标签页面对应一个BHO子进程;
第三内存空间获取模块,其配置为所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中;
第五通知信息发送模块,其配置为所述BHO进程同步发送第五通知信息到浏览器的FRAME进程,所述通知信息中携带第三目标内存空间的地址信息以及所述BHO进程的进程标识;
第六通知信息接收模块,其配置为接收到所述浏览器的FRAME进程返回的第六通知信息,通知对所述传输数据在所述FRAME进程中处理结束;
第三内存空间释放模块,其配置为释放分配的第三目标内存空间。
19.如权利要求18所述的装置,其特征在于,所述第三内存空间获取模块包括:
第三数据提取单元,其配置为获取所述序列化后的数据的首地址和数据长度信息;
第三内存空间分配单元,其配置为依据所述数据长度信息,在所述BHO进程的虚拟地址空间中分配第三目标内存空间;
第三数据复制单元,其配置为根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第三目标内存空间中。
20.如权利要求18所述的装置,其特征在于,所述第六通知信息进一步包括:
所述分配的第三目标内存空间的地址信息以及所述BHO进程的进程标识;
则所第三内存空间释放模块进一步包括:
第三内存释放单元,其配置为:
依据第六通知信息中的BHO进程的进程标识,确定为对所述BHO进程进行处理,并获得所述BHO进程的进程对象句柄;
依据所述BHO进程的进程对象句柄和第六通知信息中的第三目标内存空间的地址信息,释放所述BHO进程分配的第三目标内存空间。
21.如权利要求18所述的装置,其特征在于,进一步包括:
第七通知信息接收模块,其配置为接收浏览器的FRAME进程发送来的第七通知信息,该第七通知信息携带所述FRAME进程中分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识;
第二进程句柄获取模块,其配置为依据所述FRAME进程的进程标识获取该FRAME进程的进程对象句柄;
第四数据处理模块,其配置为使用该进程对象句柄依据所述第四目标内存空间的地址信息获取数据进行处理;
第八通知信息发送模块,其配置为处理结束后发送第八通知信息到所述FRAME进程,通知所述FRAME进程所述BHO进程对所述第四目标内存空间中的数据处理完毕。
22.如权利要求21所述的装置,其特征在于,所述第八通知信息进一步包括:
所述分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识。
CN201210226976.1A 2012-06-29 2012-06-29 一种浏览器中进程间通信的方法和装置 Active - Reinstated CN102779076B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210226976.1A CN102779076B (zh) 2012-06-29 2012-06-29 一种浏览器中进程间通信的方法和装置
CN201610159007.7A CN105843691B (zh) 2012-06-29 2012-06-29 一种浏览器中进程间通信的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210226976.1A CN102779076B (zh) 2012-06-29 2012-06-29 一种浏览器中进程间通信的方法和装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610159007.7A Division CN105843691B (zh) 2012-06-29 2012-06-29 一种浏览器中进程间通信的方法和装置

Publications (2)

Publication Number Publication Date
CN102779076A CN102779076A (zh) 2012-11-14
CN102779076B true CN102779076B (zh) 2016-04-20

Family

ID=47123995

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201210226976.1A Active - Reinstated CN102779076B (zh) 2012-06-29 2012-06-29 一种浏览器中进程间通信的方法和装置
CN201610159007.7A Expired - Fee Related CN105843691B (zh) 2012-06-29 2012-06-29 一种浏览器中进程间通信的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201610159007.7A Expired - Fee Related CN105843691B (zh) 2012-06-29 2012-06-29 一种浏览器中进程间通信的方法和装置

Country Status (1)

Country Link
CN (2) CN102779076B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981876B (zh) * 2012-11-28 2016-05-04 北京奇虎科技有限公司 图片工具条窗口加载方法和装置
CN104571953B (zh) * 2014-12-25 2017-10-17 珠海金山网络游戏科技有限公司 一种扩展进程中内存地址控制的方法
CN107665173B (zh) * 2016-07-29 2021-05-14 北京小米移动软件有限公司 语音存储方法、语音读取方法及装置
CN109614237A (zh) * 2018-12-10 2019-04-12 浪潮(北京)电子信息产业有限公司 一种资源释放方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1811717A (zh) * 2006-01-10 2006-08-02 杭州东信灵通电子实业公司 通用进程间通信实现方法
CN101075201A (zh) * 2007-06-26 2007-11-21 北京邮电大学 各组件进程之间统一通信的通用消息总线的实现方法
CN101448018A (zh) * 2008-12-26 2009-06-03 中兴通讯股份有限公司 进程间通信方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231638B2 (en) * 2002-12-03 2007-06-12 International Business Machines Corporation Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data
CN101393591B (zh) * 2008-10-27 2010-10-27 中国科学院计算技术研究所 一种发现未知usb病毒的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1811717A (zh) * 2006-01-10 2006-08-02 杭州东信灵通电子实业公司 通用进程间通信实现方法
CN101075201A (zh) * 2007-06-26 2007-11-21 北京邮电大学 各组件进程之间统一通信的通用消息总线的实现方法
CN101448018A (zh) * 2008-12-26 2009-06-03 中兴通讯股份有限公司 进程间通信方法和装置

Also Published As

Publication number Publication date
CN105843691B (zh) 2020-04-10
CN105843691A (zh) 2016-08-10
CN102779076A (zh) 2012-11-14

Similar Documents

Publication Publication Date Title
CN104866383B (zh) 一种接口调用方法、装置及终端
CN112199442B (zh) 分布式批量下载文件方法、装置、计算机设备及存储介质
CN110297973A (zh) 一种基于深度学习的数据推荐方法、装置及终端设备
CN102779076B (zh) 一种浏览器中进程间通信的方法和装置
CN106326129A (zh) 一种程序异常信息生成方法及装置
CN109766085A (zh) 一种处理枚举类型代码的方法及装置
CN110308824A (zh) 一种红外触摸数据的处理方法、系统及相关组件
CN107678872A (zh) 电子白板的处理方法及装置
CN113254445A (zh) 实时数据存储方法、装置、计算机设备及存储介质
CN110442519A (zh) 一种崩溃文件处理方法、装置、电子设备及存储介质
CN116561146A (zh) 数据库日志记录方法、装置、计算机设备及计算机可读存储介质
WO2022156087A1 (zh) 数据血缘关系建立方法、装置、计算机设备及存储介质
CN115455058A (zh) 缓存数据的处理方法、装置、计算机设备及存储介质
CN113094039B (zh) 一种基于数据库表的代码自动生成系统
CN103092479B (zh) 一种通过右键转换信息的方法、装置和系统
CN107862082B (zh) 基于MySQL计数器表的高并发计数方法及web服务器
CN103399776A (zh) 可重用mock创建方法及系统
CN117271122A (zh) 基于cpu和gpu分离的任务处理方法、装置、设备及存储介质
CN110908644A (zh) 状态节点的配置方法、装置、计算机设备和存储介质
CN115562662A (zh) 应用页面的创建方法、装置、计算机设备及存储介质
CN114217790A (zh) 接口编排调度方法、装置、电子设备及介质
CN109948251A (zh) 基于cad的数据处理方法、装置、设备及存储介质
CN111782289B (zh) 基于Adams软件的协同方法、系统、计算机设备及存储介质
CN109101143A (zh) 适用于页面滚动的焦点置顶方法、存储介质、设备及系统
Richter IML-inscribed nets for modeling text processing and data (base) management systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: BEIJING QIHU TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121101

Owner name: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121101

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100016 CHAOYANG, BEIJING TO: 100088 XICHENG, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20121101

Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant after: Qizhi software (Beijing) Co.,Ltd.

Address before: The 4 layer 100016 unit of Beijing city Chaoyang District Jiuxianqiao Road No. 14 Building C

Applicant before: Qizhi software (Beijing) Co.,Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160420

Termination date: 20190629

CF01 Termination of patent right due to non-payment of annual fee
RR01 Reinstatement of patent right

Former decision: Patent right to terminate

Former decision publication date: 20200623

RR01 Reinstatement of patent right
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220819

Address after: No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science and Technology Park, High-tech Zone, Binhai New District, Tianjin 300000

Patentee after: 3600 Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.