CN102681850B - 一种基于Webkit内核提供网页浏览的方法及装置 - Google Patents

一种基于Webkit内核提供网页浏览的方法及装置 Download PDF

Info

Publication number
CN102681850B
CN102681850B CN201210139290.9A CN201210139290A CN102681850B CN 102681850 B CN102681850 B CN 102681850B CN 201210139290 A CN201210139290 A CN 201210139290A CN 102681850 B CN102681850 B CN 102681850B
Authority
CN
China
Prior art keywords
page
kernel
weblkit
detached process
page object
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.)
Expired - Fee Related
Application number
CN201210139290.9A
Other languages
English (en)
Other versions
CN102681850A (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.)
Beijing Qihoo Technology 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 CN201510145521.0A priority Critical patent/CN104731598B/zh
Priority to CN201210139290.9A priority patent/CN102681850B/zh
Publication of CN102681850A publication Critical patent/CN102681850A/zh
Priority to US14/399,398 priority patent/US10303748B2/en
Priority to PCT/CN2013/074446 priority patent/WO2013166906A1/zh
Application granted granted Critical
Publication of CN102681850B publication Critical patent/CN102681850B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Abstract

本申请提供了一种基于Webkit内核提供网页浏览的方法及装置,以解决浏览器中使用Webbrowser内核控件而带来的安全性弱的问题。所述方法包括:设置一Webkit内核的页面对象导出接口;在第一独立进程中启动Webkit内核;在第二独立进程中调用所述页面对象导出接口创建基于Webkit内核的页面对象;并通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面浏览操作和页面内容加载。本申请能很好地解决浏览器中Webbrowser内核版本落后、安全性薄弱、不支持非微软平台的问题,和直接使用webkit核心导致的技术门槛高、升级困难、安装包过大等问题。

Description

