Qt WebEngine Technology Preview Available

We are happy to announce the first Technology Preview of Qt WebEngine. In September 2013, we announced Qt WebEngine as our new Chromium-based web engine to replace Qt WebKit and offer the best possible Web technology for Qt in the future.

In this first Technology Preview, the R&D team focused on properly integrating with Qt and Qt Quick. This paves the way for optimal performance and a competitive and feature-rich web browsing experience.

In the following video you can see how well Qt WebEngine integrates into Qt Quick.

http://www.youtube.com/watch?v=elqmjspONk8

At the moment, we have both Linux and Mac OS X supported and we are working on bringing Qt WebEngine to other platforms, such as Windows and Qt Enterprise Embedded Android/Linux. There is currently a preliminary API for Qt Quick as well as for Widgets. The implementation for Qt Quick integrates directly with the Qt Scene Graph and therefore allows better performance for accelerated web content. The Widgets API is focusing on ease of porting from QtWebKit.

Please keep in mind that as we are currently in a Technology Preview stage neither the Qt Quick, nor the Widgets API for Qt WebEngine is considered stable. At this time, source and binary compatibility are not guaranteed.

How to Get the Code

A source tarball can be downloaded from the Qt Enterprise Customer Portal, as well as from qt-project.org.

If you choose to use git for cloning our Qt WebEngine repository, please make sure to checkout the tag v0.1.0-tp1 and follow the instructions on our Gitorious repository page. https://qt.gitorious.org/qt-labs/qtwebengine

How to Build

Qt WebEngine currently requires Qt 5.2 or later. All you need to do is execute qmake and make install in the Qt WebEngine source directory. Internally the build process uses gyp and ninja, but there is no need to worry, this is all nicely hidden from you.

qmake && make install

Note that the make install step is necessary to put all the resource files that are needed by Chromium into the right place. Otherwise I10n and Inspector resources will not be found.

The following examples are included

The Qt WebEngine repository includes examples for both Qt Quick and for Widgets in the examples/ subdirectory.

  • QuickNanoBrowser is a very simple example of a multi-tab browser using Qt Quick. It can be used to showcase the actual performance for WebGL that can be achieved by integrating with the Qt Scene Graph.
    To be able to share textures with the Qt Scene Graph efficiently we have to use shared contexts. For details about this take a look at the file quicknanobrowser/main.cpp.
    In case you have multiple GPUs installed in your system, you might also need to pass --supports-dual-gpus on the command line.

  • Browser is the original QtWebKitWidgets based Qt demo browser ported to Qt WebEngine. Several features are still missing, but it is already a good example for porting an application from QtWebKit to Qt WebEngine.

  • FancyBrowser is another example ported from QtWebKitWidgets. It shows the interaction with web content using jQuery and the asynchronous runJavaScript method.

Limitations

Qt WebEngine currently uses the Chromium networking layer. Therefore, we do not have an integration with QNetworkAccessManager. Also, we are currently not supporting the Adobe Flash plugin.
While the quality of displayed web content is already at a very good level, the APIs are not fully complete. In particular, the Widgets API is still lacking several features, but we are working on resolving this issue.

What’s Next

We are planning to have an Alpha and a Beta release of Qt WebEngine within the first half of 2014. In the Alpha release, we intend to add support for Windows. We are also working actively to provide embedded Linux and embedded Android support for our Qt Enterprise Embedded offering. In addition, we will of course keep working hard on the Qt Quick and the Widgets API to support further use cases.

How to Provide Feedback

If you find bugs or have specific feature requests, please file a bug-report on https://bugreports.qt-project.org for the project Qt and the component WebEngine.

If you are planning to use Qt WebEngine and are interested in setting feature priorities, but are not able to contribute directly to the development, you can help us direct resources towards Qt WebEngine by becoming Qt Enterprise licensee or establishing another commercial agreement with Digia. You can also provide feedback by sending us an email: qt.webengine@digia.com

Where to Get More Information

Our rather minimal wiki page can be found here: http://qt-project.org/wiki/QtWebEngine
If you are planning on contributing to the development of Qt WebEngine, please sign up to our mailing list at: http://lists.qt-project.org/mailman/listinfo/qtwebengine or find us on our freenode channel #qtwebengine.


Blog Topics:

Comments