自从Qt2007年第一次引入webkit以来,web技术已经发生了很大的变化。从只占很小的市场份额开始到现在,webit已经成为最广泛使用的web引擎。qt webkit是除了苹果之外做的比较好的,很多项目和公司也逐渐加入到这个项目开发中来。
相关阅读
chromium项目在其中发挥了很重要的作用,逐渐成了webkit最大的贡献者(仅次于苹果和qt,排第三)。然而,不同的公司在开源项目上的合作困难重重,所以在今年春天,google决定离开webkit,转而开发自己的webkit分支,名字叫blink。
自从blink被真正集成到chromium中,webkit的发展就有了两个不同的分支,并且这两个版本的代码迅速分开了。基于这个原因,Qt的webkit团队需要对chromium和webkit这个两个分支进行详细的调查,决定在未来使用哪一个分支,以便给Qt的用户提供更好的web引擎。
经过一段时间对两个分支的调查研究,我们最终决定使用chromium的webkit。原因如下:
1 chromium是跨平台的,它的浏览器已经在许多主要的桌面平台和安卓系统上运行。而这一点webkit是不行的,我们必须花费很大的精力开发去支持所有的操作系统
2 chromium有好多现成可用的功能,而这些可能我们要在webkit上花很大的精力开发。比如跨平台,比如多媒体和HTML5的支持
3 由于chromium跨平台,我们就可以把更多的精力放在提供更容易使用的API,和Qt无缝集成。
4 chromium有严格的质量控制,可以节省很多的测试精力,使我们能够提供一个更稳定质量更好的web引擎
5 相比较webkit,chromium可以和widget,Qt quick更好的无缝集成
chromium是目前最具活力和发展最快的移动浏览器,从战略发展的角度,我们决定使用chromium做web引擎。根据上面的事实,跟现在的qt webkit比起来,我们一定会提供一个更好的web引擎。同时,Qt集成了一流的浏览器引擎,一定会创建强大的产品,特别是在嵌入式设备上提供良好的UI性能体验。
基于稳定性和安全性的考虑,chromium中对web页面的渲染是在不同的进程中。所以,我们暂时无法提供某些API,比如QWebElement API。由于QObject和web页面的通信是异步的,所以也必须修改QObject。这些我们正在修改。
那么,这些改变对webkit的用户意味着什么呢?
首先不用担心,大多数情况下,应用程序中的qt webkit运行良好,并且在未来的一段时间都会如此。Qt5.2版本发布后,我们的精力会主要放在新的Qt webEngine上。所以呢,如果想使用HTML5的新特性,建议把应用程序或设备迁移到我们稍后发布的新的Qt webEngine上。
我们会尽最大的努力实现Qt webkit到Qt webEngine的无缝移植。对于web view,我们会提供接近100%的兼容性。对于基础的web view API,在新的Qt webEngine中代码是完全兼容的。如果使用了QObject bridge或是QWebElement,建议稍等一段时间再移植。在Qt webEngine的第一个版本中,可能不会提供这样的API。
Qt webkit不再开发了,现有的版本可以继续使用。对于商业版本的用户,digia一定会提供维护帮助。
现在正在进行的工作是能够尽快提供一个新的Qt webEngine的技术预览。目标是和Qt5.2一起发布。完全支持的版本要到明年春天和Qt5.3一起发布。第一个发布版本支持windows,mac OS x,linux和嵌入式linux.