一种基于Webkit内核提供网页浏览的方法及装置
技术领域
本申请涉及网页技术,特别是涉及一种基于Webkit内核提供网页浏览的方法及装置。
背景技术
网页浏览器在全球广泛使用,是一种用于访问互联网获取资讯的应用软件。随着技术的进步和发展,越来越多其他类型的软件,如即时通讯软件、下载软件、甚至输入法等,都开始借助和使用网页浏览器的页面访问能力,实现其软件的某些功能,提供更好的用户体验。
目前的实现方式,大多使用微软提供的Webbrowser对象,通过在进程内实现一个Webbrowser COM对象来访问页面,实现相关功能。
这一技术实现方式存在以下弊端,例如:
Webbrowser是一个安全性较弱的浏览器控件,容易引发安全问题。
发明内容
本申请提供了一种基于Webkit内核提供网页浏览的方法及装置,以解决浏览器中使用Webbrowser内核控件而带来的安全性弱的问题。
为了解决上述问题,本申请公开了一种基于Webkit内核提供网页浏览的方法,包括:
设置一Webkit内核的页面对象导出接口;
在第一独立进程中启动Webkit内核;
在第二独立进程中调用所述页面对象导出接口创建基于Webkit内核的页面对象;并
通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面浏览操作和页面内容加载。
优选地,所述调用所述页面对象导出接口创建基于Webkit内核的页面对象,包括:
获得所述页面对象导出接口提供的工厂方法;
调用所述工厂方法创建工厂对象;
调用所述工厂对象创建基于Webkit内核的页面对象。
优选地,所述通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面内容加载,包括:
通过所述页面对象提供的页面创建方法,调用所述第一独立进程中的Weblkit内核创建页面窗口;
在该页面窗口中进行基于Webkit内核的页面内容加载。
优选地,在第二独立进程中进行所述页面内容加载,
所述加载包括:
根据接收到的http请求获取页面内容;
对获取到的页面内容进行解析;
对解析结果执行js操作;
根据js操作结果建立dom树;
对dom树进行渲染和展现。
优选地,所述页面浏览操作包括:
页面跳转,和/或,页面窗口移动,和/或,页面停止加载,和/或,页面刷新,和/或,页面的前进、后退,和/或,页面销毁。
优选地,所述通过所述页面对象调用所述独立进程中的Weblkit内核,进行基于Webkit内核的页面浏览操作,包括:
通过所述页面对象提供的Navigate方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面跳转操作;
和/或,通过所述页面对象提供的Reposition方法,调用所述独立进程中的Weblkit内核告知所述页面窗口跟随外部窗口的移动而移动;
和/或,通过所述页面对象提供的Stop方法,调用所述独立进程中的Weblkit内核停止在该页面窗口中加载页面内容;
和/或,通过所述页面对象提供的Reload方法,调用所述独立进程中的Weblkit内核器刷新该页面窗口中的页面内容;
和/或,通过所述页面对象提供的GoBack方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面后退操作;
和/或,通过所述页面对象提供的GoForward方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面前进操作;
和/或,通过所述页面对象提供的Destroy方法,调用所述独立进程中的Weblkit内核销毁该页面对象。
优选地,所述通过所述页面对象调用所述第一独立进程中的Weblkit内核,包括:
构造参数对象,并在所述参数对象中填充目标访问的网址和窗口句柄;
将填充后的参数对象作为参数值传递给所述页面对象提供的页面创建方法;
通过调用参数赋值后的页面创建方法,实现与所述独立进程中的Weblkit内核进行通信。
优选地,所述设置一Webkit内核的页面对象导出接口,包括:
通过动态链接库提供Webkit内核的页面对象导出接口。
优选地,调用所述页面对象导出接口之前,还包括:
访问注册表,查找注册表中所述动态链接库的存储路径;
从所述存储路径加载所述动态链接库。
优选地,还包括:
Webkit内核升级后更新所述动态链接库的版本,并将新版本的动态链接库保存到不同于旧版本的存储路径。
优选地,多个第二独立进程从同一存储路径加载同一所述动态链接库。
本申请还提供了一种基于Webkit内核提供网页浏览的装置,包括:
接口导出模块,用于设置一Webkit内核的页面对象导出接口;
内核启动模块,用于在第一独立进程中启动Webkit内核;
第一调用模块,用于在第二独立进程中调用所述页面对象导出接口创建基于Webkit内核的页面对象;并
第二调用模块,用于通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面浏览操作和页面内容加载。
优选地,所述第一调用模块包括:
工厂方法获取子模块,用于获得所述页面对象导出接口提供的工厂方法;
工厂对象创建子模块,用于调用所述工厂方法创建工厂对象;
页面对象创建子模块,用于调用所述工厂对象创建基于Webkit内核的页面对象。
优选地,所述第二调用模块通过所述页面对象提供的页面创建方法,调用所述第一独立进程中的Weblkit内核创建页面窗口,并在该页面窗口中进行基于Webkit内核的页面内容加载。
优选地,在第二独立进程中进行所述页面内容加载,
所述加载包括:
根据接收到的http请求获取页面内容;
对获取到的页面内容进行解析;
对解析结果执行js操作;
根据js操作结果建立dom树;
对dom树进行渲染和展现。
优选地,所述页面浏览操作包括:
页面跳转,和/或,页面窗口移动,和/或,页面停止加载,和/或,页面刷新,和/或,页面的前进、后退,和/或,页面销毁。
优选地,所述第二调用模块包括:
导航调用子模块,用于通过所述页面对象提供的Navigate方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面跳转操作;
和/或,移动调用子模块,用于通过所述页面对象提供的Reposition方法,调用所述独立进程中的Weblkit内核告知所述页面窗口跟随外部窗口的移动而移动;
和/或,停止调用子模块,用于通过所述页面对象提供的Stop方法,调用所述独立进程中的Weblkit内核停止在该页面窗口中加载页面内容;
和/或,刷新调用子模块,用于通过所述页面对象提供的Reload方法,调用所述独立进程中的Weblkit内核器刷新该页面窗口中的页面内容;
和/或,页面后退调用子模块,用于通过所述页面对象提供的GoBack方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面后退操作;
和/或,页面前进调用子模块,用于通过所述页面对象提供的GoForward方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面前进操作;
和/或,销毁调用子模块,用于通过所述页面对象提供的Destroy方法,调用所述独立进程中的Weblkit内核销毁该页面对象。
优选地,所述第二调用模块包括:
构造子模块,用于构造参数对象,并在所述参数对象中填充目标访问的网址和窗口句柄;
参数赋值子模块,用于将填充后的参数对象作为参数值传递给所述页面对象提供的页面创建方法;
页面创建子模块,用于通过调用参数赋值后的页面创建方法,实现与所述独立进程中的Weblkit内核进行通信。
优选地,所述接口导出模块通过动态链接库提供Webkit内核的页面对象导出接口。
优选地,还包括:
路径查找模块,用于访问注册表,查找注册表中所述动态链接库的存储路径;
加载模块,用于从所述存储路径加载所述动态链接库。
优选地,还包括:
更新模块,用于Webkit内核升级后更新所述动态链接库的版本,并将新版本的动态链接库保存到不同于旧版本的存储路径。
优选地,多个第二独立进程通过从同一存储路径加载同一所述动态链接库。
与现有技术相比,本申请包括以下优点:
本申请提出了一种跨进程使用webkit核心实现网页浏览的方法,能很好地解决浏览器中的Webbrowser内核版本落后、安全性薄弱、不支持非微软平台的问题,和直接使用webkit核心导致的技术门槛高、升级困难、安装包过大等问题。
首先,本申请为WebKit内核导出WebAppTabWrapper对象的接口,第三方软件获得WebAppTabWrapper对象后,通过调用该对象的Create方法,通知webkit浏览器创建一个新的页面。网页浏览中进行的http请求,解析返回数据,执行js,建立dom树,完成最后渲染等具体工作都对第三方软件不可见,简化了第三方软件的技术使用难度。第三方软件和真正的页面访问、解析、渲染模块工作在不同进程,进程间隔离很好的保护了第三方软件不受页面不安全因素的影响。因此,本申请能很好地解决浏览器中使用Webbrowser内核而带来的安全性薄弱、容易导致用户安全的问题。
其次,Webkit核心的升级和bug修复等,由dll服务的升级检查功能完成。在进行新版本升级安装时不影响旧版本的运行使用,对第三方软件完全不可见。第三方软件通过访问注册表的某个项目获取新的服务版本dll路径,加载后使用。并且,新旧版本可以同时使用。因此,本申请能很好地解决浏览器中的Webbrowser内核版本落后的问题。
而且,本申请可以简化第三方软件在windows平台和非windows平台使用网页浏览增加软件功能的开发难度,使任意第三方软件可以使用本发明提供的网页访问服务,轻易的访问页面,增强软件用户体验。
当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。
附图说明
图1是本申请实施例所述一种基于webkit核心的跨进程网页浏览方法的流程图;
图2是本申请另一实施例所述基于webkit核心的跨进程网页浏览方法的流程图;
图3是本申请实施例所述一种基于webkit核心的跨进程网页浏览装置的结构图;
图4是本申请另一实施例所述一种基于webkit核心的跨进程网页浏览装置的结构图;
图5是本申请另一实施例所述基于webkit核心的跨进程网页浏览方法的流程图;
图6是本申请另一实施例所述一种基于webkit核心的跨进程网页浏览装置的结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
目前,越来越多其他类型的第三方软件,如即时通讯软件、下载软件、甚至输入法等,都开始借助和使用网页浏览器的页面访问能力,实现其软件的某些功能,提供更好的用户体验。
微软的IE浏览器提供的Webbrowser对象存在较多的弊端,例如:
Webbrowser对象的版本过老限制了很多新的页面技术的使用和展现;
Webbrowser是一个安全性较弱的浏览器核心,容易引发安全问题;
Webbrowser容易被各种流氓软件安装插件,注入代码,引发很多使用问题,比如关闭了fash和java运行,导致相关功能失效。
在第三方软件实现网页浏览的过程中,为了解决IE的Webbrowser内核存在的上述各种问题,本申请提供了一种使用webkit实现网页浏览的方法。其中,所述webkit是Chrome浏览器的核心,webkit是一个开放源代码的浏览器引擎(web browser engine)。
但是,如果在第三方软件中直接使用webkit核心实现网页浏览,存在以下缺陷:
webkit核心接口复杂,技术门槛高,增加了软件利用其实现页面浏览功能的技术门槛;webkit核心代码较多,dll(动态链接库)较大,增加了使用其软件的体积;浏览器版本更新迅速,直接包含webkit核心无法做到快速使用最新技术,规避已知安全问题。
基于此,本申请没有直接使用webkit核心,提供了一种跨进程的页面浏览服务dll,任何第三方软件可以在安装了此种dll服务的系统上获得页面浏览能力,从而简化了使用webkit渲染页面的技术门槛和复杂度。
Webkit作为一个完整的浏览器内核,只负责完成html解析和渲染工作,其它工作如网络连接请求、js解析、外围包装等,都需要第三方软件实现后,webkit才能正常工作。而实现一个良好的http协议栈和js解析器难度巨大,工作复杂。
本申请中的这种页面浏览的dll服务可以理解为一个代理,代理封装了网络连接请求、js解析、外围包装等工作,从而将这些用户不关心又复杂的部分对用户进行了屏蔽;并且,代理还封装了简单的接口来调用几个基本的webkit浏览器操作。第三方软件可以通过这种dll服务实现与webkit核心的通信,用户只需给出url和一个用于承载页面的窗口句柄,就可以得到一个渲染完成的网页。由于网页浏览过程中的很多工作都由dll服务完成,因此简化了第三方软件的开发。
下面通过实施例对本申请所述方法的实现流程进行详细说明。
参照图1,是本申请实施例所述一种基于webkit核心的跨进程网页浏览方法的流程图。
步骤101,通过自定义接口加载动态链接库;
所述自定义接口包括外部接口和内部接口,通过外部接口可以加载动态链接库。
动态链接库(dll服务)提供给第三方软件使用的是外部接口,第三方软件实现这些简单的外部接口后,就可以与动态链接库通信。
动态链接库还提供了Webkit内核的页面对象导出接口,这些内部接口为webkit内核导出的类似IE的Webbrowser对象的接口,但具体的接口数目和使用复杂度要大大低于IE的Webbrowser。而且,传统方法包装webkit需要实现数百个接口,但本申请实施例中第三方软件所需实现的接口数目非常少,但几个基本的浏览器操作都已经包括在其中。
第三方软件实现所述数目较少的自定义接口后,通过自定义接口加载动态链接库dll,具体的加载方法如下:
通过自定义接口访问注册表;
查找注册表中所述动态链接库dll的存储路径;
从所述存储路径加载所述动态链接库dll。
步骤102,调用所述动态链接库来创建页面对象;
通过调用动态链接库提供的内部接口,就可以实现与Webkit内核的通信。
其中,使用工厂模式来创建页面对象。工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。
具体子步骤如下:
子步骤1,调用所述动态链接库来获得工厂方法;
子步骤2,调用所述工厂方法创建工厂对象;
子步骤3,调用所述工厂对象创建页面对象。
步骤103,通过调用所述页面对象中的页面创建方法,通知webkit浏览器创建页面窗口,并完成该页面窗口中页面内容的渲染和展现。
具体子步骤如下:
子步骤1,构造参数对象,并在所述参数对象中填充目标访问的网址和窗口句柄;
子步骤2,将填充后的参数对象作为参数值传递给所述页面对象中的页面创建方法;
子步骤3,通过调用参数赋值后的页面创建方法,通知webkit浏览器创建页面窗口,并完成该页面窗口中页面内容的渲染和展现。
页面对象中提供了页面创建方法,该方法中设有参数,参数赋值为目标访问的网址和窗口句柄后,通过调用该方法即可与webkit内核通信,参数值传给webkit内核,webkit内核按照参数值访问目标网址,并创建页面窗口,完成该页面窗口中页面内容的渲染和展现。
最后,浏览器的相关回调还可通过对应的函数调用通知第三方软件。
下面通过一个具体的例子详细解释上述内容。
接口的内容和用法如下:
提供一个工厂方法,供第三方软件调用:
extern″C″{
DLL_INTERFACE WebAppFactory*GetWebAppFactory();
};
第三方软件可通过LoadLibrary函数加载dll服务(动态链接库),并通过GetProcAddress函数获得工厂方法GetWebAppFactory,并创建工厂对象WebAppFactory,进而得到一个页面对象WebAppTabWrapper,其接口如下:
第三方软件获得WebAppTabWrapper对象后,通过调用该对象提供的Create方法,通知webkit内核的网页浏览服务创建一个新的页面,并调用Navigate方法通知服务进行导航操作,Stop、Reload、GoBack、GoForward则提供基本的页面前进后退、停止加载和刷新功能。第三方软件在不再需要浏览页面时,通过调用Destroy方法销毁页面对象。
具体的,还可以包括以下步骤:
通过调用所述页面对象中的Navigate方法,通知webkit浏览器在该页面窗口中进行页面跳转操作。例如,新创建的页面窗口中,最初访问目标网址显示的欢迎页面的内容,然后通过调用Navigate方法,可以从欢迎页跳转到真正的主页,但是不再创建新的页面窗口,只在同一个页面窗口中进行页面内容的跳转。
通过调用所述页面对象中的Stop方法,通知webkit浏览器停止该页面窗口中页面内容的渲染和展现。
通过调用所述页面对象中的Reload方法,通知webkit浏览器刷新该页面窗口中的页面内容。
通过调用所述页面对象中的GoBack方法,通知webkit浏览器在该页面窗口中进行页面后退操作;
通过调用所述页面对象中的GoForward方法,通知webkit浏览器在该页面窗口中进行页面前进操作。
通过调用所述页面对象中的Destroy方法,通知webkit浏览器销毁该页面对象。
当第三方软件实现如上接口后,webkit浏览器的相关回调将通过对应的函数调用通知第三方软件。具体的工作流程如图2所示:
参照图2,是本申请另一实施例所述基于webkit核心的跨进程网页浏览方法的流程图。
步骤201,第三方软件实现WebAppUIDelegate接口;
所述WebAppUIDelegate接口是dll服务提供给第三方软件使用的外部接口,作为一个较佳实施例,该接口具体地提供了以下接口函数:
各接口函数的说明如下:
OnHandleAccelerator函数提供快捷键回调方法,通知第三方软件用户按下了一组快捷键;
OnOpenURL函数提供打开页面回调方法,通知第三方软件用户尝试开启一个新页面,第三方软件可以允许或禁止;
OnTitleChange函数提供title(标题)改变回调方法,通知第三方软件当前的窗口title文字发生了改变;
OnStatusTextChange函数提供状态栏改变回调方法,通知第三方软件当前的窗口状态栏文字发生了改变;
OnNavigateComplete2函数提供导航完毕回调方法,通知第三方软件导航完成;
OnNavigateError函数提供导航错误回调方法,通知第三方软件导航错误;
OnQuit函数提供退出回调方法,通知第三方软件用户关闭了当前页面或者渲染服务因某种原因退出了;
OnUpdateTargetUrl函数提供目标url更新回调方法,通知第三方软件当前的目标url发生了改变;
OnGetCurrentUrlRsp函数提供获取当前url回调方法,通知第三方软件当前的url;
OnCrashReport函数提供崩溃回调方法,通知第三方软件页面访问服务发生了崩溃;
OnReportMainWindow函数提供主窗口回调方法,通知第三方软件当前页面的主窗口;
OnWebAppJsCall函数提供js回调方法,通知第三方软件,页面请求执行一个外部js调用。
步骤202,通过约定的注册表项目,找到Webapp_proxy.dll所在的路径;
其中,所述Webapp_proxy.dll是动态链接库,即dll服务;
步骤203,加载Webapp_proxy.dll;
如果加载成功,即继续步骤204;如果加载失败,则转到异常处理;
步骤204,使用GetProcAddress函数得到GetWebAppFactory方法;
其中,所述GetWebAppFactory方法为工厂方法;
步骤205,调用GetWebAppFactory方法创建一个工厂对象;
创建的工厂对象为WebAppFactory;
步骤206,调用工厂对象的CreateWebAppTab方法创建一个标签页对象;
其中,所述标签页对象为WebAppTabWrapper;
步骤207,构造一个WebAppCreateParams对象,并填充好目标的url和用于容纳页面的窗口句柄,然后用这个对象作为参数调用标签页对象的Create方法,通知webkit内核创建页面;
其中,所述WebAppCreateParams对象为参数对象;
webkit内核根据目标的url和窗口句柄创建一个新的页面窗口,并完成页面的渲染和展现;
步骤208,如果机器的网络环境正常且url正确,一个新的页面窗口将成为WebAppCreateParams的子窗口,并完成页面的渲染和展现工作,用户可以正常地和这个页面交互。
基于图2的流程,多个第三方软件可以同时加载此接口dll,完成页面浏览,彼此互不影响,互不可见。Webkit核心的升级和bug修复等,由dll服务的升级检查功能完成。在进行新版本升级安装时不影响旧版本的运行使用,对第三方软件完全不可见。第三方软件通过访问注册表的某个项目获取新的服务版本dll路径,加载后使用。并且,新旧版本可以同时使用。
综上所述,本申请实施例为WebKit内核导出WebAppTabWrapper对象的接口,第三方软件获得WebAppTabWrapper对象后,通过调用该对象的Create方法,通知webkit浏览器创建一个新的页面。网页浏览中进行的http请求,解析返回数据,执行js,建立dom树,完成最后渲染等具体工作都对第三方软件不可见,简化了第三方软件的技术使用难度。第三方软件和真正的页面访问、解析、渲染模块工作在不同进程,即实现了跨进程的访问,进程间隔离很好的保护了第三方软件不受页面不安全因素的影响。
其中,所述“进程间隔离”包含两层含义;
其一,dll服务与webkit内核相互隔离,分别工作在不同进程;
其二,第三方软件之间相互隔离,每个第三方软件都可以独立加载dll服务来完成页面浏览,相互之间互不干扰。
而且,基于webkit核心的网页访问服务不受限于微软windows操作系统的版本及操作系统本身,在非windows平台,也能以与上文类似的方式工作,简化了第三方软件进行跨平台版本开发的难度。
总之,本申请提出了一种跨进程使用webkit核心实现网页浏览的方法,能很好地解决IE的Webbrowser内核版本落后、安全性薄弱、不支持非微软平台的问题,和直接使用webkit核心导致的技术门槛高、升级困难、安装包过大等问题。
并且,可以简化第三方软件在windows平台和非windows平台使用网页浏览增加软件功能的开发难度,使任意第三方软件可以使用本发明提供的网页访问服务,轻易的访问页面,增强软件用户体验。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必需的。
基于上述方法实施例的说明,本申请还提供了相应的网页浏览装置实施例。
参照图3,是本申请实施例所述一种基于webkit核心的跨进程网页浏览装置的结构图。
所述网页浏览装置可以包括以下接口和模块:
自定义接口10和加载模块20,所述加载模块20通过自定义接口10加载动态链接库;
第一调用模块30,用于调用所述动态链接库来创建页面对象;
第二调用模块40,用于通过调用所述页面对象中的页面创建方法,通知webkit浏览器创建页面窗口,并完成该页面窗口中页面内容的渲染和展现。
其中,所述第一调用模块30具体可以包括以下子模块:
工厂方法获取子模块,用于调用所述动态链接库来获得工厂方法;
工厂对象创建子模块,用于调用所述工厂方法创建工厂对象;
页面对象创建子模块,用于调用所述工厂对象创建页面对象。
其中,所述第二调用模块40具体可以包括以下子模块:
构造子模块,用于构造参数对象,并在所述参数对象中填充目标访问的网址和窗口句柄;
参数赋值子模块,用于将填充后的参数对象作为参数值传递给所述页面对象中的页面创建方法;
页面创建子模块,用于通过调用参数赋值后的页面创建方法,通知webkit浏览器创建页面窗口,并完成该页面窗口中页面内容的渲染和展现。
其中,所述加载模块20具体可以包括以下子模块:
注册表访问子模块,用于通过自定义接口访问注册表;
路径查找子模块,用于查找注册表中所述动态链接库的存储路径;
加载子模块,用于从所述存储路径加载所述动态链接库。
在另一实施例中,如图4所示:
优选地,所述装置还可以包括:
导航调用模块50,用于通过调用所述页面对象中的Navigate方法,通知webkit浏览器在该页面窗口中进行页面跳转操作。
优选地,所述装置还可以包括:
停止调用模块60,用于通过调用所述页面对象中的Stop方法,通知webkit浏览器停止该页面窗口中页面内容的渲染和展现。
优选地,所述装置还可以包括:
刷新调用模块70,用于通过调用所述页面对象中的Reload方法,通知webkit浏览器刷新该页面窗口中的页面内容。
优选地,所述装置还可以包括:
页面后退调用模块80,用于通过调用所述页面对象中的GoBack方法,通知webkit浏览器在该页面窗口中进行页面后退操作;
页面前进调用模块90,用于通过调用所述页面对象中的GoForward方法,通知webkit浏览器在该页面窗口中进行页面前进操作。
优选地,所述装置还可以包括:
销毁调用模块100,用于通过调用所述页面对象中的Destroy方法,通知webkit浏览器销毁该页面对象。
对于上述图3和图4所示的网页浏览装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1和图2所示方法实施例的部分说明即可。
基于以上内容,本申请还提供了另外一种基于Webkit内核提供网页浏览的方法和装置的实施例,下面分别通过图5和图6进行说明。
参照图5所示,是本申请另一实施例所述基于webkit核心的跨进程网页浏览方法的流程图。
步骤501,设置一Webkit内核的页面对象导出接口;
步骤502,在第一独立进程中启动Webkit内核;
步骤503,在第二独立进程中调用所述页面对象导出接口创建基于Webkit内核的页面对象;
所述第一独立进程和第二独立进程是两个进程,换而言之,页面的浏览和Webkit内核的运行相互独立,互不影响。
具体的,调用所述页面对象导出接口创建基于Webkit内核的页面对象,可包括以下子步骤:
子步骤1,获得所述页面对象导出接口提供的工厂方法;
子步骤2,调用所述工厂方法创建工厂对象;
子步骤3,调用所述工厂对象创建基于Webkit内核的页面对象。
步骤504,通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面浏览操作和页面内容加载。
所述第二独立进程可通过调用所述页面对象实现与第一独立进程中Webkit内核的通信,具体的,所述通过所述页面对象调用所述第一独立进程中的Weblkit内核,可包括以下子步骤:
子步骤1,构造参数对象,并在所述参数对象中填充目标访问的网址和窗口句柄;
子步骤2,将填充后的参数对象作为参数值传递给所述页面对象提供的页面创建方法;
子步骤3,通过调用参数赋值后的页面创建方法,实现与所述独立进程中的Weblkit内核进行通信。
第二独立进程调用Weblkit内核可实现页面浏览操作和页面内容加载,下面分别详细说明具体的页面内容加载过程,以及都有哪些页面浏览操作。
1、页面内容加载
具体的,通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面内容加载,具体可包括以下处理:
通过所述页面对象提供的页面创建方法,调用所述第一独立进程中的Weblkit内核创建页面窗口;
在该页面窗口中进行基于Webkit内核的页面内容加载。
进一步的,在第二独立进程中进行所述页面内容加载;
并且,所述加载包括以下处理步骤:
1)根据接收到的http请求获取页面内容;
2)对获取到的页面内容进行解析;
3)对解析结果执行js操作;
4)根据js操作结果建立dom树;
5)对dom树进行渲染和展现。
2、页面浏览操作
所述页面浏览操作可包括:
页面跳转,和/或,页面窗口移动,和/或,页面停止加载,和/或,页面刷新,和/或,页面的前进、后退,和/或,页面销毁。
进一步地:
对于页面跳转操作,可通过所述页面对象提供的Navigate方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面跳转操作;
对于页面窗口移动操作,可通过所述页面对象提供的Reposition方法,调用所述独立进程中的Weblkit内核告知所述页面窗口跟随外部窗口的移动而移动;
对于页面停止加载操作,可通过所述页面对象提供的Stop方法,调用所述独立进程中的Weblkit内核停止在该页面窗口中加载页面内容;
对于页面刷新操作,可通过所述页面对象提供的Reload方法,调用所述独立进程中的Weblkit内核器刷新该页面窗口中的页面内容;
对于页面的前进操作,可通过所述页面对象提供的GoBack方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面后退操作;
对于页面的后退操作,可通过所述页面对象提供的GoForward方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面前进操作;
对于页面销毁操作,可通过所述页面对象提供的Destroy方法,调用所述独立进程中的Weblkit内核销毁该页面对象。
基于图5实施例的内容,优选地,可通过动态链接库(dll服务)提供Webkit内核的页面对象导出接口,该导出接口是动态链接库提供的用于与Webkit内核通信的内部接口。此外,所述动态链接库还提供了用于与第三方软件通信的外部接口。
进一步地,在第二独立进程调用所述页面对象导出接口创建页面对象之前,还可以包括以下处理:
访问注册表,查找注册表中所述动态链接库的存储路径;
从所述存储路径加载所述动态链接库。
优选地,还可包括以下处理:
Webkit内核升级后更新所述动态链接库的版本,并将新版本的动态链接库保存到不同于旧版本的存储路径。
而且,多个第二独立进程可从同一存储路径加载同一所述动态链接库。
即:在进行新版本升级安装时不影响旧版本的运行使用,新旧版本可以同时使用,对第三方软件完全不可见。并且,多个第三方软件可同时实现基于Webkit内核的网页浏览。
参照图6所示,是本申请另一实施例所述一种基于webkit核心的跨进程网页浏览装置的结构图。
所述基于Webkit内核提供网页浏览的装置,具体可包括以下模块:
接口导出模块61,用于设置一Webkit内核的页面对象导出接口;
内核启动模块62,用于在第一独立进程中启动Webkit内核;
第一调用模块63,用于在第二独立进程中调用所述页面对象导出接口创建基于Webkit内核的页面对象;并
第二调用模块64,用于通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面浏览操作和页面内容加载。
优选地,所述第一调用模块63具体可包括:
工厂方法获取子模块,用于获得所述页面对象导出接口提供的工厂方法;
工厂对象创建子模块,用于调用所述工厂方法创建工厂对象;
页面对象创建子模块,用于调用所述工厂对象创建基于Webkit内核的页面对象。
优选地,所述第二调用模块64可通过所述页面对象提供的页面创建方法,调用所述第一独立进程中的Weblkit内核创建页面窗口,并在该页面窗口中进行基于Webkit内核的页面内容加载。
优选地,在第二独立进程中进行所述页面内容加载,
所述加载包括:
根据接收到的http请求获取页面内容;
对获取到的页面内容进行解析;
对解析结果执行js操作;
根据js操作结果建立dom树;
对dom树进行渲染和展现。
优选地,所述页面浏览操作包括:
页面跳转,和/或,页面窗口移动,和/或,页面停止加载,和/或,页面刷新,和/或,页面的前进、后退,和/或,页面销毁。
优选地,所述第二调用模块64具体可包括:
导航调用子模块,用于通过所述页面对象提供的Navigate方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面跳转操作;
和/或,移动调用子模块,用于通过所述页面对象提供的Reposition方法,调用所述独立进程中的Weblkit内核告知所述页面窗口跟随外部窗口的移动而移动;
和/或,停止调用子模块,用于通过所述页面对象提供的Stop方法,调用所述独立进程中的Weblkit内核停止在该页面窗口中加载页面内容;
和/或,刷新调用子模块,用于通过所述页面对象提供的Reload方法,调用所述独立进程中的Weblkit内核器刷新该页面窗口中的页面内容;
和/或,页面后退调用子模块,用于通过所述页面对象提供的GoBack方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面后退操作;
和/或,页面前进调用子模块,用于通过所述页面对象提供的GoForward方法,调用所述独立进程中的Weblkit内核在该页面窗口中进行页面前进操作;
和/或,销毁调用子模块,用于通过所述页面对象提供的Destroy方法,调用所述独立进程中的Weblkit内核销毁该页面对象。
优选地,所述第二调用模块64还可包括:
构造子模块,用于构造参数对象,并在所述参数对象中填充目标访问的网址和窗口句柄;
参数赋值子模块,用于将填充后的参数对象作为参数值传递给所述页面对象提供的页面创建方法;
页面创建子模块,用于通过调用参数赋值后的页面创建方法,实现与所述独立进程中的Weblkit内核进行通信。
优选地,所述接口导出模块61可通过动态链接库提供Webkit内核的页面对象导出接口。
优选地,所述装置还可包括:
路径查找模块65,用于访问注册表,查找注册表中所述动态链接库的存储路径;
加载模块66,用于从所述存储路径加载所述动态链接库。
优选地,所述装置还可包括:
更新模块67,用于Webkit内核升级后更新所述动态链接库的版本,并将新版本的动态链接库保存到不同于旧版本的存储路径。
优选地,多个第二独立进程通过从同一存储路径加载同一所述动态链接库。
对于上述图6所示的网页浏览装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图5所示方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例可以实施在任何支持图形处理、互联网内容撷取和渲染的装置(或多个装置)上。这些装置包括但不限于个人计算机、集群服务器、移动电话、工作站、嵌入式系统、游戏机、电视、机顶盒,或任何其它支持计算机图形和内容显示的计算装置。这些装置可以包括但不限于拥有执行和储存指令的一个或多个处理器和存储器的装置。这些装置可以包括软件、固件和硬件。软件可以包括一个或多个应用程序和操作系统。硬件可以包括但不限于处理器、存储器及显示器。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上对本申请所提供的一种基于Webkit内核提供网页浏览的方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (22)

