Webkit之Frame, FrameView, WebHTMLView, 与 iFrame标签的关系分析
来源:互联网 发布:阿国网络 编辑:程序博客网 时间:2024/06/10 03:48
1. View之间的上下级关系
webView(最下层)-->WebFrameView-->WebUIScrollView-->WebHtmlView-->FrameView(最上层)
2. 很多html文件里,会经常用到iFrame标签,而iFrame可以支持页面滚动,特意查看了一下iFrame的显示关系。
首先,一个WebView对应一个Page, 一个Page由一个或多个Frame组成,有一个主Frame,对应外层的html文件中的<html>标签。当有Ifrmae存在时,Frame会加载subFrame,组成一个Tree的结构。
如: <html><body><iframe src=""></iframe></body></html>.
如果Frame的m_ownerElement为空,表示主Frame, 如果m_ownerElement不为空,一般指向<iframe>的父节点。
3. Frame主要处理逻辑,会有一个对应的FrameView用于处理Render的显示,由于FrameView会有超过屏幕的情况,所以FrameView一般需要继承自ScrollView类。
FrameView有一个成员叫: RenderObject* mlayoutRootObject; 用于保存Render树的根节点,同时,FrameView有Render树的layout函数入口。
4. 当Frame遇到有<iframe的时候,会调用CreateFrameWithPage来创新子Frame.(主Frame由CreateMainFrameWithPage函数创建).
5. 每个Frame有一个FrameLoader用于加载数据与图片等资源。
FrameLoader维护了三个DocumentLoader对象,分别对应于不同的阶段,m_policyDocumentLoader对应于收到用户load调用,进行policy check阶段,m_provisionalDocumentLoader对应于policy check通过以后,Frame数据还没有到来之前,它会负责startLoadingMainResource的调用。m_documentLoader则是Frame第一个数据到来以后使用的DocumentLoader,这个时候,前一个主Frame的DocumentLoader已经不能再用(user agent开始白屏,刷掉前一个页面的显示)。
- Webkit之Frame, FrameView, WebHTMLView, 与 iFrame标签的关系分析
- IFrame与Frame分析
- frame,iframe,frameset之间的关系与区别
- [复习HTML]frame,iframe,frameset之间的关系与区别
- frame,iframe,frameset之间的关系与区别
- frame,iframe,frameset之间的关系与区别
- HTML frame,iframe,frameset之间的关系与区别
- frame,iframe,frameset之间的关系与区别
- frame,iframe,frameset之间的关系与区别
- frame,iframe,frameset之间的关系与区别
- frame,iframe,frameset之间的关系与区别
- frame,iframe,frameset之间的关系与区别
- frame,iframe,frameset之间的关系与区别
- iframe与frame的区别
- iframe与frame的区别
- frame与iframe的区别
- iframe 与 frame 的区别
- iframe与frame的区别
- 设计技巧:EMI辐射信号强度解析
- JMP - 跳转
- JMP - 跳转
- R.java不存在
- 如何高效利用GitHub
- Webkit之Frame, FrameView, WebHTMLView, 与 iFrame标签的关系分析
- 关于cat >file,cat <file <<EOF
- 【struts2】ActionContext与ServletActionContext
- JCreator 连接数据库 -防止sql漏洞
- 龙贝格积分
- myeclipse 中修改虚拟机的内存
- Linux文件系统简介
- 默然日记20120612
- Sencha Touch2中alert提示bug问题