六 . 编译与调试
在 ubuntu-10.04 上编译 Webkit ,所用的版本 r60742 ,基于 Qt : 安装 sudo apt-get install libxslt-dev gperf bison libsqlite3-dev flex libqt4-dev build-essential subversion libenchant-dev libXt-dev ;如果有其他库没有安装,根据提示,用 apt-get install 安装,如果不知道包的名称,可以用 apt-get search NAME 搜索。
进到 WebKit 目录下,开始编译: ( 以下默认为此目录 )
QTDIR=/usr/share/qt4/ ./WebKitTools/Scripts/build-webkit --qt --debug
如果你只使用 WebKit 而不管内部结构,可以不用 --debug 选项;
如果是第一次编译,而且你用的机器性能又一般,那么时间会长一点;
中间可能出现错误,比如文件找不到,那么你要看看是哪个包的文件,要将这个包安装一下,诸如此类。
编译成功之后,会有提示信息
==================================================
WebKit is now built (1h:04m:28s).
To run QtLauncher with this newly-built code, use the
"WebKit/WebKitTools/Scripts/run-launcher" script.
==================================================
然后可用脚本 run-launcher 运行。
调试来查看 WebKit 的工作过程:
脚本 run-launcher 实际的运行程序为: ./WebKitBuild/Debug/bin/QtTestBrowser ;
程序源代码在: ./WebKitTools/QtTestBrowser/ ;
以 www.baidu.com 为例,查看调试过程:
对 WebCore 内部的断点设置,需要在程序运行过程中设定,因为 so 库的符号表是运行时加载的(不然就不叫"动态链接"了),比如先用 break main 在 main 程序停住,然后设置 WebCore::FrameLoader::load(...) ,可以设置的标志是:当你输入部分断点函数名,连续按 2 下 Tab 键,会有提示;
在某个断点停住之后,可以用 bt 查看此函数之前的调用关系,比如调用过程中的函数。
另外,如果编译 GTK 版本的 WebKit, 首先确保 Gtk+-2.0 安装完毕,然后用类似的方法: ./WebKitTools/Scripts/build-webkit --qt --debug 即可。
七 . 主要概念类图
WebKit 中的类有几千个之多,这里只是将 WebKit 特别是 WebCore 中主要的一些类及其关系勾画出来,希望能给大家以借鉴。
八 . 参考文献及资源链接 对 webKit 探讨比较全面和深入的,首推侯炯的《 WebKit 研究报告》,分 I 、 II 两部分,在网上可以轻易搜到;
另外, Jelly's Blog 中也对 WebKit 有比较好的探讨,包括基础介绍、架构以及几个重要的专题,地址是: http://www.jjos.org/tag/webkit ;
还有一些正宗的文章,来自 WebKit 官方网站, www.webkit.org 的 Surfin 博客:(英文,另外注意发布时间) WebKit 页面缓存 I: http://webkit.org/blog/427/webkit-page-cache-i-the -basics/ 样式滚动条: http://webkit.org/blog/363/styling-scrollbars/ 3D 变换 : http://webkit.org/blog/386/3d-transforms/ CSS 单元:http://webkit.org/blog/57/css-units/ CSS 动画I :http://webkit.org/blog/138/css-animation/ CSS 动画II:http://webkit.org/blog/324/css-animation-2 CSS 变换:http://webkit.org/blog/130/css-transforms/ CSS 反射:http://webkit.org/blog/182/css-reflections/ CSS Mask : http://webkit.org/blog/181/css-masks/ CSS 画布: http://webkit.org/blog/176/css-canvas-drawing/ CSS 梯度: http://webkit.org/blog/175/introducing-css-gradien ts/ CSS 背景裁剪: http://webkit.org/blog/164/background-clip-text/ Inspector 介绍: http://webkit.org/blog/41/introducing-the-web-insp ector/ Inspector 重新设计: http://webkit.org/blog/197/web-inspector-redesign/ 完全通过 Acid3 测试: http://webkit.org/blog/280/full-pass-of-acid-3/ 介绍新的 JavaScript 引擎-- SquirrelFish :
http://webkit.org/blog/189/announcing-squirrelfish / 再次探讨 SquirrelFish : http://webkit.org/blog/214/introducing-squirrelfis h-extreme/ Windows 系统的 GDI 文字: http://webkit.org/blog/168/gdi-text-on-windows/ RefPtr 与 PassRefPtr 基础: http://webkit.org/coding/RefPtr.html webkit 页面加载过程 http://webkit.org/blog/1188/how-webkit-loads-a-web -page/ 客户端数据存储: http://webkit.org/blog/126/webkit-does-html5-clien t-side-database-storage/ Rendering : http://webkit.org/blog/page/19/ 背景音乐: http://webkit.org/blog/96/background-music/ Text Stroke : http://webkit.org/blog/85/introducing-text-stroke/ 理解 html,xml,xhtml:http://webkit.org/blog/68/understan ding-html-xml-and-xhtml/ Strange Medium ,关于 Text : http://webkit.org/blog/67/strange-medium/ 高 DPI1 : http://webkit.org/blog/55/high-dpi-web-sites/ 高 DPI2 : http://webkit.org/blog/56/high-dpi-part-2/ Webcore 目录结构: http://webkit.org/blog/42/webcore-directory-struct ure/ 按钮: http://webkit.org/blog/28/buttons/ Javascript 与 DOM 的兼容: http://webkit.org/blog/27/javascript-and-dom-compa tibility/ Webkit 代码风格: http://webkit.org/blog/25/webkit-coding-style-guid elines/ Safari 内存泄漏的改进: http://webkit.org/blog/24/update-on-memory-leaks/ Safari 内存泄漏的检查: http://webkit.org/blog/20/were-hunting-memory-leak s/ 哈希表 1 : http://webkit.org/blog/6/hashtables-part-1/ 哈希表 2: http://webkit.org/blog/8/hashtables-part-2/ (全文完,文中对错,欢迎讨论)
发表评论
-
GDI中获取字符串精确绘制范围的两种做法比较
2012-07-06 09:52 651作者:朱金灿 ... -
使用正则表达式处理邮件模板中的参数
2012-07-06 09:45 649软件开发过程中,经常使用JavaMail给用户发送邮件;大 ... -
正则表达式 cscope emacs svn putty emacs
2012-07-06 09:38 765我一懒人,图自己方便。要是路过的朋友们用上了的话,请给懒人 ... -
C# winform 启动画面支持多种 framework
2012-07-06 09:30 893using System; using System.Co ... -
18位身份证验证代码
2012-07-05 20:45 789首先php版本的: /** * 身份证 * * @para ... -
在Flex组件上显示手型的鼠标
2012-07-03 13:44 665在Flex组件上显示手型的鼠标 有些时候,我们需要 ... -
Flex学习笔记
2012-07-02 12:46 555类成员有四种修饰 ... -
关于Firefox重新加载flex的问题解决
2012-07-02 12:46 827DIV中有一个flex,我希望用js来控制它的显示和隐藏, ... -
flex取数据1
2012-07-02 12:45 529HTML通过JavaScript传递信息到Flex中 ... -
Pivot升级为Apache顶级项目,准备好挑战Flex, Silverlight和JavaFX
2012-07-02 12:45 606Apache软件基金会(ASF)于昨天宣布,将Pivot ... -
Flex控制对主机网页中脚本的访问
2012-07-02 12:45 509通过使用以下 ActionScript 3.0 API 可 ... -
视频聊天网站的研究、发展以及趋势(转)
2012-07-01 10:07 516此文讲述了视频聊 ... -
Ubuntu 10.04环境下载&编译Android-2.2.1 (froyo )
2012-07-01 10:07 1010本文根据下文整理而成: http://mantocom.b ... -
ExtJS 4 Grid组件
2012-07-01 10:07 606我们正 ... -
[转载]flex开源框架汇总-leo_wlcnblogs-博客园
2012-06-30 16:34 684[转载]flex开源框架汇总-leo_wlcnblogs-博客 ... -
【FLEX学习】第五天
2012-06-30 16:34 569【FLEX学习】第五天 2011年02月17日 1.细化 ... -
使用Flex和Actionscript开发Flash游戏―(八)
2012-06-30 16:34 497使用Flex和Actionscript开发Flash游戏―(八 ... -
使用Flex3.0 AIR 创建“不规则形状”的Air透明窗体
2012-06-30 16:34 555使用Flex3.0 AIR 创建“不规则形状”的Air透明窗体 ... -
ria big bang = {flash/air/flex .vs. html5}_chriswang
2012-06-30 16:34 601ria big bang = {flash/air/flex ...
相关推荐
WebKit介绍及总结.doc
介绍webkit的工作原理的ppt。HTML, CSS, JS, RenderTree,介绍webkit的结构组成、层次划分、解析和渲染过程等。
目前较流行的浏览器内核:webkit,谷歌、苹果、百度浏览器等均采用!
首先介绍几个基本且重要的类: 1. Page :打开 page.h 头文件,我们似乎看不到我们概念中的“页面”相关的东西,没错,这里的 Page 并非就是我们印象中的简单网页,在头文件中我们发现很多关于 history 的东西, go...
本书从实战的角度深入剖析了AndroidWebKit框架;以及WebKit的JavaScript扩展接口;第10章讲解了WebKit的插件系统的实现原理;对RemoteInspector的实现进行了深入分析。
本书以Android源代码为依托,以WebKit处理数据的流程和它的功能模块依据, 对WebKit的工作机制和实现原理进行了深度的剖析,对于研究浏览器和WebKit内核的工程师们 是不可多得的参考资料。
WebKit加载网页的流程
webkit 学习总结.包括1.WebKit 之WebCore 介绍; 2.WebKit 之Port 介绍;3.WebKit 之图形库介绍
介绍Webkit
/定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸/ ::-webkit-scrollbar { width: 6px; height: 6px; background-color: #F5F5F5; } /定义滚动条轨道 内阴影+圆角/ ::-webkit-scrollbar-track { -webkit-...
webkit介绍与代码结构ppt,简单的介绍了下webkit的特点与代码结构
Webkit内核探究 ;webkit介绍 ;应用程序如何利用Webkit;关于webkit入门介绍
WebKit:WebKit存储库的官方git镜像,https:svn.webkit.orgrepositorywebkit,未来的规范存储库
WebKit 照片浏览器:在 WebKit 中使用现代 Web 技术展示如何使用 Safari 9 中引入的许多 WebKit 技术,包括背景滤镜、滚动捕捉效果和强制触摸支持。应用结构索引.html 在 Safari 9 中打开index.html文件会在浏览器中...
三.WebKit 分析 1.体系结构 2.解析流程 3.浏览器系统结构 四.各种浏览器比较分析 1.网页浏览器列表 2.浏览参数性能比较 3.浏览器使用率分析 4.WebKit 的 SWOT 分析 五.浏览器的未来 1.微软的梦魇 2.云端...
关于android的webkit的介绍,包括各个类之间的关系,写的非常不错,希望大家参考
该报告由中兴公司的某个工程师所写 大纲: webkit介绍 port介绍 webcore介绍 图形库介绍 网络库介绍 Dom分析 布局分析 总共98页
资源名称:WebKit技术内幕朱永盛资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
需求要求展示两行,多余的文字用三个点替代,于是用了这几个不太规范的属性 display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; 后来发现代码里写的好好的,一到页面上居然没有反应,和...
网络套件Webkit 网络浏览器控件