探索WebKit核心(一)------ 新秀开始
为什么WebKit
现在,研究人员WebKit越来越多的人,我不能逃脱,其中还增加。WebKit也多亏了流行的浏览器和WebOS乱斗。随着Palm WebOS, Chrome OS, Firefox OS和Ubuntu Mobile相继公布,WebOS逐渐成为Android和IOS之外的第三世界,而WebKit也随之从浏览器内核晋升为Mobile OS的内核,除了IE和Firefox之外,市面上叫得上名字的都是基于WebKit发展起来,Chrome, Safari, Opera, 360......。因此。不管你是从事浏览器还是Mobile的开发,WebKit都是不二的选择。
而我眼下是由于须要在WebOS上提供一个相似与Chrome for android那样能够远程debug的功能。而接触到WebKit,随着不断深入。也逐渐步入WebKit的开发正轨,也是想把近期的学习历程记录下来,也是帮助其它朋友进这个大门,WebKit的资料实在不多。
怎样起步
正式开工之前先准备以下几步:
- 学习文章:http://paulirish.com/2013/webkit-for-developers/,当然也有中文版本号:http://www.infoq.com/cn/articles/webkit-for-developers,弄清楚WebKit的几个概念
- 准备一台CPU和硬盘较好的电脑,CPU是为了应付编译。硬盘是为了应付大规模代码的訪问(去年7月份买的mac已不够用,特地为此换了SSD)
- 开发平台最好是Xcode,Visual Studio也行,只是可能会遇到非常多坎、
- 准备一本C++ Primmer Plus放在手边,研究WebKit同一时候顺便把C++也给解决了
- 给予足够的耐心,应付漫长的源代码下载和编译
开工之前的扫盲
WebKit port
![](http://img-my.csdn.net/uploads/201303/28/1364458676_4777.png)
比方。我如今做的远程调试功能,在WebKit里面已在流程上支持,但具体实现上是须要port的。也就导致了仅仅有chrome for android和safari for IOS支持远程调试。
开头介绍的文章中已罗列出哪些点是标准已实现的。哪些点是差异化的,从这里面大概就能估计到须要做哪些东西。
学习平台的选择
后面我会谈开发环境的搭建,基于官方的WebKit。再加上XCode。会感觉手上非常顺滑,不至于像大多数大型开源项目那样在最開始就把你拒之门外。
開始动手
- 升级Mac OSX和Xcode至最新版本号。我的是Mountain Lion 10.8.3和Xcode 4.6。
做这个是由于我的一个哥们用的是lion,用的一样的步骤,但启动后一直报内存訪问错误,升级系统至最新后就解决了。当然,别忘记了xcode command line
- 取得最新代码:svn checkout https://svn.webkit.org/repository/webkit/trunk 当然,这个过程是须要耐心的,特别是下载layout test时,为了将来的一马平川。忍忍吧
- Xcode的菜单File->Workspace Settings->Build->Derived Data Location一栏选择Workspace-relative。并输入WebKitBuild->Done
- Xcode的菜单Product->Scheme->Edit Scheme->选择scheme: All Source(target WebProcess), Exceutable选择WebProcess.app
WebKit也提供了一个MiniBrowser,这就和Safari没关系了。启动方法就是在第四步上的Exceutable选择MiniBrowser.app就可以。
我当初基于的代码会有些其它的问题,这里就不干扰大家了。假设有遇雷的请把错误贴出来。我看看遇到过没。
后面。我会基于源代码,逐步深入。和大家一起探究WebKit内核的奇妙和伟大。