WebKit内核学习之二

自上次成功编译WebKit源码之后,已过去一些时日,为什么没有继续学习的原因就是,个人比较喜欢捣鼓计算机,编译完WebKit源码之后,我就借助工具清除了一下电脑的一些缓存文件,结果产生的后果就是,Ubuntu直接起不来了,实验了各种方法,依然桌面依然没有起来,没办法,只得重新安装系统,来来回回四五次,过程中也出现了各种的问题,也都通过请教和查阅资料,最终解决了,虽然过程崎岖,但是带来的最大的好处就是,我对于搭建工作编译环境,有了进一步的了解,知道该怎样去搭建工作环境了,终于将这个“技术活”转变为“体力活”了。

  在学习WebKit初期,个人认为要大致了解源码的框架结构,知道大的框架目录大致什么作用。

  1. Webkit源代码由三大模块组成:


1). WebCore

2). WebKit

3). JavaScriptCore


WebCore排版引擎核心,WebCore包含主要以下模块:Loader,Parser(DOM,Render), Layout,Paint

WebKit:移植层,主要包含:GUIFileSystem, ThreadText,图片编解码等与平台相关的函数。

JavaScriptCoreJS虚拟机,相对独立,主要用于操作DOMDOMW3C定义的规范,主要用于定义外部可以操作的浏览器内核的接口,而webcore必须实现DOM规范。(具体的DOM规范可以查w3c.)


  1. WebKit分模块介绍(这里简单列出因为能力有限也是初学者)

Webkit平台相关

  1. CURL网络库

  2. libPng,LibJpeg图形处理相关

  3. sqlite小型关系数据库

WebCore核心

  1. Loader加载资源及Cache实现(Curl)

  2. DOM :HTML词法分析与语法分析

  3. DOM :DOM节点与Render节点创建,形成DOM

  4. RenderRender树介绍,RenderBox

  5. Layout:排版介绍

  6. Css Parser模块

  7. Binding-DOMJavascriptCore绑定的功能

JavascriptCore-javascript引擎

  1. API-基本javascript功能

  2. Binding与其它功能绑定的功能,:DOM,C,JNI

  3. DerviedSource自动产生的代码

  4. PCRE-Perl-CompatibleRegular Expressions

  5. KJS-JavascriptKernel


  .页面的整个处理流程—(简单介绍,详细流程在后面笔记中)

  1.     1).用户输入网址后,FrameLoader::load函数会接收到URL

        2).URL请求传给CURL库。

3)CURL发出http请求,得到数据后,传给Loader,开始解析。

4).通过DomBuilderW3Chtml规范生成Dom

5).如果有javascriptJSEngine就通过ECMA-262标准完善Dom

6).在生成DOM树的同时,同步生成Render树。

7).解析完后,调用Layout排版

8).Paint出来

  今天学习总结就先到这里,后续继续学习更新。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值