Webkit之网络模块

 根据项目需要:

介绍下Loader模块和Network模块:

Loader模块是Network模块的客户。Network模块提供了资源的获取和上传功能,获取的资源可能来自网络,本地文件或者缓存。
Network目录下的ResourceHandleClient类是ResourceHandle类的客户,它定义了一些列的虚函数,这些虚函数是ResourceHandle的回调,继承类实现这些接口。ResourceHandleClient类是Network模块提供给其它模块的接口,其它模块可以继承这个类,实现里面的虚函数,进而跟Network模块进行交互。
ResourceHandleClient的接口同网络传输过程息息相关,一般为某一个网络事件对应的回调。下面是其中的一些接口:
void willSendRequest(ResourceHandle*, ResourceRequest&, const ResourceResponse& /*redirectResponse*/)
//一般情况下,在发起网络请求前调用,可以设置特定的http头部,比如user agent等,在重定向请求的时候,也会自动调用

void didSendData(ResourceHandle*, unsigned long long /*bytesSent*/, unsigned long long /*totalBytesToBeSent*/)
//上传数据的时候,在TCP write事件,向对方发送数据的时候调用,loader可以根据这个回调显示上传进度。

void didReceiveResponse(ResourceHandle*, const ResourceResponse&)
//收到第一个响应包,此时至少http的部分头部已经解析,loader根据响应的头部信息请求是否成功等。

void didReceiveData(ResourceHandle*, const char*, int, int /*encodedDataLength*/)
//收到HTTP响应数据,类似tcp的read事件,来响应http数据,Network的设计机制是来一段数据上传一段数据。

void didFinishLoading(ResourceHandle*, double /*finishTime*/)
//加载完成,数据已经完全接收。

void didFail(ResourceHandle*, const ResourceError&)
//加载失败

void didReceiveAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&)
//要求用户鉴权

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
I.WebKit介绍 5 一.WebKit是什么? 5 二.WebKit主要特点和目标 5 三.WebKit主要组成 7 II.WebKit之WebCore介绍 7 一.WebCore所包含的主要内容 7 1.目录结构 7 2.主要数据结构 9 二.一个Http请求在WebCore中的主要流程 13 1.WebKit工作流程 13 2.处理流程 15 3.代码流程 18 三.网络库、图形库、Javascript实现与WebCore的集成 22 III.WebKit之Port介绍 23 一.有关Port方面的概述 23 二.WebKit Port移植实现分析 24 1.WebCore交互接口 24 2.连接模块loader 26 3.显示模块WebView和WebFrame 26 4.Chrome中对Port移植方面的实现 27 5.Android中对Port移植方面的实现 28 6.结论 28 三.如何利用WebKit? 30 1.利用WebKit实现搜索引擎 30 2.利用WebKit实现平台功能 31 3.高性能的渲染工具 31 IV.WebKit之图形库介绍 32 一.WebKit与图形库 32 二.图形库概述及其主要功能 32 三.WebKit与Cario 34 四.WebKit如何支持不同图形库的实现 35 五.WebKit 3D Port实现 39 六.总结 40 V.WebKit网络库介绍 40 一.网络原理 40 1.超文本传输协议 40 2.URL类 41 3.Page 类 42 4.与服务器的连接 45 二.WebKit与CURL网络库 46 VI.WebKit之DOM分析 47 一.DOM原理 47 1.DocView 模型 47 2.抽象网页表示 49 3.DOM解析基本算法 52 二.WebKit DOM代码解析流程 57 VII.WebKit之布局分析 57 一.基本概念 57 1.CSS布局相关标准介绍 58 2.布局页面的基本概念 58 3.如何确定页面元素显示位置 60 4.如何确定页面元素大小 61 5.如何理解z-index的使用 61 6.总结 62 二.WebKit主要布局框架 62 1.基类RenderObject 63 2.子类RenderBox 66 3.子类RenderContainer 67 4.子类RenderFlow 68 5.子类RenderBlock 68 6.子类RenderInline 69 7.子类RenderText 70 8.子类RenderImage 71 9.子类RenderView 71 10.子类RenderButton 72 11.子类RenderTextControl 74 12.子类RenderListBox 77 13.子类RenderTheme 78 14.子类RenderTable、RenderTableRow、RenderTableCol、RenderTableCell 81 15.子类RenderFrame 83 三.CSS属性的描述 84 1.RenderStyle类 84 2.RenderStyle类主要方法 84 四.RenderObject及子类对象的生成 84 1.CSSParser 84 2.CSSStyleSelector类 86 3.构建Render树 86 五.Render树与RenderLayer树 88 1.构建Render树的基本实现流程 88 2.RenderLayer类分析 92 3.构建RenderLayer树 94 4.RenderLayer树与Render树的关系 96 5.RenderLayer树的作用 98

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值