一种浏览器中的文件下载方法、装置和浏览器的制造方法

文档序号:6542402阅读:118来源:国知局
一种浏览器中的文件下载方法、装置和浏览器的制造方法
【专利摘要】本发明实施例提供了一种浏览器中的文件下载方法、装置和浏览器,所述的方法包括:在第一浏览器内核侧发起对一文件的下载;依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配;如果匹配,由第一浏览器内核侧建立网络连接下载所述预下载文件;如果不匹配,在第一浏览器内核侧阻断对所述预下载文件的下载,并将所述预下载文件的下载信息发送到第二浏览器内核侧的下载组件,由所述下载组件在第二浏览器内核侧下载所述文件。本发明实施例基于第一浏览器内核自身流程进行文件的下载,避免了第一浏览器内核版本不兼容的问题,从而解决了文件下载下载为空、甚至无法下载的问题,提高了下载的效率。
【专利说明】一种浏览器中的文件下载方法、装置和浏览器
【技术领域】
[0001]本发明涉及浏览器的【技术领域】,特别是涉及一种浏览器中的文件下载方法、一种浏览器中的文件下载装置和一种浏览器。
【背景技术】
[0002]浏览器从架构上可以分为两个部分,即内核和外壳。浏览器内核是指浏览器的核心部分,可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS(JavaScript)引擎。渲染引擎主要负责取得网页的内容(包括HTML、XML、图像等)、整理信息(如加入CSS (Cascading Style Sheets,层叠样式表单)等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。JS引擎则是解析Javascript语言,执行Javascript语言来实现网页的动态效果。
[0003]由于原有浏览器下载界面过于简陋、操作不方便、下载速度慢等原因,浏览器经常使用其他下载器接管下载任务。
[0004]但是,由于浏览器内核版本的问题,下载器在下载时容易出现兼容问题,使得下载的文件为空文件,甚至无法下载。

【发明内容】

[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种浏览器中的文件下载方法和相应的一种浏览器中的文件下载装置、一种浏览器。
[0006]依据本发明的一个方面,提供了一种浏览器中的文件下载方法,包括:
[0007]在第一浏览器内核侧发起对一文件的下载;
[0008]依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配;
[0009]如果匹配,由第一浏览器内核侧建立网络连接下载所述预下载文件;
[0010]如果不匹配,在第一浏览器内核侧阻断对所述预下载文件的下载,并将所述预下载文件的下载信息发送到第二浏览器内核侧的下载组件,由所述下载组件在第二浏览器内核侧下载所述文件。
[0011]可选地,所述在第一浏览器内核侧发起对一文件的下载的步骤包括:
[0012]在第一浏览器内核侧从当前网页服务器发送的网页数据中提取内容类型标签;
[0013]判断所述内容类型标签中是否包括指定的文件类型;若是,则发起对该文件类型对应的文件的下载。
[0014]可选地,所述下载黑名单地址中包括使用https协议进行网页资源发送从而进行文件下载的网站,和/或,以post方式进行网页资源发送从而进行文件下载的网站。
[0015]可选地,所述依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配的步骤包括:
[0016]拦截第一浏览器内核侧预下载文件的下载地址;
[0017]采用拦截的预下载文件的下载地址在预置的下载黑名单地址中匹配。
[0018]可选地,执行拦截第一浏览器内核侧预下载文件的下载地址的业务对象包括:
[0019]由第一浏览器内核侧指定匹配组件;
[0020]和/ 或,
[0021]由第二浏览器内核侧的下载组件调用的第一浏览器内核侧指定的浏览器辅助对象。
[0022]可选地,所述拦截第一浏览器内核侧预下载文件的下载地址的步骤包括:
[0023]从预置的下载接口的指定参数中读取第一浏览器内核侧预下载文件的下载地址。
[0024]可选地,所述拦截第一浏览器内核侧预下载文件的下载地址的步骤包括:
[0025]通过指定网页控件调用指定的服务接口 ;
[0026]通过所述指定的服务接口拦截对预置的下载接口中的请求服务方法的调用;
[0027]从所述请求服务器方法指定指针处读取第一浏览器内核侧预下载文件的下载地址。
[0028]可选地,所述下载组件包括浏览器中的独立进程,和/或,第三方的下载组件。
[0029]可选地,还包括:
[0030]当所述下载组件在第二浏览器侧与所述预下载文件不适配时,在所述下载组件进行下载的界面中,增加使用第一浏览器内核进行再请求后的文件下载的入口 ;
[0031]当所述入口被触发时,在第一浏览器内核侧下载所述文件。
[0032]可选地,还包括:
[0033]当所述文件下载完成时,获取针对所述文件的安全检测报告。
[0034]可选地,还包括:
[0035]将所述文件发送至相连的,与所述文件的类型匹配的电子设备侧。
[0036]可选地,所述第一浏览器内核包括Trident内核。
[0037]可选地,所述第二浏览器内核包括非Trident内核。
[0038]可选地,所述非Trident内核包括Wekit内核。
[0039]根据本发明的另一方面,提供了一种浏览器中的文件下载装置,包括:
[0040]发起模块,适于在第一浏览器内核侧发起对一文件的下载;
[0041]匹配模块,适于依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配;如果匹配,则调用第一下载模块,如果不匹配,则调用阻断模块;
[0042]第一下载模块,适于由第一浏览器内核侧建立网络连接下载所述预下载文件;
[0043]阻断模块,适于在第一浏览器内核侧阻断对所述预下载文件的下载;
[0044]发送模块,适于将所述预下载文件的下载信息发送到第二浏览器内核侧的下载组件,由所述下载组件在第二浏览器内核侧下载所述文件。
[0045]可选地,所述发起模块还适于:
[0046]在第一浏览器内核侧从当前网页服务器发送的网页数据中提取内容类型标签;
[0047]判断所述内容类型标签中是否包括指定的文件类型;若是,则发起对该文件类型对应的文件的下载。[0048]可选地,所述下载黑名单地址中包括使用https协议进行网页资源发送从而进行文件下载的网站,和/或,以post方式进行网页资源发送从而进行文件下载的网站。
[0049]可选地,所述阻断模块还适于:
[0050]拦截第一浏览器内核侧预下载文件的下载地址;
[0051]采用拦截的预下载文件的下载地址在预置的下载黑名单地址中匹配。
[0052]可选地,执行拦截第一浏览器内核侧预下载文件的下载地址的业务对象包括:
[0053]由第一浏览器内核侧指定匹配组件;
[0054]和/ 或,
[0055]由第二浏览器内核侧的下载组件调用的第一浏览器内核侧指定的浏览器辅助对象。
[0056]可选地,所述阻断模块还适于:
[0057]从预置的下载接口的指定参数中读取第一浏览器内核侧预下载文件的下载地址。
[0058]可选地,所述阻断模块还适于:
[0059]通过指定网页控件调用指定的服务接口 ;
[0060]通过所述指定的服务接口拦截对预置的下载接口中的请求服务方法的调用;
[0061]从所述请求服务器方法指定指针处读取第一浏览器内核侧预下载文件的下载地址。
[0062]可选地,所述下载组件包括浏览器中的独立进程,和/或,第三方的下载组件。
[0063]可选地,还包括:
[0064]增加模块,适于在所述下载组件在第二浏览器侧与所述预下载文件不适配时,在所述下载组件进行下载的界面中,增加使用第一浏览器内核进行再请求后的文件下载的入Π ;
[0065]下载模块,适于在所述入口被触发时,在第一浏览器内核侧下载所述文件。
[0066]可选地,还包括:
[0067]获取模块,适于当所述文件下载完成时,获取针对所述文件的安全检测报告。
[0068]可选地,还包括:
[0069]发送模块,适于将所述文件发送至相连的,与所述文件的类型匹配的电子设备侧。
[0070]可选地,所述第一浏览器内核包括Trident内核。
[0071]可选地,所述第二浏览器内核包括非Trident内核。
[0072]可选地,所述非Trident内核包括Wekit内核。
[0073]根据本发明的另一方面,提供了一种浏览器,包括:
[0074]发起模块,适于在第一浏览器内核侧发起对一文件的下载;
[0075]匹配模块,适于依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配;如果匹配,则调用第一下载模块,如果不匹配,则调用阻断模块;
[0076]第一下载没空,适于由第一浏览器内核侧建立网络连接下载所述预下载文件;
[0077]阻断模块,适于在第一浏览器内核侧阻断对所述预下载文件的下载;
[0078]发送模块,适于将所述预下载文件的下载信息发送到第二浏览器内核侧的下载组件,由所述下载组件在第二浏览器内核侧下载所述文件。
[0079]本发明实施例在第一浏览器内核侧发起对一文件的下载,在预下载文件的下载地址与一预置的下载黑名单地址匹配时,由第一浏览器内核侧建立网络连接下载该预下载文件,基于第一浏览器内核自身流程进行文件的下载,避免了第一浏览器内核版本不兼容的问题,从而解决了文件下载下载为空、甚至无法下载的问题,提高了下载的效率。
[0080]本发明实施例在第一浏览器内核侧发起对一文件的下载,在预下载文件的下载地址与一预置的下载黑名单地址不匹配时,基于第二浏览器内核的环境采用下载组件进行文件的下载,实现在不同浏览器内核中进行统一下载器,提高了下载的效率。
[0081]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】

【附图说明】
[0082]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0083]图1示出了根据本发明一个实施例的一种浏览器中的文件下载方法实施例1的步骤流程图;
[0084]图2示出了根据本发明一个实施例的一种浏览器中的文件下载方法实施例2的步骤流程图;
[0085]图3示出了根据本发明一个实施例的一种文件下载入口的示例图;
[0086]图4示出了根据本发明一个实施例的一种第一浏览器内核下载界面图;
[0087]图5示出了根据本发明一个实施例的一种浏览器中的文件下载装置实施例1的结构框图;
[0088]图6示出了根据本发明一个实施例的一种浏览器中的文件下载装置实施例2的结构框图;
[0089]图7示出了根据本发明一个实施例的一种浏览器实施例1的结构框图;以及
[0090]图8示出了根据本发明一个实施例的一种浏览器实施例2的结构框图。
【具体实施方式】
[0091]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0092]参照图1,示出了根据本发明一个实施例的一种浏览器中的文件下载方法实施例1的步骤流程图,可以包括如下步骤:
[0093]步骤101,在第一浏览器内核侧发起对一文件的下载;
[0094]需要说明的是,本发明实施例中的浏览器可以包括两个或两个以上的浏览器内核。
[0095]具体地,第一浏览器内核可以包括Trident内核。相对应地,第二浏览器内核可以包括非Trident内核。其中,该非Trident内核可以包括Wekit内核等高性能的浏览器内核,当然,还可以是Gecko内核、Presto内核等等,本发明实施例对此不加以限制。
[0096]在本发明的一种优选实施例中,步骤101可以包括如下子步骤:
[0097]子步骤S11,在第一浏览器内核侧从当前网页服务器发送的网页数据中提取内容类型标签;
[0098]子步骤S12,判断所述内容类型标签中是否包括指定的文件类型;若是,则发起对该文件类型对应的文件的下载。
[0099]浏览器与网页服务器建立网络连接,当连接成功时,浏览器可以向其发送HTTP(Hypertext transfer protocol,超文本传送协议)协议,服务器在接收到请求后,向浏览器返回HTTP协议格式的数据,例如网页的HTML (HyperText Markup Language,超文本标记语言)文本、下载内容等,浏览器解析服务器返回的HTTP协议格式的数据,找到内容类型标签,例如Content-Type,然后根据Content-Type判断是否为下载,若是,则发起下载。
[0100]其中,Content-Type为内容类型标签,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。浏览器遇到特殊的Content-Type,该特殊的Content-Type中包括制定的文件类型,就会判断是下载内容,这些特殊的Content-Type可以包括以下的至少一种application/octet-stream, application/zip, application/x-exe 等等。
[0101]步骤102,依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配;如果匹配,则执行步骤103,如果不匹配,则执行步骤104 ;
[0102]需要说明的是,在第一浏览器内核侧发起对一文件的下载后,该文件可以称之为预下载文件。
[0103]在具体实现中,下载黑名单地址可以为预先收集的,在下载组件中进行下载发生错误的文件下载地址。
[0104]在本发明实施例的一种优选示例中,所述下载黑名单地址中可以包括使用https协议进行网页资源发送从而进行文件下载的网站,和/或,以post方式进行网页资源发送从而进行文件下载的网站。
[0105]HTTPS (全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL (Secure SocketsLayer安全套接层)层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
[0106]IE版本众多IE6-1E11,不同的IE内核(Trident内核)又存在不一致,因此,集成了 IE内核的浏览器,下载器接管诸如https网站,post方式的网站等的下载任务,会造成文件无法下载、下载的文件为空等问题。
[0107]当然,上述下载黑名单地址只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他下载黑名单地址,本发明实施例对此不加以限制。另外,除了上述下载黑名单地址外,本领域技术人员还可以根据实际需要采用其它下载黑名单地址,本发明实施例对此也不加以限制。
[0108]在本发明的一种优选实施例中,步骤102可以包括如下子步骤:
[0109]子步骤S21,拦截第一浏览器内核侧预下载文件的下载地址;
[0110]在具体实现中,执行拦截第一浏览器内核侧预下载文件的下载地址的业务对象可以包括:[0111]由第一浏览器内核侧指定匹配组件;
[0112]和/ 或,
[0113]由第二浏览器内核侧的下载组件调用的第一浏览器内核侧指定的浏览器辅助对象。
[0114]在一种情形中,拦截可以是浏览器内置的功能组件实现的。在另一种情形中,拦截可以是由下载组件做的拦截的话,即基于第二浏览器内核下的下载组件调用了第一浏览器内核的一些浏览器辅助对象BH0(Browser Helper Object),对于第一浏览器侧下的一些文件下载操作进行到了检测后,然后进行拦截。
[0115]在本发明实施例的一种优选示例中,子步骤S21进一步可以包括如下子步骤:
[0116]子步骤S211,从预置的下载接口的指定参数中读取第一浏览器内核侧预下载文件的下载地址。
[0117]在具体实现中,预置的下载接口可以为IDownloadManager接口,在IDownloadManager 接口 中包括 Download 函数。
[0118]在IDownloadManager:: Download 函数,声明如下:
[0119]

HRESULT Download!

IMoniker *pmk,

IBindCtx *pbc,

DWORD dwBindVerb,

LONG grfBINDF,
[0120]

BINDINFO *pBindlnfo

LPCOLESTR pszHeaders,

LPCOLESTR pszRedir,

UINT uiCP
[0121]其中,可以读取pmk和pbc参数,pmk参数对应预下载的文件,通过读取pmk和pbc参数即可获取预下载文件的下载地址,如统一资源定位符(Uniform Resource Locator,URL)等信息。
[0122]例如,读取pmk参数的示例可以如下:
[0123]BSTR bstrUrl=NULL;
[0124]pmk->GetDispIayName(pbc, NULL, &bstrUrl)
[0125]在本发明实施例的一种优选示例中,子步骤S21进一步可以包括如下子步骤:
[0126]子步骤S212,通过指定网页控件调用指定的服务接口 ;
[0127]子步骤S213,通过所述指定的服务接口拦截对预置的下载接口中的请求服务方法的调用;
[0128]子步骤S214,从所述请求服务器方法指定指针处读取第一浏览器内核侧预下载文件的下载地址。
[0129]在具体实现中,在实现的网页控件WebBrowser里面实现指定的服务接口IServiceProvider,从而拦截到对预置的下载接口 IID_IDownloadManager Service的请求服务方法QueryService调用,此时给出实现IDownloadManager接口的类实例指针即可获得预下载文件的下载地址。
[0130]子步骤S22,采用拦截的预下载文件的下载地址在预置的下载黑名单地址中匹配。[0131 ] 在具体实现中,可以通过遍历下载黑名单地址进行匹配。
[0132]可选地,还可以进行传输方式(例如HTTPS,post)的匹配。
[0133]例如,匹配过程可以如下:
[0134]
【权利要求】
1.一种浏览器中的文件下载方法,包括: 在第一浏览器内核侧发起对一文件的下载; 依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配; 如果匹配,由第一浏览器内核侧建立网络连接下载所述预下载文件; 如果不匹配,在第一浏览器内核侧阻断对所述预下载文件的下载,并将所述预下载文件的下载信息发送到第二浏览器内核侧的下载组件,由所述下载组件在第二浏览器内核侧下载所述文件。
2.如权利要求1所述的方法,其特征在于,所述在第一浏览器内核侧发起对一文件的下载的步骤包括: 在第一浏览器内核侧从当前网页服务器发送的网页数据中提取内容类型标签; 判断所述内容类型标签中是否包括指定的文件类型;若是,则发起对该文件类型对应的文件的下载。
3.如权利要求1所述的方法,其特征在于,所述下载黑名单地址中包括使用https协议进行网页资源发送从而进行文件下载的网站,和/或,以post方式进行网页资源发送从而进行文件下载的网站。
4.如权利要求1所述的方法,其特征在于,所述依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配的步骤包括: 拦截第一浏览器内核侧预下载文件的下载地址; 采用拦截的预下载文件的下载地址在预置的下载黑名单地址中匹配。
5.如权利要求4所述的方法,其特征在于,执行拦截第一浏览器内核侧预下载文件的下载地址的业务对象包括: 由第一浏览器内核侧指定匹配组件; 和/或, 由第二浏览器内核侧的下载组件调用的第一浏览器内核侧指定的浏览器辅助对象。
6.如权利要求4或5所述的方法,其特征在于,所述拦截第一浏览器内核侧预下载文件的下载地址的步骤包括: 从预置的下载接口的指定参数中读取第一浏览器内核侧预下载文件的下载地址。
7.如权利要求4或5所述的方法,其特征在于,所述拦截第一浏览器内核侧预下载文件的下载地址的步骤包括: 通过指定网页控件调用指定的服务接口; 通过所述指定的服务接口拦截对预置的下载接口中的请求服务方法的调用; 从所述请求服务器方法指定指针处读取第一浏览器内核侧预下载文件的下载地址。
8.如权利要求1-5任一项所述的方法,其特征在于,所述下载组件包括浏览器中的独立进程,和/或,第三方的下载组件。
9.一种浏览器中的文件下载装置,包括: 发起模块,适于在第一浏览器内核侧发起对一文件的下载; 匹配模块,适于依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配;如果匹配,则调用第一下载模块,如果不匹配,则调用阻断模块; 第一下载模块,适于由第一浏览器内核侧建立网络连接下载所述预下载文件;阻断模块,适于在第一浏览器内核侧阻断对所述预下载文件的下载; 发送模块,适于将所述预下载文件的下载信息发送到第二浏览器内核侧的下载组件,由所述下载组件在第二浏览器内核侧下载所述文件。
10.一种浏览器,包括: 发起模块,适于在第一浏览器内核侧发起对一文件的下载; 匹配模块,适于依据预下载文件的下载地址与一预置的下载黑名单地址进行匹配;如果匹配,则调用第一下载模块,如果不匹配,则调用阻断模块; 第一下载没空,适于由第一浏览器内核侧建立网络连接下载所述预下载文件; 阻断模块,适于在第一浏览器内核侧阻断对所述预下载文件的下载; 发送模块,适于将所述预下载文件的下载信息发送到第二浏览器内核侧的下载组件,由所述下载组件在第二浏览器内核侧下载所述文件。
【文档编号】G06F9/445GK103942277SQ201410126398
【公开日】2014年7月23日 申请日期:2014年3月31日 优先权日:2014年3月31日
【发明者】党壮 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1