2013年2月4日

摘要: 文章引用地址:http://blog.csdn.net/dlmu2001/article/details/6164873目录:1.WebKit内核源码分析(一)摘要:在分析内核的时候,Frame是首当其冲的一个类,本文将分析Frame类的代码。2.WebKit内核源码分析(二)摘要:FrameLoader类负责一个Frame的加载,在Frame的流程中起到非常重要的重要,同很多组件都有交互,本文将分析FrameLoader类的代码。3.WebKit内核源码分析(三)摘要:Page类就是用来对应这样的页面请求。Page类是WebKit中非常重要的一个类,它就像内核对外的一个聚合器。4.WebKi 阅读全文
posted @ 2013-02-04 16:10 qq499194341 阅读(3420) 评论(0) 推荐(1) 编辑
 
摘要: 文章引用地址:http://blog.csdn.net/dlmu2001/article/details/62082411. Chrome类在WebKit中的作用浏览器是Web/Wap服务的客户端浏览程序,可向Web/Wap服务器发送各种请求,并对服务器发回的超文本信息和各种多媒体数据格式进行解释、显示和播放,并让用户与此些文件互动。从上面这个定义里面,我简单提炼出了浏览器需要的几个功能件:发送请求(http),解释超文本信息和各种多媒体数据(解析),显示和播放这些信息(排版,渲染,以及可能存在的插件),互动(交互)。这几个模块里面,同平台GUI相关的是排版、渲染和互动。而Chrome类就是W 阅读全文
posted @ 2013-02-04 14:52 qq499194341 阅读(306) 评论(0) 推荐(0) 编辑
 
摘要: 文章引用地址:http://blog.csdn.net/dlmu2001/article/details/5998130语言的解析一般分为词法分析(lexical analysis)和语法分析(Syntax analysis)两个阶段,WebKit中的html解析也不例外,本文主要讨论词法分析。词法分析的任务是对输入字节流进行逐字扫描,根据构词规则识别单词和符号,分词。在WebKit中,有两个类,同词法分析密切相关,它是HTMLToken和HTMLTokenizer类,可以简单将HTMLToken类理解为标记,HTMLTokenizer类理解为词法解析器。HTML词法解析的任务,就是将输入的字 阅读全文
posted @ 2013-02-04 14:34 qq499194341 阅读(590) 评论(0) 推荐(0) 编辑
 
摘要: 文章引用地址:http://blog.csdn.net/dlmu2001/article/details/5941432在WebKit渲染一个页面之前,它需要从网络上(其实也可以从本地文件或者内存加载)加载页面以及和它相关的所有派生资源。同加载资源相关的层有很多,在本文中,我将聚焦于解释WebCore,这一WebKit的主要渲染模块,如何参与到加载过程中的。WebKit有两条加载路线,一条是加载documents到frames里面,另一条是加载派生资源(比如图片和脚本)。下图总结出了这两条路线涉及到的主要对象。加载FramesFrameLoader类负责将documents加载到Frames。 阅读全文
posted @ 2013-02-04 14:07 qq499194341 阅读(217) 评论(0) 推荐(0) 编辑
 
摘要: 文章引用地址:http://blog.csdn.net/dlmu2001/article/details/5938480在“WebCore中的http请求信息维护”中,我们曾经简单介绍过http的原理,并分析了WebCore中对请求信息的维护,这篇文章则分析WebCore对http响应信息的维护。1. 作用ResourceResponse负责维护服务器返回的http响应的信息,包括http的头部、体部及其它信息。2. ResourceResponse类分析ResourceResponse继承自ResourceResponseBase,大部分功能在ResourceResponseBase类中实现 阅读全文
posted @ 2013-02-04 14:02 qq499194341 阅读(222) 评论(0) 推荐(0) 编辑
 
摘要: 文章引用地址:http://blog.csdn.net/dlmu2001/article/details/5936122WebCore内核本身并不实现http协议,它通过调用不同平台的http库,比如Qt的QnetWorkRequest,gtk的soup,或者curl等,来实现http协议的功能。这里将以curl为例,来理解webcore中的请求信息维护。http协议的细节,如果希望深入了解的话,可以参考rfc2616,rfc2617。简单介绍下它的原理,http协议遵循的是一个请求à响应的机制。也就是说,一个url,对应一个请求à响应链。而在网页中,任何资源对应的都是一个 阅读全文
posted @ 2013-02-04 13:48 qq499194341 阅读(223) 评论(0) 推荐(0) 编辑
 
