Back to Blog home

Qt将引入Qt WebEngine

Published on Wednesday September 25, 2013 by Cheng Liang in Qt WebKit qt-labs-chinese | Comments

原文链接: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关注于跨平台建设,其浏览器能够运行在所有主流桌面平台和Android上;与此同时,WebKit则不那么专注。我们自己的项目则必须支持所有的OS平台。
  • Chromium中对很多事情都提供了支持,在WebKit下同样支持这些东西则需要耗费大量精力。例如,我们可以简单地重用平台/OS的适配代码。多媒体以及如WebRTC这样的新HTML5特性,都是直接可用的,无需特别的Qt代码。
  • 使用Chromium可以简化OS集成工作,这使得我们可以有更多精力关注于更高层面,提供一个可以无缝集成于Qt之中并且简单而强大的API。
  • 我们注意到Chromium的开发处于代码质量的严格控制之中。这简化了我们的测试工作,有利于提供更稳定和高质量的Web引擎。
  • 比起WebKit,Chromium允许我们构建更好更高效的组件和Qt Quick scene graph。

最后,我们注意到Chromium是现在发展最快的浏览器。基于Chromium构建我们的下一代Web引擎是一个战略性的长期的决定。我们相信上面几点理由会让我们提供一个比现在的Qt WebKit更好的Web引擎。同时,将现在同类中最好的浏览器引擎与Qt整合为一个框架将为需要Web浏览器的嵌入式设备提供有力的支持。

Chromium的基础特性之一是出于安全和稳定原因,在不同进程渲染Web内容。但是这导致我们无法在Chromium中提供现有的Qt WebKit API中的某些方面内容。一个明显的部分就是QWebElement API。我们还得改变QObject嵌入的方式,因为所有QObject与网页的交互都要求必须是异步的。

这些改变对Qt WebKit用户意味着什么?

首先,没什么可怕的。对于大多数用例,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开发人员大会。

Subscribe to Our Blog

Stay up to date with the latest marketing, sales and service tips and news.