WebKit资源
1 what is webkit?
WebKit 是一个开源浏览器网页排版引擎,与之相应的引擎有Gecko(Mozilla,Firefox 等使用的排版引擎)和Trident(也称为MSHTML,IE 使用的排版引擎)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了后者,就因为它拥有清晰的源码结构、极快的渲染速度。
目前使用WebKit 引擎的浏览器主要有:Safari(apple出品),Midori,chrome(google出品)等。
PS:
網頁瀏覽器 (列表 ,比較 ,使用分佈 ,時間線 ,分類 ) | |
---|---|
Trident 排版引擎 | Internet Explorer · 傲游 · 世界之窗瀏覽器 · Avant · 騰訊TT · Netscape 8 · NetCaptor · Sleipnir · GOSURF · GreenBrowser · KKman |
Gecko 排版引擎 | Fennec · Firefox · 網景 (6 至9 ) · SeaMonkey · Camino · Flock · Galeon ·K-Meleon · Minimo · Mozilla · Sleipnir · Songbird · XeroBank |
KHTMLWebKit 排版引擎或 框架 | Chromium · Epiphany · Google Chrome · iCab · Konqueror · Midori · OmniWeb ·Safari · Shiira |
Presto 排版引擎 | Opera · 任天堂DS瀏覽器 |
Java 軟體平台 | HotJava · Opera Mini · UCWEB |
Tasman 排版引擎 | Internet Explorer for Mac · MSN for Mac OS X |
文字界面 | Lynx · Links · w3m |
手持設備 嵌入式系統 或 | Internet Explorer Mobile · Minimo · Opera Mobile · PSP瀏覽器 |
其它 | Amaya · Dillo · Mosaic |
關聯項目 | HTML · HTML排版引擎 · 分頁瀏覽器 · 網頁伺服器 · 瀏覽器大戰 |
2 WebKit Open Source Project 内核引擎的前世今生
WebKit 的前身是 KDE 小组的 KHTML 。Apple将 KHTML 发扬光大,推出了装备 KHTML 改进型的 WebKit 引擎的浏览器 Safari ,获得了非常好的反响。
WebKit 引擎比 Gecko 引擎更受程序员 欢迎的原因,除了其引擎的高效稳定,兼容性好外,其源码结构清晰,易于维护,是一个重要的原因。而 Gecko 的可维护性就差多了。我在 2008年6月时候,曾编译
Gecko 引擎,准备做一个基于 Gecko 的 Embed 应用程序 ,但文档缺乏、结构欠清晰,折腾了一星期之后,最终不得不承认自己水平有限,放弃了事。
现在浏览器的内核引擎,基本上是三分天下:
WebKit 内核在手机上的应用十分广泛,例如 Google 的手机 Gphone、 Apple 的 iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。
Webkit内核在手机上的应用十分广泛,这得益于webkit引擎的高效稳定,兼容性好。在桌面平台上它获得了acid3的100/100的得分。webkit最大的特点是速度快、JS脚本处理速度是IE的6倍,同时在安全性稳定性都很出色,对web标准兼容好等特点,webkit 是一项开源工程,以每夜构建方式更新。
PS:
目前比较有名气的浏览器有:
- Mozilla Firefox,美国的,是开源项目。
- Microsoft Internet Explorer,美国的。
- Opera,挪威的。
- Konqueror,属KDE开发组,美国的,是开源项目。
- WebKit,美国的,是开源项目。
Webkit学习
( 参考博客:http://blog.csdn.net/sgnaw/archive/2008/05/25/2479573.aspx )
Although WebKit is a complete web rendering and layout engine, it requires platform-specific functionality for infrastructure and display. For this reason, the intergation of WebKit in Qt is implemented using Qt primitives. The WebKit backend
is implemented using the Qt API to provide drawing and network communication. In addition, parts of the WebKit API are wrapped in Qt-style classes to ensure a uniform and intuitive API across all modules conforming to Trolltech guidelines。
3 webkit QT Port:
WebKit 浏览器源程序下载:
- http://webkit.org
- http://trolltech.com/downloads
Link : http://live.gnome.org/WebKitGtk
5 webkit EFL Port
webkit ported to the Enlightenment Foundation Libraries
( http://code.staikos.net/cgi-bin/gitweb.cgi?p=webkit;a=shortlog;h=kenneth/efl-port )
6 webkit on maemo
maemo-developers:
http://www.gossamer-threads.com/lists/maemo/developers/25399
browser for maemo
http://browser.garage.maemo.org/docs/browser_paper.html
owb- based SDL and webkit
http://www.sand-labs.org/owb/wiki/OwbN800
Mazilla browser on maemo
http://browser.garage.maemo.org/
WebKit VS Gecko
Webkit 的优势
Webkit 是一个开源的HTML 渲染引擎,由苹果公司基于 KDE 的 KHTML 项目开发而成。我们从 Chrome 的评测中已经看Webkit 是一个非常轻量的渲染引擎,因其紧凑干净的代码基础,出色的标准支持,以及很小的内存占用而备受赞誉。这些品质使得 Webkit 成为众多浏览器的热选内核。
Webkit 主要用于苹果的 Safari 浏览器与 iPhone,但一些重要的厂商如 Adobe,Nokia, Trolltech 也使用这个核心。Webkit 的用户中还包括一些不太知名的浏览器,包括 iCab, Omniweb, Shiira, 以及 Epiphany。在一些二线操作系统,如 Haiku, Syllable, 甚至 Amiga,Webkit 也大行其道。越来越多的开发者,使用 Webkit 开发富 Internte 应用(rich Internet applications)。Google
在对众多内核进行评估之后,为 Android 移动浏览器,以及 Chrome 桌面浏览器选择了 WebKit。
开发者对 Webkit 公认的评价是:这是一个非常出色的渲染引擎,可以用于众多场合,它的吸引力让很多开发者开始怀疑 Mozilla 的 Gecko 内核是否还有市场。
Gecko
Gecko 源自 Netscape,并早于 KHTML,Gecko 因庞大与复杂的代码基础而频遭诟病。Gecko 非常强大,但代价高昂,复杂,高内存占用。因此,在很多场合 Gecko 的众多功能反而成了负担。
Gecko 内核过于复杂的原因是 Gecko 意图提供除了 HTML 渲染之外的更多功能。Mozilla 早期的野心很大,Mozilla 最早的应用套件包括浏览器,邮件和新闻组程序,Web 设计工具,IRC 聊天工具。除了渲染 HTML,Gecko 还要提供一种应用广泛的,基于 XML 的用户界面生成引擎,XUL。XUL 被用在所有这些程序中。XUL 现在仍用在 Firefox 中,用来生成用户界面,因此造就了 Firefox 最有价值的重多扩展应用。
Gecko 过于复杂的另外一个原因是 XPCOM,一个强大的组件系统。虽然 XPCOM 为 Gecko 带来很多激动人心的功能,让这个渲染引擎实现组件化,然而,这个功能被一些开发者滥用,当 Ars Technica2004年采访 Mozilla 开发者 Scott Collins的时候,Scott Collins 说,对 XPCOM 的滥用是 Mozilla 犯的几个主要错误之一。
鉴于 XUL 和 XPCOM 所带来的复杂性,苹果自然要考虑为 Safari 选择一种更轻量的内核。苹果要设计一款可以和 Mac 操作系统紧密结合的浏览器,他们还预见到,这个引擎应该支持移动设备,他们因此认识到 KHTML 比 Gecko 更合适。
2003年,当苹果决定在 Safari 中使用 KHTML 的时候,Mozilla 的 Mike Shaver 曾在博客中承认 Gecko 的缺点。他同时预言,苹果会成为他们推广 Web 标准的联盟。他写道,
“小而精练曾是我们的苦苦追寻的目标,Gecko 的庞大与臃肿在各种评测中拉了我们的分数,如果我不得不写一个新浏览器,我会考虑 Mozilla 之外的选择。我希望 Mozilla 向 Safari/KHTML 学习,因为它们用 1/10 的代码实现了非常棒的功能。”
Gecko 洗心革面带来 Firefox 3 的火爆
2003年以来,发生了很多变化。Gecko 代码基础已经发展了很久,Gecko 依然复杂,然而它的很多历史遗留的缺陷正被一一攻破,Gecko 为 Firefox 3 带来众多革新,为整个 Web 浏览体验带来非常显著的改善。
Gecko 1.9 使用跨平台的 Cairo 渲染框架,对 SVG 的巨大改进简化了代码并引入一些非常 Cool 的功能,如全页缩放,同时,重构的 reflow 算法,让 Gecko 通过 Acid 2 测试成为可能。Mozilla 还非常显著地降低了对内存的占用,甚至超越了 Safari 和 Opera。
对 XPCOM 的使用被大大减少,XPCOM 对资源的占用通过一个新的循环回收器得到减低。这个工作仍在继续,Mozilla 将在 Firefox 4 中进一步减低 XPCOM 的负担。Gecko 的其它缺陷也在新的开发中被一一正视,比如,Firefox 3.1 的 Alpha 版中就已经加入对 CSS 3 的支持,另外一些性能的改进会让 Gecko 更具竞争性。Mozilla 的 TraceMonkey 引擎将可能包含在 Firefox 3.1 中,这将显著地提高 JavaScript
性能。
从技术的角度,Gecko 现在非常稳固,丝毫不比 Webkit 差。一些证据显示,Gecko 正在进军移动领域,这在不久前还是不可能的事。Mozilla 拥有资源,开发经验以及社区支持,这将引导 Gecko 进入任何 Webkit 所能进入的地盘。
PS: Chrome
一:国外资源
SVN :
http://src.chromium.org/svn/trunk
打包:
http://build.chromium.org/buildbot/archives/chromium.tgz
homePage :
http://code.google.com/chromium/developerPage :
国内免 proxy :
http://sites.google.com/a/chromium.org/dev/Home
1 : http://www.catonmat.net/blog/code-reuse-in-google-chrome-browser/
网上一个 blog ,列出了 Chrome 用到的开源库,链接在这:
2 、 http://www.cnblogs.com/hesicong/archive/2007/06/29/800017.html
集成 VS 2005 sp1
3:http://www.paperfrag.com chrome 中使用 ActiveX 的方法。
4 : http://blog.chromium.org/ chrome 官方 BLOG
Google has setup the following discussion groups
chromium-announce <http://groups.google.com/group/chromium-announce > Announcements are sent to this list when a new build is available on the developer channel, and at other important events relevant to a majority of users. This is a low-volume,
moderated list.
chromium-discuss http://groups.google.com/group/chromium-discuss
General Chromium discussion, ideas and suggestions should go here.
This is a high-volume mailing list, and in general is the right list to post to as a default if you are unsure of exactly where you should post.
Topical posts include items such as ideas for new features or the improvement of existing features, questions or comments around the high level design of Chromium, and other high-level topics that are not necessarily focused on the actual engineering
or implementation of code.
The engineering (developer) team uses this to discuss technical issues and for announcements. This is a moderate volume, high technical content mailing list.
Topical posts include items such as plans to reduce memory consumption, discussion around how certain code areas are implemented and how to extend or improve such code, announcements of new tests being added to the buildbots, and so forth. chromium-reviews
http://groups.google.com/group/chromium-reviews
The engineering (developer) team uses this to conduct code reviews of changes to the Chromium source. This is a high volume, high technical content mailing list. Topical posts are strictly limited to code reviews. All email threads on this list originate
from code reviews. Please do not start new threads on this list.
chromium-checkins
http://groups.google.com/group/chromium-checkins
This is a read-only list that can be used to monitor individual checkins to the Chromium source. This is a high volume, high technical content mailing list. All emails to this list are automatically generated when code is checked in. Please donot
send emails to this list. chromium-bugshttp://groups.google.com/group/chromium-bugs
This is a read-only list that contains all of the bug database email traffic. All email threads originate from bugs opened in the bug database. Please do not create new threads on this list
chromiumdev:
http://sites.google.com/site/chromiumdev/
6:chromium-dev
http://groups.google.com/group/chromium-dev
维基百科:
http://zh.wikipedia.org/w/index.php?title=Chrome&variant=zh-cn
8:官方开发网站
http://sites.google.com/a/chromium.org/dev/
9:chrome发布网站 http://googlechromereleases.blogspot.com/
10:WEBKIT BLOG
. 二:中文部分
1 : http://www.downdig.com/chrome
chrome 比较完整的中文信息
2 : CSDN 资源 Android 研究
源码解析系列 :
http://blog.csdn.net/bzero1982
Chrome 源码剖析 :
http://www.cnblogs.com/duguguiyu/
谷歌浏览器的源码分析 :
WEBKIT 研究 :
chrome源码优化:
yuanwen : http://hi.baidu.com/elseif/blog/item/317eda5000d8a2658535240c.html
WebKit资源的更多相关文章
- WebKit资源加载和网络栈
webkit笔记,主要来自 朱永盛 <WebKit技术内幕> 学习笔记,转载就注明原著,该书是国内仅有的Webkit内核的书籍,学习的好导师,推荐有兴趣的朋友可以购买 WebKit资源加载 ...
- Webkit之资源加载
一.webkit资源分类 webkit中有多种资源,大致分为以下几种: HTML文本 CSS样式文本 - CachedCSSStyleSheet 字体 - CachedFont 图片 - Cached ...
- WebKit技术内幕
WebKit技术内幕(浏览器内核|渲染引擎| HTML5| Chromium项目Committer重磅作品) 朱永盛 著 ISBN 978-7-121-22964-0 2014年6月出版 定价:7 ...
- fedora环境安装webkit支持作爬虫下载解析JS
环境: 我使用的fedora19.1-xfce版本,属于redhat系的桌面环境. 1.安装 webkit源码安装webkit失败,这里提供的是yum安装方式. a.查看当前yum库中的webkit资 ...
- [转]开发者需要了解的WebKit(mark)
以下内容转自:http://www.infoq.com/cn/articles/webkit-for-developers -------------------------------------- ...
- 开发者需要了解的WebKit
2013-3-22 22:37| 发布者: sxwgf| 查看: 575| 评论: 0|来自: infoq 摘要: Paul Irish是著名的前端开发工程师,同时他也是Chrome开发者关系团队成员 ...
- 理解WebKit和Chromium(电子书)
前言 基础篇 WebKit, WebKit2, Chromium和Chrome介绍 WebKit和Blink WebKit和Chromium代码目录结构介绍 WebKit和Chromium功能模块 ...
- WebKit HTML、CSS、JS
开发者需要了解的WebKit https://www.infoq.cn/article/webkit-for-developers 开发者需要了解的 WebKit 彭超 2013 年 3 月 18 ...
- 200 ok 几种状态
浏览器加载资源成功一般会有几种状态 200 ok ---- 从原始服务器请求成功 200 ok from cache ---- 200 ok from disk cache ---- 2 ...
随机推荐
- rsync和rsync后台模式
注意(有软连接的rsync同步,-L可以把软链接里的当普通文件同步.-l 只同步软链接不同步软链接指向的目录或文件) rsync命令详解 rsync -a 归档模式 ,表示以递归方式传输文件,并保持所 ...
- 学号 20175223 《Java程序设计》第10周学习总结
目录 教材学习内容总结 代码调试中的问题和解决过程 1. XAMPP无法启用 MySQL 程序. 2. Ubuntu 无法下载或更新. [代码托管] 学习进度条 参考资料 目录 教材学习内容总结 第十 ...
- linux教程及常用命令手册
Linux 教程 Linux 教程.Linux 简介.Linux 安装.Linux 系统启动过程.Linux 系统目录结构.Linux 忘记密码解决方法.Linux 远程登录.Linux 文件基本属性 ...
- QTP学习笔记1
1.将变量值写入datatable/ 从datatable中取值赋给变量 DataTable("列名","sheet名") = 变量名 变量名 = DataTa ...
- python笔试做错的题目
a = [1,2,3] b = a print(id(a),id(b),a == b) print(a,b) b = b + [1,2,3] print(a,b) print(id(a),id(b), ...
- Spring系列.@EnableRedisHttpSession原理简析
在集群系统中,经常会需要将Session进行共享.不然会出现这样一个问题:用户在系统A上登陆以后,假如后续的一些操作被负载均衡到系统B上面,系统B发现本机上没有这个用户的Session,会强制让用户重 ...
- find pattern
daniel@daniel-mint ~/msf/metasploit-framework/tools $ ruby pattern_create.rb 2000 Aa0Aa1Aa2Aa3Aa4Aa5 ...
- Django 自定义模型管理器(Manager)及方法
转载自:https://www.cnblogs.com/sui776265233/p/11571418.html 1.自定义管理器(Manager) 在语句Book.objects.all()中,ob ...
- 20140914 1到N自然数排序
1.关于一道1到N自然数排序的华为面试题 http://blog.csdn.net/hongyuan19/article/details/1887656 为什么想进入华为 你对华为了解多少? 华为给我 ...
- 前端移动端开发总结(Vue)
上下固定,中间滚动布局(FLEX) <div id="app"> <div class="header"></div> &l ...