WebKit学习之路-入门

接触到这个东西还是在百度校招上,看到要求熟悉WebKit内核,然后一看这个,不行,放弃了对这个岗位的渴望,但是WebKit在我的内心中就留下了。今天也是忽然想在除了iOS的其他领域做一些学习,但是又不想完全的脱离,忽然间就让我想起了WebKit

WebKit虽然有很多的资料,大量的文档,但是庞大的代码体系,并且随着时间的推移,版本的迭代这些文档很多已经失效,对于我这个连前端开发都不会的渣渣来说,学习它简直就像是在做一件跟自己过不去的事情。

这么难就给找一种最有效的方法,没错就是解释给别人听,喷我也好,夸我也好,能看见反馈就会让自己进步。

WebKit是什么?

第一点需要澄清,WebKit是什么?很多人都知道它是一个开源的浏览器,我就说下我的想法,我认为,他不是一个浏览器,而是一个渲染引擎。意思就是开发者写的代码,被Web浏览器的渲染引擎转化为用户熟悉的视觉图像。

WebKit被很多浏览器使用,其中很有代表性的两个Chrome和Safari。如果你还觉得它是一个浏览器的话,我就保留我的意见。

为了支持很多平台,WenKit的代码可以分为跟平台有关和跟平台无关的,像 渲染HTML和CSS,执行JavaScript这些在所有的平台上都一致,但是屏幕绘制,网络这些东西各个平台就不同了,因为各个平台都有自己的方式去做这些事情。

看下各个功能组件:

webkit1webkitwebkitwebkit

在看下下面的工程结构

webkit2webkitwebkitwebkit

所以不要以为WebKit是工程的名字,在工程中,这个名字也是API的存在,JavaScriptCore则是WebKit携带的JavaScript引擎,很多浏览器都给他替换掉了。WebCore负责的就是HTML,CSS,DOM,渲染等。WTF的话就是提供一个工具库的能力。

Layout

布局,我这个对前端不是很了解的人就不说了,但是可以提的一点就是WebKit处理一个HTML文件的话,WebKit会从HTML中产生DOM Tree。

布局相关的规则我这个懵懂的少年就不说了。

布局过程的管理是通过一个C++类FrameView管理的,这个类存在于WebCore中。

总结

短暂的先来一个开端,后面在继续看。想要分析源码,首先我估计我需要先从浏览器是如何工作的这个角度去考虑一下了。

打赏支持我写出更多好文章,谢谢!

打赏作者

打赏支持我写出更多好文章,谢谢!

任选一种支付方式

1 收藏 评论

关于作者:Lastdays

你知道白菜吗?我就是那个猪 个人主页 · 我的文章 · 3 ·   

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部