摘要: 文章引用地址:http://blog.csdn.net/dlmu2001/article/details/5929820本文描述的文本资源编解码,针对的是字符串编解码,如UTF-8,GB2312,而非传输编解码(如gzip)。关于字符串编码的理论知识,如果你还不了解,可以参考http://baike.baidu.com/view/1204863.htm。 我们以一个最简单的网页为例,假设服务器上有一个纯链接的页面,没有任何派生资源(image,css,sound,subframe,javascript等)。服务器传送给我们的页面,他们字符串编码是各种各样的,常见的有utf8和gb2312。如果 阅读全文
posted @ 2013-02-04 13:32 qq499194341 阅读(223) 评论(0) 推荐(0) 编辑
 
摘要: 文章引用地址:http://blog.csdn.net/achellies/article/details/6110101Google Chrome是一个优秀的开源的浏览器,其开发过程大量地使用了网上现在成熟稳定的开源代码,目前Chrome所涉及26个开源代码:1、Google Breakpad /src/breakpad 开源的跨开台程序崩溃报告系统。2、Google URL /src/googleurl Google小巧的URL解析整理库。3、Skia /src/skia 矢量图引擎。4、Google v8 /src/v8 Google开源的Ja... 阅读全文
posted @ 2013-02-04 11:08 qq499194341 阅读(271) 评论(0) 推荐(0) 编辑
 
摘要: 文章引用地址:http://blog.csdn.net/spacetiller/article/details/5784461一 . WebKit 简介 Webkit 是一个开放源代码的浏览器引擎 (web browser engine) ,最初的代码来自 KDE 的 KHTML 和 KJS( 均开放源代码 ) 。苹果公司在 Webkit 的基础上做了大量优化改进工作 ,此时的 Apple Webkit 已经和 Webkit 有了不少差别,最后开发出了著名的 Safari ,可以说 Safari 是一个相当成功的产品,但是 Safari 却不是开放源代码的。基于 WebKit 的浏览器产品有: 阅读全文
posted @ 2013-02-04 10:51 qq499194341 阅读(873) 评论(0) 推荐(0) 编辑
 
摘要: 文章引用地址:没找到原文出处作为一个广受好评的浏览器引擎,其网页布局的质量(包括速度、效率、符合标准度等)往往是其关键,那么WebKit究竟是如何布局网页上的所有元素(包括滚动条、文字、图片、按钮、下拉框等)呢?其主要数据结构及流程都包括哪些呢?其布局的基本概念及标准都有哪些呢?下面分别介绍WebKit对其实现及运用。我们首先从关于布局的基本概念及标准的认识开始。一、CSS布局相关标准介绍其实我们对要素的布局都有不同程度的了解如我们使用Office时经常使用对一段文字的居中、靠左等操作,复杂一点有设置编号及文字与图片的环绕对应关系等,其实布局的关键在于确定页面元素的显示位置及大小,而页面中主要 阅读全文
posted @ 2013-02-04 09:52 qq499194341 阅读(179) 评论(0) 推荐(0) 编辑
 
摘要: 文章引用地址:http://blog.chinaunix.net/uid-580722-id-2090489.html在有了对CSS网页布局标准及相关概念的认识之后,我们可以更加深入的理解WebKit究竟是如何实现其网页布局,同时实现对CSS布局标准的支持。毕竟标准归标准,要高效的实现这些标准,不同的实现肯定有其不同的实现方式,就像不同的Web服务器对HTTP协议标准的实现有所不同一样,当然不同的实现也会增加一些自身特有的属性。下面我们从数据结构的角度来了解WebKit中为实现网页布局所设计的主要类结构及其主要方法。一、Render树的构成在我们编写网页及使用JS的时候,大概都知道DOM树及其 阅读全文
posted @ 2013-02-04 09:31 qq499194341 阅读(431) 评论(0) 推荐(0) 编辑