1.一种基于Webkit内核提供网页浏览的方法,其特征在于,包括:
设置一Webkit内核的页面对象导出接口,所述页面对象导出接口用于与Webkit内核通信;
在第一独立进程中启动Webkit内核;
在第二独立进程中调用所述页面对象导出接口创建基于Webkit内核的页面对象;并
通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面浏览操作和页面内容加载。
2.根据权利要求1所述的方法,其特征在于,所述调用所述页面对象导出接口创建基于Webkit内核的页面对象,包括:
获得所述页面对象导出接口提供的工厂方法;
调用所述工厂方法创建工厂对象;
调用所述工厂对象创建基于Webkit内核的页面对象。
3.根据权利要求1所述的方法,其特征在于,所述通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面内容加载,包括:
通过所述页面对象提供的页面创建方法,调用所述第一独立进程中的Weblkit内核创建页面窗口;
在该页面窗口中进行基于Webkit内核的页面内容加载。
4.根据权利要求3述的方法,其特征在于,在第二独立进程中进行所述页面内容加载,
所述加载包括:
根据接收到的http请求获取页面内容;
对获取到的页面内容进行解析;
对解析结果执行js操作;
根据js操作结果建立dom树;
对dom树进行渲染和展现。
5.根据权利要求3所述的方法,其特征在于,所述页面浏览操作包括:
页面跳转,和/或,页面窗口移动,和/或,页面停止加载,和/或,页面刷新,和/或,页面的前进、后退,和/或,页面销毁。
6.根据权利要求5所述的方法,其特征在于,所述通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面浏览操作,包括:
通过所述页面对象提供的Navigate方法,调用所述第一独立进程中的Weblkit内核在该页面窗口中进行页面跳转操作;
和/或,通过所述页面对象提供的Reposition方法,调用所述第一独立进程中的Weblkit内核告知所述页面窗口跟随外部窗口的移动而移动;
和/或,通过所述页面对象提供的Stop方法,调用所述第一独立进程中的Weblkit内核停止在该页面窗口中加载页面内容;
和/或,通过所述页面对象提供的Reload方法,调用所述第一独立进程中的Weblkit内核器刷新该页面窗口中的页面内容;
和/或,通过所述页面对象提供的GoBack方法,调用所述第一独立进程中的Weblkit内核在该页面窗口中进行页面后退操作;
和/或,通过所述页面对象提供的GoForward方法,调用所述第一独立进程中的Weblkit内核在该页面窗口中进行页面前进操作;
和/或,通过所述页面对象提供的Destroy方法,调用所述第一独立进程中的Weblkit内核销毁该页面对象。
7.根据权利要求1至6任一所述的方法,其特征在于,所述通过所述页面对象调用所述第一独立进程中的Weblkit内核,包括:
构造参数对象,并在所述参数对象中填充目标访问的网址和窗口句柄;
将填充后的参数对象作为参数值传递给所述页面对象提供的页面创建方法;
通过调用参数赋值后的页面创建方法,实现与所述第一独立进程中的Weblkit内核进行通信。
8.根据权利要求1所述的方法,其特征在于,所述设置一Webkit内核的页面对象导出接口,包括:
通过动态链接库提供Webkit内核的页面对象导出接口。
9.根据权利要求8所述的方法,其特征在于,调用所述页面对象导出接口之前,还包括:
访问注册表,查找注册表中所述动态链接库的存储路径;
从所述存储路径加载所述动态链接库。
10.根据权利要求9所述的方法,其特征在于,还包括:
Webkit内核升级后更新所述动态链接库的版本,并将新版本的动态链接库保存到不同于旧版本的存储路径。
11.根据权利要求10所述的方法,其特征在于:
多个第二独立进程从同一存储路径加载同一所述动态链接库。
12.一种基于Webkit内核提供网页浏览的装置,其特征在于,包括:
接口导出模块,用于设置一Webkit内核的页面对象导出接口,所述页面对象导出接口用于与Webkit内核通信;
内核启动模块,用于在第一独立进程中启动Webkit内核;
第一调用模块,用于在第二独立进程中调用所述页面对象导出接口创建基于Webkit内核的页面对象;并
第二调用模块,用于通过所述页面对象调用所述第一独立进程中的Weblkit内核,进行基于Webkit内核的页面浏览操作和页面内容加载。
13.根据权利要求12所述的装置,其特征在于,所述第一调用模块包括:
工厂方法获取子模块,用于获得所述页面对象导出接口提供的工厂方法;
工厂对象创建子模块,用于调用所述工厂方法创建工厂对象;
页面对象创建子模块,用于调用所述工厂对象创建基于Webkit内核的页面对象。
14.根据权利要求12所述的装置,其特征在于:
所述第二调用模块通过所述页面对象提供的页面创建方法,调用所述第一独立进程中的Weblkit内核创建页面窗口,并在该页面窗口中进行基于Webkit内核的页面内容加载。
15.根据权利要求14所述的装置,其特征在于,在第二独立进程中进行所述页面内容加载,
所述加载包括:
根据接收到的http请求获取页面内容;
对获取到的页面内容进行解析;
对解析结果执行js操作;
根据js操作结果建立dom树;
对dom树进行渲染和展现。
16.根据权利要求14所述的装置,其特征在于,所述页面浏览操作包括:
页面跳转,和/或,页面窗口移动,和/或,页面停止加载,和/或,页面刷新,和/或,页面的前进、后退,和/或,页面销毁。
17.根据权利要求16所述的装置,其特征在于,所述第二调用模块包括:
导航调用子模块,用于通过所述页面对象提供的Navigate方法,调用所述第一独立进程中的Weblkit内核在该页面窗口中进行页面跳转操作;
和/或,移动调用子模块,用于通过所述页面对象提供的Reposition方法,调用所述第一独立进程中的Weblkit内核告知所述页面窗口跟随外部窗口的移动而移动;
和/或,停止调用子模块,用于通过所述页面对象提供的Stop方法,调用所述第一独立进程中的Weblkit内核停止在该页面窗口中加载页面内容;
和/或,刷新调用子模块,用于通过所述页面对象提供的Reload方法,调用所述第一独立进程中的Weblkit内核器刷新该页面窗口中的页面内容;
和/或,页面后退调用子模块,用于通过所述页面对象提供的GoBack方法,调用所述第一独立进程中的Weblkit内核在该页面窗口中进行页面后退操作;
和/或,页面前进调用子模块,用于通过所述页面对象提供的GoForward方法,调用所述第一独立进程中的Weblkit内核在该页面窗口中进行页面前进操作;
和/或,销毁调用子模块,用于通过所述页面对象提供的Destroy方法,调用所述第一独立进程中的Weblkit内核销毁该页面对象。
18.根据权利要求12至17任一所述的装置,其特征在于,所述第二调用模块包括:
构造子模块,用于构造参数对象,并在所述参数对象中填充目标访问的网址和窗口句柄;
参数赋值子模块,用于将填充后的参数对象作为参数值传递给所述页面对象提供的页面创建方法;
页面创建子模块,用于通过调用参数赋值后的页面创建方法,实现与所述第一独立进程中的Weblkit内核进行通信。
19.根据权利要求12所述的装置,其特征在于:
所述接口导出模块通过动态链接库提供Webkit内核的页面对象导出接口。
20.根据权利要求19所述的装置,其特征在于,还包括:
路径查找模块,用于访问注册表,查找注册表中所述动态链接库的存储路径;
加载模块,用于从所述存储路径加载所述动态链接库。
21.根据权利要求20所述的装置,其特征在于,还包括:
更新模块,用于Webkit内核升级后更新所述动态链接库的版本,并将新版本的动态链接库保存到不同于旧版本的存储路径。
22.根据权利要求21所述的装置,其特征在于:
多个第二独立进程通过从同一存储路径加载同一所述动态链接库。
CN201210139290.9A 2012-05-07 2012-05-07 一种基于Webkit内核提供网页浏览的方法及装置 Expired - Fee Related CN102681850B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510145521.0A CN104731598B (zh) 2012-05-07 2012-05-07 一种基于Webkit内核提供网页浏览的方法及装置
CN201210139290.9A CN102681850B (zh) 2012-05-07 2012-05-07 一种基于Webkit内核提供网页浏览的方法及装置
US14/399,398 US10303748B2 (en) 2012-05-07 2013-04-19 Method and device for providing webpage browsing based on web browser engine kernel
PCT/CN2013/074446 WO2013166906A1 (zh) 2012-05-07 2013-04-19 一种基于Webkit内核提供网页浏览的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210139290.9A CN102681850B (zh) 2012-05-07 2012-05-07 一种基于Webkit内核提供网页浏览的方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201510145521.0A Division CN104731598B (zh) 2012-05-07 2012-05-07 一种基于Webkit内核提供网页浏览的方法及装置

