`

WebKit, WebKit2, Chromium和Chrome介绍

 
阅读更多

概述

在介绍本系列各个专题之前,有必要先解释一下极其容易混淆的几个概念,它们是WebKit,WebKit2,Chromium和Chrome。

首先来了解WebKit。广义上来说,WebKit是一个开源的项目,其前身是来源于KDE的KHTML和KJS。该项目专注于网页内容的展示,开发出一流的网页渲染引擎。它不是浏览器,而且也不想成为浏览器。 该项目包含两个部分,第一是WebCore,其中包含了对HTML,CSS等很多W3C规范的实现;第二部分就是狭义上的WebKit,它主要是各个平台的移植并提供相对应的Web接口,也就是WebView或者类似WebView,这些接口提供操作和显示网页的能力。目前使用WebKit的主流的浏览器或者WebView包括Chrome, Safari, QtWebKit, Android Browser以及众多的移动平台的浏览器。

WebKit2相对于狭义上的WebKit而言,它不是WebKit简单的第二个版本,它是一个新的API层,其最主要的变化在于将网页的渲染置于单独的进程,而接口层则在另外一个进程,它们之间通过IPC来通讯。对于接口的调用者来说,中间的IPC和底下的实现是透明的,这样做的好处有很多,一个很明显的好处是,当网页的渲染出现问题时,不会阻碍Web接口的调用者进程,这会在很大程度上解决或者帮助解决浏览器或者这些调用者的稳定性和安全性等问题。

Chromium是一个建立在WebKit之上的浏览器开源项目,由Google发起的。该项目被创建以来发展迅速,很多先进的技术被采用,如跨进程模型,沙箱模型等等。同时,很多新的规范被支持,例如WebGL,Canvas2D,CSS3以及其他很多的HTML5特性,基本上每天你都可以看到它的变化,它的版本升级很快。在性能方面,其也备受称赞,包括快速启动,网页加载迅速等。

Chrome是Google公司的浏览器产品,它基于chromium开源项目,一般选择稳定的版本作为它的基础,它和chromium的不同点在于chromium是开源试验场,会尝试很多新的东西,当这些东西稳定之后,chrome才会集成进来,这也就是说chrome的版本会落后于chromium。另外一个就是,chrome里面会加入一些私有的codec,这些仅在chrome中才会出现。再次,chrome还会整合Google的很多服务, 最后chrome还会有自动更新的功能,这也是chromium所没有的。

 

     关注Web和HTML5领域的人最近应该都有了解WebKit项目的重磅消息,那就是Google退出WebKit项目,创建自己的渲染引擎Blink。这其实不能说完全没有先兆,合合分分,纯属正常。其实,之前关于WebKit2,双方的争论就非常的大。Apple希望它可以随便加入和删除代码而无需担心它会破坏其它Ports的代码,这遭到很多人的反对和不满。同时,另一方面,Google有很多新的功能希望加入WebKit中,但是WebKit可能并不认可他们。双方分歧越来越多,终于分道扬镳。

      这里面有个误区,就是Google的Blink是一个全新的引擎。其实不是这样,Blink目前就是从WebKit直接复制出一个版本出来,然后将与chromium无关的Ports全部移除掉,将代码结构重新整理,就目前而言,Blink的渲染和WebKit是一样,但是,以后两者将各自走不同的路。这有点类似于之前WebKit从KHTML中复制出来一样,历史总是惊人的相似。

     目前参与Blink和Chromium大致一样,拥有Chromium的commit权限对Blink也适用。原来一些WebKit的committer和reviewer也开始成为blink的committer。它的提交代码流程,review流程等都是chromium的风格,这对chromium的开发者来说非常熟悉。

    Blink从WebKit继承而来,那么未来它会在哪些方面做改变呢?根据chromium官方的说法,目前大概有两个比较大的,后面应该有更多的改变:

  1. 跨进程的iframe(out-of-process iframes):为iframes内容创建单独的沙箱进程来渲染它们
  2. 将DOM移入JavaScript中,这样JavaScript可以更快的访问DOM

     今后,Blink会和WebKit差别越来越大,对Web标准支持也不尽相同,未来的发展如何,让我们拭目以待吧。 顺便插一句,以后可能要改这个系列的标题了,呵呵。

分享到:
评论

相关推荐

    非IE内核 浏览器二开源码 windows/win32/VC++/vs/Webkit/Chrome/Chromium/CEF3

    最新的内核版本 (Version) WebKit 537.36 Chrome 74.0.3729.157 的CMake后的win32下Visual Studio 2015工程,解压后,请用vs2015(或以上)打开Platform-win32目录下cef.sln,本人Debug模式、Release模式下都编译...

    Chromium-Windows

    Chromium是Google为发展自家的浏览器Google Chrome(以下简称Chrome)而开启的计划,所以Chromium相当于Chrome的工程版或称实验版(尽管Chrome自身也有β版阶段),新功能会率先在Chromium上实现,待验证后才会应用...

    映射到Chrome:将基于Chromium的浏览器版本映射到等效的Chrome版本

    Mozilla/5.0 () AppleWebKit/<webkit> (KHTML, like Gecko) Chrome/<chrome> YaBrowser/<yabrowser> Safari/<webkit> 平台可以是Windows,Linux,macOS或Android(iOS上的有所不同,因为所有浏览器都使用Safari的...

    ChromeSetup.exe

    Chrome代码是基于其他开放源代码软件所编写,包括Apple WebKit和Mozilla Firefox,并开发出称为“V8”的高性能JavaScript引擎。Google Chrome的整体发展目标是提升稳定性、速度和安全性,并创造出简单且有效率的用户...

    chrome浏览器技术分析文档

    chrome浏览器开源技术分析文档,包括webkit v8 多线程模式,多进程,沙箱

    剧作家:Node.js库使用单个API自动执行Chromium,Firefox和WebKit

    :performing_arts: 剧作家 | Playwright是一个Node.js库,可通过单个API自动执行 , 和 。...这将为Chromium,Firefox和WebKit安装Playwright和浏览器二进制文件。 安装后,您可以在Node.js脚本中requi

    谷歌浏览器(Chromium) V19.0.1055.0 开发版

     ·Chrome浏览器基于开源的Webkit,其中包含谷歌Gears。  ·Chrome提供了浏览器扩展框架,可以制作与Adobe-AIR类似的混合应用。  ·包含V8 Javascript虚拟机,这个多线程的虚拟机可以加速Javascript的执行。  ·...

    cef_binary_90.6.7+g19ba721+chromium-90.0.4430.212_windows64.tar.bz2

    CEF (Chromium Embedded Framework)是个基于Google Chromium项目的开源Web browser控件,支持Windows平台。...因为基于Chromium,所以CEF支持Webkit & Chrome中实现的HTML5的特性,并且在性能上面,也比较接近Chrome。

    PnWUI-Reworked:经过改良的Politics&War用户界面版本,以chrome扩展的形式可以移植到Chromium,Gecko和WebKit

    PnWUI重做经过改进的Politics&War用户界面版本,以chrome扩展的形式可以移植到Chromium,Gecko和WebKit。安装要安装此版本,请先转到的“发行”选项卡然后下载最新版本。 将其解压缩到方便的位置。 在浏览器中,转...

    解决node-webkit 不支持html5播放mp4视频的方法

    原因: mp4似乎是有专利的影音格式。...注:由于chromium 版本众多,所以,下载的chrome浏览器的chromium版本要与node-webkit的chromium版本一致。否则ffmpegsumo.dll文件复制过去也没用。而且还会引起软件崩溃

    谷歌浏览器v42_32位

    本软件的代码是基于其他开放源代码软件所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效的使用者界面。软件的名称是来自于又称作“Chrome”的网络浏览器图形使用者界面(GUI)。...

    用node-webkit把web应用打包成桌面应用(windows环境)

    node-webkit是一个Chromium和node.js上的结合体,通过它我们可以把建立在chrome浏览器和node.js上的web应用打包成桌面应用,而且还可以跨平台的哦。很显然比起传统的桌面应用,在某些特定领域用html5+css3+js开发的...

    5.25笔记.txt

    在Chromium项目中研发Blink渲染引擎( 即浏览器核心),内置于Chrome浏览器之中。Blink 其实是 WebKit的分支。 大部分国产浏览器最新版都采用Blink内核。 5,Presto--(Opera) Presto是挪威产浏览器opera的"前任"内核,...

    谷歌浏览器v42_64位

    本软件的代码是基于其他开放源代码软件所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效的使用者界面。软件的名称是来自于又称作“Chrome”的网络浏览器图形使用者界面(GUI)。...

    基于Chromium的CefSharp.zip

    因为基于Chromium,所以CEF支持Webkit & Chrome中实现的HTML5的特性,并且在性能上面,也比较接近Chrome,CEF还提供的如下特性:自定义插件、自定义协议、自定义JavaScript对象和扩展;可控制的resource loading, ...

    chrome浏览器

    本软件的代码是基于其他开放源代码软件所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效的使用者界面。软件的名称是来自于又称作“Chrome”的网络浏览器图形使用者界面(GUI)。

    search-browser-tabs-for-alfred:用于搜索和激活选项卡的Alfred工作流程

    Safari和Chrome中的“搜索”标签(还支持Safari技术预览版,WebKit,Chromium,Chrome Canary和Vivaldi) 刚刚由ClintonStrong将Vivaldi支持添加到Search Safari and Chrome Tabs 。 原文: , 我希望有人想出一...

    ChromeWebBrowser.net-debug-1.3.3.2454

    基于Chromium构建Chrome WebBrowser for .net 控件,里面有程序源代码、demo、文档。资料很齐全。

    playwright-go:Playwright for Go是一个浏览器自动化库,可通过单个API控制Chromium,Firefox和WebKit

    Chrome90.0.4392.0 :check_mark_button: :check_mark_button: :check_mark_button: WebKit 14.1 :check_mark_button: :check_mark_button: :check_mark_button: Firefox 85.0b5 :check_mark_button:...

    Chrome浏览器测试版 v86.0.4240.42官方Beta版

    为您提供Chrome浏览器测试...基本简介 Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。Google C

Global site tag (gtag.js) - Google Analytics