wiki:QtWebKitTableOfFeatures20

Version 35 (modified by Henry Haverinen, 15 years ago) ( diff )

--

DRAFT Feature documentation for QtWebKit 2.0

NOTE: This is page is incomplete and under construction, and may contain errors at this point.

Overview

QtWebKit 2.0 is a web content engine based on the Open Source WebKit engine.

High-level list of supported standards:

  • HTML 4.01
  • Partial and experimental support for upcoming HTML 5
  • Partial support fro XHTML Basic 1.1
  • Partial support for CSS Level 2 Rev 1
  • Partial and experimental support for upcoming CSS3
  • JavaScript 1.5 support (ECMA-262 3rd Edition)
  • Document Object Model (DOM) Level 1. Partial support for the following: Document Object Model (DOM) Level 2 HTML Specification 1.0, Document Object Model (DOM) Level 2 Core Specification and Document Object Model (DOM) Level 0
  • AJAX technologies, including XMLHTTPRequest
  • Partial support for SVG Tiny 1.2

As a general indicator of web compliance, QtWebKit 2.0 passes the Acid 2 and Acid 3 tests.

QtWebKit has a C++ API that allows Qt applications to embed web content, and to examine and manipulate the web content. The QtWebKit C++ API is extensively documented in the QtWebKit documentation. The C++ API documentation for QtWebKit 2.0 is included in Qt 4.7 documentation, available at http://doc.qt.nokia.com.

QtWebKit 2.0 is included in Qt 4.7. It can also be used with Qt 4.6 or Qt 4.5, however these cases are not covered by commercial support from Nokia. Qt 4.5 support is community driven and not verified by Nokia.

Terms used in this documentation

This documentation uses the following classification for the levels of support:

  • Not implemented: implementation for the feature does not exist or is so incomplete that even validation and experimentation is not recommended
  • Technology preview: the implementation of the feature is available for experimentation and validation, but not recommended for production use. The implementation may be incomplete and there may be known problems. In some cases, features that are in technology preview are disabled by default.
  • Experimental: the implementation of the feature can be used in production applications with the caveat that the API, standard or the implementation may be still change in future releases, or there may be some gaps or limitations in the implementation.
  • Supported: the feature is fully ready for production applications. The implementation has been verified, and we don't expect changes in the API or standard.

What's new in QtWebKit 2.0

The highlights of the QtWebKit 2.0 release are listed here

  • Increased focus on performance through new performance benchmarks and benchmarking tools
  • Increased focus on quality e.g. through improved automatic test coverage
  • Tiling support in QGraphicsWebView, for improved scrolling and zooming performance
  • Frame flattening (resize frames to fit their content to avoid separate scrollbars)
  • Improvements in the NPAPI support (ongoing)
  • Improvements in the native look and feel on Maemo 5
  • Hybrid development: support for transporting QPixmaps between Qt C++ and WebKit, and improved documentation for hybrid C++ and QtWebKit projects
  • Technology preview: Support for CSS View Modes media feature
  • Technology preview: support for accelerated compositing, which enhances the performance of CSS animations and transitions
  • Technology preview: JIT support on Symbian
  • Technology preview (early): WebGL support

JavaScript JIT

Just-in-time (JIT) compilation for JavaScript is supported on the following platforms:

  • Mac OS X, 64-bit and 32-bit
  • Windows desktop platforms when using Microsoft Visual C++ or gcc 4.1 or higher (MinGW). 32-bit build only; JIT is not supported on 64-bit builds on Windows.
  • Linux on x86 platforms with gcc 4.1 or higher
  • Linux on ARM (Thumb-2 JIT is not currently used)
  • Symbian (technology preview, not enabled by default)

Netscape Plug-in API

QtWebKit supports the Netscape Plug-in API on X11, Windows, Mac OS X and Symbian.

Advanced CSS Features

