原文链接:Lars Knoll - Introducing the Qt WebEngine
自从2007年首次引入Qt WebKit以来,Web技术发生了翻天覆地的变化。依据市场份额,WebKit开源项目已经成为现在世界上最流行的浏览器引擎。WebKit的Qt移植基本上是第一个WebKit的非Apple移植,多年来,许多项目和公司都加入到追随的行列。
Chromium项目在WebKit中扮演了特殊的角色,成为WebKit的最大的贡献者(接下来两位是Apple和Qt)。但是同一开源项目中不同公司之间的合作从来问题多多,这直接导致Google决定离开WebKit项目,创建了其自己的WebKit分支——Blink。
从那时起,集成在Chromium中的Blink和WebKit分道扬镳。两个版本的代码快速分化。正因如此,Digia Qt R&D WebKit团队决定仔细对比Chromium和WebKit,来决定未来版本的Qt使用哪一个来提供最好的Web引擎。
在经过一段时间的研究和调查之后,我们得出了结论:我们将在Chromium基础之上建立未来的Web引擎——Qt WebEngine。很多原因促使我们做出这个决定:
最后,我们注意到Chromium是现在发展最快的浏览器。基于Chromium构建我们的下一代Web引擎是一个战略性的长期的决定。我们相信上面几点理由会让我们提供一个比现在的Qt WebKit更好的Web引擎。同时,将现在同类中最好的浏览器引擎与Qt整合为一个框架将为需要Web浏览器的嵌入式设备提供有力的支持。
Chromium的基础特性之一是出于安全和稳定原因,在不同进程渲染Web内容。但是这导致我们无法在Chromium中提供现有的Qt WebKit API中的某些方面内容。一个明显的部分就是QWebElement API。我们还得改变QObject嵌入的方式,因为所有QObject与网页的交互都要求必须是异步的。
首先,没什么可怕的。对于大多数用例,Web内容都是嵌入到应用程序中的,Qt WebKit现在工作的很好,以后若干年也会工作的很好。Qt 5.2发布之后,我们将会集中精力开发新的Qt Web Engine。所以如果您需要让您的应用或设备支持所有最新最好的HTML5特性,在我们发布了您所需要的API特性时,您就应该考虑移植到Qt WebEngine。
对于从Qt WebKit到新的Qt WebEngine迁移工作,我们尽力使它变得简单无缝。对于Qt Quick WebView元素,我们基本上能提供一个接近100%兼容的API。对于那些使用基本的QWebView API的用户,我们也有好消息。新的Qt WebEngine将在源代码级兼容大部分API。如果您使用了QObject桥或者QWebElement API,我们建议您等一段时间再进行移植。因为这些内容的替换API不大可能会在Qt WebEngine的初版就提供。
尽管我们不再对Qt WebKit提供任何新特性的开发,已有版本仍将可用。Digia将继续为Qt Enterprise商业授权用户提供合同规定的Qt WebKit支持,并且我们还可以提供延长支持的选项。
现在我们将尽快提供一个Qt WebEngine的技术预览版。我们的目标是随着今年秋季的Qt 5.2的发布一同推出。第一个完整支持的版本有可能同明年春季的Qt 5.3一起发布。第一个版本我们计划使新的Qt WebEngine模块支持Windows、Mac OS X、Linux和嵌入式Linux。
有关Qt WebEngine的更多内容,可以查看Qt项目的wiki。在那里您可以找到更多信息,比如如何自己构建Web引擎以及这个模块的未来计划。
由于这是Qt的相当大的一次改变,我们相信这将在未来几年为我们提供一个更好更完整的 Web 平台。
关注Qt WebEngine以及我们的未来发展方向的最好方式是加入我们的Qt开发人员大会。在那里我们项目负责人将会讨论最新发展状况。您可以在www.qtdeveloperdays.com注册Qt开发人员大会。