webkit 中资源请求方法

简介: 同步请求主要是通过FrameLoader的unsigned long loadResourceSynchronously(const ResourceRequest&, ResourceError&, ResourceResponse&, Vector& data);而这个请求又通过ResourceHandle::loadResourceSynchronously来发出请求ResourceHandle::loadResourceSynchronously这个是平台各不相同的函数,由于依赖的的底层网络库不一样,实现也各不相同qt中是QNetworkReplyHandler来实现的。
同步请求主要是通过FrameLoader的
unsigned long loadResourceSynchronously(const ResourceRequest&, ResourceError&, ResourceResponse&, Vector<char>& data);
而这个请求又通过
ResourceHandle::loadResourceSynchronously来发出请求
ResourceHandle::loadResourceSynchronously这个是平台各不相同的函数,由于依赖的的底层网络库不一样,实现也各不相同
qt中是QNetworkReplyHandler来实现的。


而异步的则由
bool ResourceLoader::load(const ResourceRequest& r)
进而通过
DocumentLoader::scheduleArchiveLoad安排一个新的下载活动

 m_pendingSubstituteResources.set(loader, resource);
    deliverSubstituteResourcesAfterDelay();

bool ResourceHandle::start(Frame* frame)
因此如果过滤是url过滤可以在start函数中报错,return false,那么就不会向网络发送请求了。

这些都是一些简单粗浅的分析,主要是为实现adblock plus做准备。


总之,webkit各种图片,脚本同步情况下可以在ResourceHandler:start,异步可以在ResourceHandle:loadResourceSynchronously来过滤
这些过滤只有url信息,而没有服务器返回的mime信息,如果要通过返回的http头进行过滤,那么可以在
SubresourceLoader::didReceiveResponse进行过滤,这是异步的情况下
同步时可以一直等到有响应为止

这些都是资源下载,而一些html文件的请求怎么过滤还没查到。


目录
相关文章
|
3月前
|
JSON 前端开发 JavaScript
关于我认识的请求方式
关于我认识的请求方式有三个
42 0
|
4月前
|
Web App开发 前端开发 JavaScript
浏览器之资源获取优先级(fetchpriority)(一)
浏览器之资源获取优先级(fetchpriority)(一)
|
4月前
|
Web App开发 前端开发 JavaScript
浏览器之资源获取优先级(fetchpriority)(二)
浏览器之资源获取优先级(fetchpriority)(二)
|
C# 数据格式 XML
WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)
原文:WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树) 一、WPF对象级(Window对象)资源的定义与查找 实例一: StaticR...
8044 0
|
5月前
|
Java 应用服务中间件 API
168 python网络编程 - 服务器动态资源请求
168 python网络编程 - 服务器动态资源请求
55 0
|
JavaScript C++
给Webkit内核的浏览器控件增加互交功能
转载请说明出处,谢谢~~       昨天封装了基于webkit的wke浏览器内核,做成了duilib的浏览器控件,实现了浏览功能,但是单单的浏览功能还不满足需求,在我的仿酷狗项目中乐库的功能需要与浏览器互交。
1755 0
|
JSON 数据格式
HttpwebClient的四种请求方式
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。    十年河东十年河西,莫欺少年穷。      本文旨在发布代码,供自己参考,也供大家参考,谢谢。     正题:     HttpWebClient的四种请求方式:Get、Post、Put、Delete     系列代码如下: using System; using System.
1198 0
|
安全 C# Windows
C#调用WebKit内核
原文:C#调用WebKit内核 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013564470/article/details/80255954 系统要求 Windows与.NET框架 由于WebKit库和.NET框架的要求,WebKit .NET只能在Windows系统上运行。
1326 0
|
缓存 C# 容器
静态资源(StaticResource)和动态资源(DynamicResource)
原文:静态资源(StaticResource)和动态资源(DynamicResource) 静态资源(StaticResource)和动态资源(DynamicResource) 资源可以作为静态资源或动态资源进行引用。
1886 0