简要的说,WebKit由三个模块组成:JavaScriptCore、WebCore 和 WebKit。WebKit作为了整个项目的名称。
JavaScriptCore:是JavaScript解释器;
WebCore:是整个项目的核心,用来实现render引擎:解析Web页面,生成一个DOM树和一个render树,并最终render it with a backend(后端?),当前已经有很多移植的Backend,如WebKit/GTK,WebKitQT等。在上图中,backend从WebCore中分离出来了,但实际上它是WebCore的一部分。
WebKit:它隐藏并选择WebCore到当前平台。在WebKit/Gtk中,WebCore以Gtk objects的形式出现,并且它们的signals和API类似其他的Gtk objects.
WebKit工程组织与管理
平台与工具
当前WebKit支持四种平台:GTK、QT、Mac OS X、和Cygwin。
GTK和QT使用qmake
Mac OS X使用xcodebuild
Cygwin则使用Visual Studio
下面主要针对Qt版的WebKit作分析介绍:
首先,执行WebKitTools/Scripts下的build-webkit Perl 脚本,可以使用一些参数配置需要的功能模块,主要有SVG的一些功能配置,以及XPATH、XSLT、VIDEO等。脚本执行过程中会对相应的参数进行解析,确定编译选项、功能模块、平台信息以及相应的工具、输出路径等等参数,最后根据不同的参数,使用qmake工具由webkit.pro生成整个工程的makefile。在make的过程中会进一步调用qmake由各个子模块的.pro项目文件生成各模块的makefile。最后make各个子模块的makefile就可以得到需要的目标文件。
工程结构
这个project可以分成JavaScriptCore、WebCore、WebKit三个子模块,对应到三个子目录,具体的如上面WebKit结构介绍的。
更进一步,整个project又分成了六个可构建出来的子project,对应到相应的.pro文件。
WebKit\WebCore\WebCore.pro:生成libQtWebKit.so或libQtWebKit.a,是整个WebKit引擎库,WebKit应用都是基于这个库。
WebKit\JavaScriptCore\kjs\testkjs.pro:生成testkjs可执行文件,它是一个JavaScript的测试工具,测试JavaScriptCore模块的功能实现。
WebKit\JavaScriptCore\pcre\dftables.pro:生成dftables可执行文件,也是一个工具。
WebKit\WebKit\qt\QtLauncher\QtLauncher.pro:生成QtLauncher可执行文件,它是基于WebKit的一个简单浏览器的应用。
WebKit\WebKit\qt\Plugins\plugins.pro:生成了libqtwebico.so,install后会放到/usr/lib/qt4/plugins/imageformats/下,这个库的作用还不明了,因为目前运行的QtLauncher应用没有用到它,有待研究。
WebKit\WebKitTools\DumpRenderTree\qt\DumpRenderTree.pro:生成DumpRenderTree工具,也是基于WebKit的一个应用工具。
分享到:
相关推荐
Webkit 是一个开源的网页排版引擎,广泛应用于各种浏览器和操作系统中,如 Safari 和旧版的 Google Chrome。它的主要任务是从 HTML、CSS 和 JavaScript 等文本文件中构建并呈现复杂的网页内容。在这个过程中,有两个...
深入理解Webkit的结构对于开发高效、高性能的浏览器应用至关重要。 Webkit的架构分为多个层次,主要包括以下几个部分: 1. **网络层(Network Layer)**:负责处理HTTP、FTP等网络协议,下载网页资源。它包含URL...
### WebKit源代码结构解析 #### 一、概述 WebKit是一款开源浏览器引擎,其源代码规模庞大,超过了500万行。尽管如此,WebKit的目录结构却异常清晰,这有助于开发者快速理解其架构和功能模块。本文将详细介绍WebKit...
**WebKit 概述** WebKit 是一个开源的网页渲染引擎,...通过深入理解 WebKit 的代码结构和特点,开发者可以更好地定制和优化基于 WebKit 的应用,提高用户体验,同时也可以参与到 WebKit 的开源社区,贡献自己的力量。
### Webkit结构简介 Webkit的架构分为多个层次,主要组件包括: 1. **网络层(Network Layer)**:负责网络请求的处理,如HTTP、FTP等协议的实现,以及数据缓存功能。 2. **排版层(Layout/Rendering Layer)**:解析...
安装和配置Android Studio,创建一个新的Android项目,并设置相应的项目结构。 2. **WebView使用**:了解如何在布局XML文件中添加WebView控件,并在对应的Activity中初始化和设置WebView。这通常涉及到设置...
WebKit通过HTML解析器将HTML文档转化为DOM树,这是一个结构化的数据模型,用于表示网页内容。解析过程中会处理各种HTML标签和属性,确保它们按照规范正确解析。 3. **CSS样式计算** CSS样式引擎负责解析CSS规则,...
WebKit 前身是 KDE 小组的 KHTML,WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了后者,就因为它拥有清晰的源码结构、极快的渲染速度。...
WebKit使用一个叫做RenderTree的结构来保存DOM节点及其对应的样式信息。RenderTree是最终用于页面渲染的数据结构,它将决定每个元素在屏幕上的位置和大小。 渲染树构建完成后,WebKit将开始布局(layout)过程,将...
这个“nw node webkit 离线安装包”包含了运行nw.js应用程序所需的所有组件,无需在线下载,方便开发者在没有网络连接的环境下进行离线开发和部署。 nw.js的核心原理是将Chromium浏览器引擎与Node.js环境集成在一起...
WebKit通过解析HTML标签和相应的DOM(文档对象模型)结构,构建出一个可视化的框架树,这个框架树反映了网页的层级结构。每一个框架树节点都代表了页面上的一个元素,如段落、图片、表格等。WebKit使用这个框架树来...
一.Webkit 介绍 二.Webkit 编译详解 1.依赖库及介绍 2.X11+Gtk+WebKit 交叉编译详解 3.编译出错 Q&A 三.WebKit 分析 1.体系结构 2.解析流程 3.浏览器系统结构 四.各种浏览器比较分析 1.网页浏览器列表 2...
它使用了布局引擎和呈现树来处理页面的结构和视觉表示。 2. **JavaScriptCore**:WebKit的JavaScript引擎,负责解释和执行JavaScript代码。它支持ECMAScript标准,提供了高效的运行时环境。 3. **WebKit2**(多进程...
- WebKit的源码结构复杂,包含许多子模块和组件,理解这些结构对于后续编译和调试有直接帮助。 2. **构建工具与流程**: - Xcode的构建系统基于Apple的Build System,它负责编译、链接和打包应用程序。理解构建...
5. **Web Inspector**:WebKit 内置的调试工具,可以帮助开发者检查和调试网页的结构、样式、脚本以及网络请求,是前端开发中不可或缺的辅助工具。 6. **插件支持**:WebKit 支持 NPAPI 和 Pepper 插件,使得第三方...
2. **HTML解析**:收到服务器返回的HTML文档后,WebKit解析器开始构建DOM(文档对象模型)树,这是HTML结构的抽象表示。 3. **CSS应用**:同时,WebKit会下载CSS和其他样式表文件,并应用到DOM树上,形成CSSOM(CSS...
DOM(文档对象模型)是 WebCore 把 HTML 或 XML 文件转化为结构化的节点树,使得 JavaScript 可以操作页面元素。渲染树则是基于 DOM 树和 CSS 样式构建的,用于确定每个元素在屏幕上的位置和外观。WebCore 还包含了 ...
3. **DOM API访问**:通过QTWebKit,开发者可以直接访问和操作网页的DOM(Document Object Model)结构,实现对网页内容的动态修改。 4. **多媒体支持**:支持HTML5的音频和视频元素,可以播放多媒体内容。 5. **...
UML是一种标准化的图形表示法,用于软件工程中的系统建模,包括类图、对象图、时序图等多种图表,帮助开发者理解和设计复杂的系统结构。在"Webkit,Android Brower的主要类图和时序图"这个主题中,我们将重点讨论这...
1. **解析与解析器**:WebKit如何将HTML和CSS文本转换为内部数据结构,这是理解和优化页面加载速度的基础。文档可能会详细介绍XMLHttpRequest、DOM构建和样式计算的过程。 2. **布局与渲染树**:当HTML和CSS解析...