Publications (2)

Publication Number Publication Date
CN102681850A CN102681850A (zh) 2012-09-19
CN102681850B true CN102681850B (zh) 2015-05-20

Family

ID=46813827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210139290.9A Expired - Fee Related CN102681850B (zh) 2012-05-07 2012-05-07 一种基于Webkit内核提供网页浏览的方法及装置

Country Status (3)

Country Link
US (1) US10303748B2 (zh)
CN (1) CN102681850B (zh)
WO (1) WO2013166906A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681850B (zh) * 2012-05-07 2015-05-20 北京奇虎科技有限公司 一种基于Webkit内核提供网页浏览的方法及装置
CN103713910B (zh) * 2012-09-28 2018-03-02 腾讯科技(深圳)有限公司 一种检测多核浏览器内核的方法和装置
CN103793282B (zh) * 2012-11-02 2017-08-18 阿里巴巴集团控股有限公司 一种浏览器及其结束标签页的方法
WO2014101486A1 (zh) * 2012-12-25 2014-07-03 北京奇虎科技有限公司 浏览器中插件的播放方法及装置
CN103324671A (zh) * 2013-05-22 2013-09-25 福建联迪商用设备有限公司 一种基于Webkit浏览器的信息存储管理方法及装置
CN104426985B (zh) * 2013-09-06 2019-11-26 腾讯科技(深圳)有限公司 显示网页的方法、装置及系统
CN104809122B (zh) * 2014-01-24 2019-03-26 北京猎豹移动科技有限公司 一种访问网页的方法及装置
CN104077175B (zh) * 2014-06-24 2017-06-27 用友优普信息技术有限公司 数据信息处理方法和数据信息处理系统
CN107092514B (zh) * 2016-08-25 2021-06-22 口碑控股有限公司 一种页面内容展示方法及装置
CN107992301B (zh) * 2017-11-27 2020-02-21 腾讯科技(上海)有限公司 用户界面实现方法、客户端及存储介质
CN110297634A (zh) * 2018-03-23 2019-10-01 山东华软金盾软件股份有限公司 基于webkit内核的应用程序展示方法
CN108509174B (zh) * 2018-06-21 2021-04-16 泰华智慧产业集团股份有限公司 一种基于ie内核跨屏幕全屏显示网页的方法和系统
CN109409032A (zh) * 2018-10-24 2019-03-01 山东超越数控电子股份有限公司 一种安全关键系统的系统内核安全判断方法
CN110286957B (zh) * 2019-05-29 2022-03-11 郑州威科姆科技股份有限公司 一种使用Ocx扩展webkit内核应用的方法
CN113032087B (zh) * 2019-12-25 2024-02-23 亚信科技(南京)有限公司 一种基于Chromium内核的数据交互方法及装置
CN111538553B (zh) * 2020-04-21 2023-04-18 招商局金融科技有限公司 双核Web桌面应用访问处理方法、装置及存储介质
CN113742550B (zh) * 2021-08-20 2024-04-19 广州市易工品科技有限公司 基于浏览器的数据获取方法、装置和系统
CN115061685B (zh) * 2022-06-30 2023-07-21 上海弘玑信息技术有限公司 软件客户端的界面元素定位方法及电子设备、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314510A (zh) * 2011-09-15 2012-01-11 奇智软件(北京)有限公司 一种浏览器控件执行方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020882B1 (en) * 2000-09-14 2006-03-28 International Business Machines Corporation Method, system, and program for remotely manipulating a user interface over a network
AU2002258769A1 (en) * 2001-04-09 2002-10-21 America Online Incorporated Server-based browser system
US8627284B2 (en) * 2009-06-19 2014-01-07 Microsoft Corporation Managed system extensibility
US9058489B2 (en) * 2010-01-25 2015-06-16 Samsung Electronics Co., Ltd. Marking documents with executable text for processing by computing systems
US8689121B2 (en) * 2010-05-06 2014-04-01 Cadence Design Systems, Inc. System and method for management of controls in a graphical user interface
EP2583174A1 (en) * 2010-06-18 2013-04-24 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
CN102163161B (zh) * 2011-04-01 2018-09-25 奇智软件(北京)有限公司 一种进程管理方法及装置
US20120311436A1 (en) * 2011-06-03 2012-12-06 Research In Motion Limited Dynamic display of content using an electronic device
CN102314516B (zh) * 2011-09-22 2014-07-09 惠州Tcl移动通信有限公司 网页处理方法及其移动终端、电子设备
US9460542B2 (en) * 2011-11-15 2016-10-04 Trimble Navigation Limited Browser-based collaborative development of a 3D model
CN102436507B (zh) * 2011-12-28 2014-07-16 奇智软件(北京)有限公司 一种浏览网页的方法及装置
CN102681850B (zh) * 2012-05-07 2015-05-20 北京奇虎科技有限公司 一种基于Webkit内核提供网页浏览的方法及装置
CN103678340B (zh) * 2012-09-07 2016-09-14 腾讯科技(深圳)有限公司 浏览器引擎的运行方法、装置、浏览器及终端

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314510A (zh) * 2011-09-15 2012-01-11 奇智软件(北京)有限公司 一种浏览器控件执行方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《Isolating Web Programs in Modern Browser Architectures》;Charles Reis等;《EuroSys "09 Proceedings of the 4th ACM European conference on Computer systems》;20091231;第219-232页 *