Feature Status Layout tests
CSS 2D Transforms Module Level 3 Experimental, with -webkit prefix. Performance enhanced implementation with accelerated compositing in Technology Preview. LayoutTests/transforms, LayoutTests/transforms/2d, /LayoutTests/fast/transforms, LayoutTests/fast/css
CSS 3D Transforms Module Level 3 ? LayoutTests/transforms, LayoutTests/transforms/3d/general, LayoutTests/transforms/3d/hit-testing, LayoutTests/transforms/3d/point-mapping, LayoutTests/compositing/animation
CSS Transitions Module Level 3 Experimental, with -webkit prefix. Performance enhanced implementation with accelerated compositing in Technology Preview. LayoutTests/transitions, LayoutTests/fast/css, LayoutTests/compositing/transitions
CSS Animations Module Level 3 Experimental, with -webkit prefix LayoutTests/animations, LayoutTests/animations/3d, LayoutTests/compositing/animation
Backgrounds and Borders Module Level 3 support Technology preview, with -webkit prefix
CSS Text Level 3 Not implemented
CSS Fonts Module Level 3 Technology preview
Styling scrollbars with CSS Technology preview, with -webkit-scrollbar-*
-webkit-mask-* CSS properties Experimental, WebKit specific
CSS Canvas drawing Experimental, WebKit specific
CSS reflections Experimental, WebKit specific
CSS View Modes Media feature Technology preview

Web application features

Feature Status Qt documentation Layout test
HTML5 Offline support: HTML5 application cache (manifest attribute) Technology preview (1), (2) OfflineWebApplicationCacheEnabled attribute
HTML5 Offline support: Web Storage (DOM storage, local storage & session storage) Experimental (1), (2) LocalStorageEnabled attribute LayoutTests/storage
HTML5 Offline support: Web SQL Database Experimental [(1), (2) OfflineStorageDatabaseEnabled attribute
HTML5 Offline support: navigator.onLine attribute, online and offline events ?
Web Workers - dedicated workers Technology preview LayoutTests/workers
Web Workers - shared workers Technology preview LayoutTests/fast/workers
HTML5 Cross-document messaging API Technology preview
Web Sockets Not implemented LayoutTests/websocket

HTML5 canvas and media

Feature Status Layout test
<canvas> element Experimental (partial support). LayoutTests/fast/canvas
3D canvas support with WebGL Technology preview (partial support)

QtWebKit has had experimental support for HTML5 media via the Phonon multimedia integration since Qt 4.5. As of QtWebKit 2.0, we have added integration to the new QtMultimedia framework in Qt 4.7. In the future, improvements and new development will focus on the QtMultimedia framework based architecture.

Feature Status Layout test
<audio>, <video> and <source> element Technology preview with QtMultimedia in Qt 4.7. Also previous experimental support with Phonon still available when using Qt 4.6. LayoutTests/media, LayoutTests/fast/media
<embed> element for embedding content such as a plug-in ?

HTML5 functionality in web forms

Feature Status Layout test
HTML5 input types such as email, tel, date, color Not implemented
autofocus attribute for web form controls Technology preview
placeholder attribute for placeholder text in an input field Technology preview
autocomplete attribute for input values ?
maxlength attribute for text fields ?

Other new web developer APIs and HTML5 features

Feature Status Layout test
Geolocation API Not implemented
W3C Selectors API Experimental
HTML5 getElementsByClassName API Experimental
W3C Server-sent Events ?
Multi-touch input DOM events Technology preview
contenteditable global attribute Experimental
<progress> progress indicator Technology preview (which platforms? will this be enabled by default?)
<meter> an indicator for scalar measurement Technology preview (which platforms? will this be enabled by default?)
<a rel="noreferrer"> (don't provide referrer info when following link) ?, support exist in WebKit (http://webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/)
HTML5 drag and drop, draggable attribute Technology preview ?
<ruby>, <rt>, <rp> elements for Chinese notes or characters ?, support in webkit: http://webkit.org/blog/948/ruby-rendering-in-webkit/
Note: See TracWiki for help on using the wiki.