WebKit介绍及总结(一)
2010年08月03日
一. WebKit简介
Webkit 是一个开放源代码的浏览器引擎 (web browser engine) ,最初的代码来自 KDE 的 KHTML 和 KJS( 均开放源代码 ) 。苹果公司在 Webkit 的基础上做了大量优化改进工作 ,此时的 Apple Webkit 已经和 Webkit 有了不少差别,最后开发出了著名的 Safari ,可以说 Safari 是一个相当成功的产品,但是 Safari 却不是开放源代码的。
基于 WebKit 的浏览器产品有:苹果的 Safari 和 iPhone , Google 的 Chrome 和 Android , Nokia 的 S60 ,傲游 3(Maxthon3) ;
WebKit目前支持 HTML4/5,CSS1/2,DOM1/2,HTTP/FILE, GIF/JPEG/PNG, XML,SVG,RSS2.0等;
同类的浏览器引擎有: Trident ( IE 内核), Gechko ( Netscape, Mozilla 和 Firefox 内核), Presto ( Opera 内核,不免费), Tasman ( IE for MAC 内核),等等,而 WebKit 因为其功能强大、速度快而且免费备受欢迎。
二. 用到的库:
除了平台相关的库,WebKit需要用到的一些主要的后台库有: ICU : International Components for Unicode , 一个成熟,广泛使用的一套为 C / C + + 和 Java 库提供 Unicode 的 全球化支持软件; XSLT : eXtensible Stylesheet Language Transformation, W3C 定义的用于 XML 文档转换的规范; Curl : 一个利用 URL 语法的命令行数据传输工具,基于 libcurl 。 Sqlite : SQLite 是实现了 SQL92 标准的 SQL 数据库引擎,它能在一个库里组合数据库引擎和接口, 将所有数据存储于单个文件; Gperf :一个很完美的哈希函数生成器; Flex : Fast Lex, 快速词法分析生成器; Bison :语法分析生成器,可以将一段带注释的上下文无关语法转化成 LALR 或 GLR 语法; Enchant :一个拼写检查库,提供单词的拼写检查、纠错等功能; 三. 代码目录结构 WebKitTools
一些测试 WebKit 实现功能的程序; WebKitLibraries
WebKit 用到的库以及系统调用接口定义; WebKitExamplePlugins
一些来自 Netscape 的插件,比如输入法、动画和 Cocoa 环境等; WebKitSite: 保存了 www.webkit.org 网站的 WebKit
此目录位于 WebKit 的最上层,定义了与应用相关的一些接口,因此它是平台相关的,每个子目录都是对应平台的完整实现: cf : Core Foundation, MAC OS X 上的系统级 C 语言 API 接口; win : Windows ; mac : MAC OS X ; qt : Q Toolkit ,其公司已被 Nokia 收购; gtk : Gimp Toolkit ; scripts :一些脚本,目前只有一个关于 WebKit 版本的脚本程序; chromium : Google Chrome 开发平台; wx : wxWindows ,一种可移植的 C++ 和 Python GUI 工具箱, by Julian Smart ; haiku :一种开源 OS ,从 BeOS 而来, 2001 开始, 2009 发布首版; efl: Enlightenment Foundation Libraries, Enlightenment 平台;
WebCore
WebKit 的核心部分,定义了浏览相关的数据 IO 、页面加载、脚本分析、 UI 组织、事件处理、网络分析、平台相关的具体实现等内容。 xml :提供 xml 相关的内容;
html :提供 html 相关的内容;其下的 Canvas 目录定义了 3D 画布以及 WebGL 库相关的内容;
wml: Wireless Markup Language ;
css :提供 css 相关的内容;
dom :提供 dom 相关的内容;
editing :编辑相关的功能;
page :浏览相关内容,并非是我们看到的一个页面,在一次浏览会话中,它只有一个实例;
rendering :页面渲染相关的内容,在对页面脚本进行 DOM 树分析之后,需要对这些元素进行渲染和显示;
notification :内部模块间的事件通信;
history :页面浏览历史记录相关的内容;
svg :矢量图形功能,有选项, --svg ;
mathml : W3C 为网页中的数学表达式制定的规范;有编译选项, --mathml ;
loader : 加载资源及 Cache ;
workers :" Web Workers为WEB前端网页上的脚本提供了一种能在后台进程中运行的方法。一旦它被创建,Web Workers就可以通过postMessage()向任务池发送任务请求,执行完之后再通过postMessage()返回消息给创建者指定的事件处理 程序(通过onmessage进行捕获)。
Web Workers进程能够在不影响用户界面的情况下处理任务,并且,它还可以使用XMLHttpRequest来处理I/O,无论responseXML和 channel属性是否为null。"
storage : Web Storage 相关的内容,保存页面的数据,可以看成是 Cookie 的升级;
websockets :与网络连接相关的内容;
bridge: 主要包含 NPPlugin(Netscape Plugin) 方面的接口访问等内容;
binding : Dom 与 JavaScriptCore 绑定的功能;
accessibility :提供控件的可用性相关的内容, accessibility 常用来形容对一些特殊人群的功能支持,比如残障者、老人等;
icu :里面放了专门为 Mac OS X 10.4 编译的 icu 相关头文件;
platform :提供了平台相关的具体实现,如事件响应、本地化、网络连接等;
plugins :插件相关内容;
ForwardingHeaders :头文件;
inspector : Inspector 是 WebKit 提供的查看网页源代码, DOM 树,以及调试脚本的工具,本目录包含了实现此功能的内容;
Configurations : X Code 环境相关的配置文件;
English.lproj :本地化文件;
manual-tests :测试用的 html 文件;
Resources :资源,图标;
WebCore.gyp :工程文件。 GYP ( Generate Youre Project )是 google 自己开发了一个脚本工具,这个工具也 是采用 python 编写的。它采用了自定义的一套规则,用于生成各种工程文件;
WebCore.vcproj : VC 工程文件;
WebCore.xcodeproj : X Code 工程文件;
WTF : Apple 的 C++ 库,可以看作精简的 STL ; SunSpider
一个 JavaScript 的检测程序,它不检测 DOM 或者浏览器其他的 API ,只用来检测 Javascript 。
JavaScriptGlue JavaScriptCore :有关 JavaScript 的相关内容,包括了脚本解释器、分析器以及执行程序; PlanetWebkit: 一个比较灵活的 RSS 阅读器; Webkit 网站上的 Planet :一站式的 Webkit 开发与动态信息; 四. 体系结构
WebKit 主要包括三部分: WebKit , WebCore ,以及 JavaScriptCore ,加上所使用的库,依托的平台,其基本的体系结构 (Architecture) 如下所示:
注意有的模块相对于下面的模块有突出,这是因为此模块与下面几个模块直接相关,比如 WebCore 模块就与JavaScriptCore 、 Libraries 和 Platforms 模块直接相关。
发表评论
-
FCKEditor 2.6.4 Asp.net上传文件没有权限解决
2012-01-20 10:55 734FCKEditor 2.6.4 Asp.net上传文件没有权限 ... -
javascript知识汇总
2012-01-20 10:55 544javascript知识汇总 2010年 ... -
javascript全面总结(可能别人看的有点乱,不过多看几遍就习惯了,每个*是一个知识点集合)
2012-01-20 10:55 637javascript全面总结(可能别人看的有点乱,不过多看几遍 ... -
关于联通(网通)DNS劫持广告的屏蔽办法.
2012-01-20 10:55 729关于联通(网通)DNS劫持广告的屏蔽办法. 2010年07月 ... -
php在iis上安装SHOPEX 配置时报Fatal error: Call to undefined function mysql_connect() in 错误解决办法
2012-01-19 15:52 1282php在iis上安装SHOPEX 配置时报Fatal erro ... -
TypeError: Error #2007: 参数 blendMode 不能为空
2012-01-19 15:52 941TypeError: Error #2007: 参数 blen ... -
解决 error 1045 (28000): access denied for user 'root'@'localhost' (using password: yes) 问题
2012-01-19 15:52 906解决 error 1045 (28000): access d ... -
error c2471: cannot update program database vc90.pdb-小楼一夜听春雨-博客园
2012-01-19 15:52 1903error c2471: cannot update prog ... -
ping 出现unable to initialize windows sockets interface error code 0_sunny
2012-01-19 15:52 759ping 出现unable to initialize win ... -
倚天摘星:四季度反复筑底成为定局!
2012-01-17 05:36 631倚天摘星:四季度反复筑 ... -
心韵课堂之体位练习(2)
2012-01-17 05:36 510心韵课堂之体位练习(2) ... -
光,一定在前方
2012-01-17 05:36 573光,一定在前方 2011年11月25日 ... -
媚权的道具
2012-01-17 05:36 14媚权的道具 2011年11月25日 ... -
往事依依(于漪)
2012-01-16 04:31 1166往事依依(于漪) 2010年09月16日 教学目标:1、 ... -
英语学习的方法
2012-01-16 04:31 546英语学习的方法 2010年04月05日 学习的方法 ... -
“精彩极了”和“ 糟糕透了”教案
2012-01-16 04:31 1157“精彩极了”和“ 糟糕透了”教案 2010年11月11日 ... -
我是色盲我怕谁(原创杂文)
2012-01-16 04:31 560我是色盲我怕谁(原创杂 ...
相关推荐
WebKit介绍及总结.doc
首先介绍几个基本且重要的类: 1. Page :打开 page.h 头文件,我们似乎看不到我们概念中的“页面”相关的东西,没错,这里的 Page 并非就是我们印象中的简单网页,在头文件中我们发现很多关于 history 的东西, go...
webkit 学习总结.包括1.WebKit 之WebCore 介绍; 2.WebKit 之Port 介绍;3.WebKit 之图形库介绍
介绍Webkit
webkit介绍与代码结构ppt,简单的介绍了下webkit的特点与代码结构
Webkit内核探究 ;webkit介绍 ;应用程序如何利用Webkit;关于webkit入门介绍
关于android的webkit的介绍,包括各个类之间的关系,写的非常不错,希望大家参考
关于windows下使用webkit或chrome浏览器内核总结
webkit研究报告,webkit介绍 webkit porting介绍 图形库介绍 网络库介绍
An Open Source web browser engine The backend for Apple’s Safari browser Used in Apple’s iPhone Also ported to, ships with all Symbian S60 devices An Open Source project inviting contributions to ...
一.Webkit 介绍 二.Webkit 编译详解 1.依赖库及介绍 2.X11+Gtk+WebKit 交叉编译详解 3.编译出错 Q&A 三.WebKit 分析 1.体系结构 2.解析流程 3.浏览器系统结构 四.各种浏览器比较分析 1.网页浏览器列表 2...
基于Webkit的新手级浏览器源码是一个简易web浏览器,基于安卓Webkit开发的。
I.WebKit介绍 5 一.WebKit是什么? 5 二.WebKit主要特点和目标 5 三.WebKit主要组成 7 II.WebKit之WebCore介绍 7 一.WebCore所包含的主要内容 7 1.目录结构 7 2.主要数据结构 9 二.一个Http请求在WebCore中的主要...
WebKit2是WebKit的新的,完全不阻塞API层,它引入了一个分裂的过程模型 - web进程是孤立的UI过程中提供更好的稳定性和更好的嵌入应用程序的响应能力。 WebKit2.NET。NET绑定WebKit2。 WebKit2.NET是不是一个控件库...
原文见:...zip中有: Build WebKit Log - Moon.txt (编译WebKit的输出Log) Win7 & VS2013 编译 WebKit 总结 - Moon.html (原文的html版本, 看起来可能舒服些) 若还需要其他资源或有疑问, 请CSDN上联系我.
java集成webkit浏览器,内附详细Demo,注意64位需要用64位swt
webkit webApp 开发技术要点总结.欢迎下载学习
WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用),Trident(也称MSHTML,IE 使用)和EdgeHTML(也称Chakra,Edge和其他UWP浏览器使用)。同时WebKit 也是苹果Mac OS X 系统引擎...
mbrowser 是一个基于webkit核心开发的嵌入式浏览器,这个是它的源代码win32/wince版本
webkit做一个简易的webkit浏览器,供参考吧!!!!!!做一个简易的webkit浏览器,供参考吧