Skip to main content

Qt将引入Qt WebEngine

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开发人员大会。

Comments

Subscribe to our blog

Try Qt 6.11 Now!

Download the latest release here: www.qt.io/download

Qt 6.11 is now available, with new features and improvements for application developers and device creators.

We're Hiring

Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.