Also Published As

Publication number Publication date
CN102681850A (zh) 2012-09-19
WO2013166906A1 (zh) 2013-11-14
US10303748B2 (en) 2019-05-28
US20150095760A1 (en) 2015-04-02

Similar Documents

Publication Publication Date Title
CN102681850B (zh) 一种基于Webkit内核提供网页浏览的方法及装置
US20190138283A1 (en) Methods and systems for providing a user interface
US7907966B1 (en) System and method for cross-platform applications on a wireless phone
US8615750B1 (en) Optimizing application compiling
US20110283267A1 (en) Test Framework of Visual Components in a Multitenant Database Environment
CN104731598A (zh) 一种基于Webkit内核提供网页浏览的方法及装置
CN104866327B (zh) 一种php开发方法及框架
CN110651252A (zh) 内容管理系统扩展
US20130167128A1 (en) Application Compiling
CN103443763B (zh) 包含对重写虚拟函数的调用的支持的isa桥接
CN107203419A (zh) 应用程序中的模块间调用方法、装置及系统
US20190235998A1 (en) End-to-end user interface component testing
KR20170003578A (ko) 언어-독립형 디스패치를 위한 코드 서비스 기법
US20130227388A1 (en) Persistent Storage of Profile Data for Script Compilation
US20150007278A1 (en) Authentication for single page web interfaces
CN102929656A (zh) 使用浏览器中内置ActiveX插件的方法和客户端
CN102799444B (zh) 跨平台打包程序的方法及装置
WO2018140487A1 (en) System and method for encapsulating computer communications
US9756149B2 (en) Machine-specific instruction set translation
US20090094312A1 (en) Methods and systems for dynamic code extension
US20040157593A1 (en) Modularization for J2ME platform implementation
KR20100087860A (ko) 모바일 웹 어플리케이션 프레임웍, 모바일 단말 및 저장매체
Haja et al. Location, proximity, affinity–the key factors in FaaS
KR20140049824A (ko) 원격 응용 프로그래밍 디버깅시스템 및 그 제어방법
Wells et al. A tuple space web service for distributed programming-Simplifying distributed web services applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20121107

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

Effective date: 20121107

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: 20121107

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.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220713

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY 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.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150520