= 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 project. QtWebKit has broad support for modern web technologies and is compliant with typical web content. QtWebKit is developed in the trunk of WebKit's source code repository, which enables every new release of QtWebKit to include the latest developments from the WebKit project. As a general indicator of web compliance, QtWebKit 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, however this case is not covered by commercial support from 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 * '''Experimental''': the implementation of the feature is experiemental. The standard or the implementation may still change in future releases, or there may be even significant gaps or limitations in the implementation. Experimentation is required before using the feature in production applications. * '''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 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 * Full screen editing of elements on mobile platforms * A new theme for form controls on mobile platforms. The theme has been designed to be compliant with web content and it is independent from the current device theme and the QStyle used by the application. * Support for CSS View Modes media feature * Support for accelerated compositing, which enhances the performance of CSS animations and transitions * Technology preview, not enabled by default: JIT support on Symbian = 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) * Linux on MIPS architecture, maintained by MIPS Technologies. * Symbian (experimental, not enabled by default) = Netscape Plug-in API = QtWebKit supports the Netscape Plug-in API on X11, Windows, and Mac OS X. = Advanced CSS Features = || '''Feature''' || '''Status''' || '''Layout tests''' || || [http://www.w3.org/TR/css3-2d-transforms/ 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 || || [http://www.w3.org/TR/css3-3d-transforms/ 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 || || [http://www.w3.org/TR/css3-transitions/ 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 || || [http://www.w3.org/TR/css3-animations/ CSS Animations Module Level 3] || Experimental, with -webkit prefix || LayoutTests/animations, LayoutTests/animations/3d, LayoutTests/compositing/animation || || [http://www.w3.org/TR/css3-background/ Backgrounds and Borders Module Level 3 support] || Technology preview, with -webkit prefix || || || [http://dev.w3.org/csswg/css3-text/ CSS Text Level 3] || Not implemented || || || [http://www.w3.org/TR/css3-fonts/ CSS Fonts Module Level 3] || Technology preview || || || [http://webkit.org/blog/363/styling-scrollbars/ Styling scrollbars with CSS] || Technology preview, with -webkit-scrollbar-* || || || [http://webkit.org/blog/181/css-masks/ -webkit-mask-* CSS properties] || Experimental, WebKit specific || || || [http://webkit.org/blog/176/css-canvas-drawing/ CSS Canvas drawing] || Experimental, WebKit specific || || || [http://webkit.org/blog/182/css-reflections/ CSS reflections] || Experimental, WebKit specific || || || [http://www.w3.org/TR/widgets-vmmf/ CSS View Modes Media feature] || Technology preview || || || [http://www.w3.org/TR/2000/WD-css3-userint-20000216#user-select -webkit-user-select] || ? || || = Web application features = || '''Feature''' || '''Status''' || ''' Qt documentation''' || '''Layout test''' || || HTML5 Offline support: HTML5 application cache (manifest attribute) || Technology preview || [http://doc.qt.nokia.com/4.6/qwebsettings.html#setOfflineWebApplicationCachePath (1)], [http://doc.qt.nokia.com/4.6/qwebsettings.html#WebAttribute-enum (2)] OfflineWebApplicationCacheEnabled attribute || || || HTML5 Offline support: Web Storage (DOM storage, local storage & session storage) || Experimental || [http://doc.qt.nokia.com/4.6/qwebsettings.html#setLocalStoragePath (1)], [http://doc.qt.nokia.com/4.6/qwebsettings.html#WebAttribute-enum (2)] LocalStorageEnabled attribute || LayoutTests/storage || || HTML5 Offline support: Web SQL Database || Experimental || [[http://doc.qt.nokia.com/4.6/qwebsettings.html#setOfflineStoragePath (1)], [http://doc.qt.nokia.com/4.6/qwebsettings.html#WebAttribute-enum (2)] OfflineStorageDatabaseEnabled attribute || || || HTML5 Offline support: navigator.onLine attribute, online and offline events || Experimental || || || 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''' || || 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''' || ||