Version 20 (modified by 15 years ago) ( diff ) | ,
---|
Feature documentation for QtWebKit 2.0
NOTE: This is page is incomplete and under construction. These tables will be moved to QtWebKit documentation.
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
- XHTML 1.0
- CSS 2.1 and partial and experimental support for upcoming CSS3
- ECMAScript 3 (JavaScript)
- DOM Level 2
- AJAX technologies, including XMLHTTPRequest
- XHTML / MP support
QtWebKit 2.0 is included in Qt 4.7.
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.
- 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.
Features for C++ developers
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.
Web application features
Feature | Status | Qt documentation | Layout test |
HTML5 application cache (manifest attribute) | Technology preview | (1), (2) OfflineWebApplicationCacheEnabled attribute | |
Web Storage (DOM storage, local storage & session storage) | Experimental | (1), (2) LocalStorageEnabled attribute | LayoutTests/storage |
Web SQL Database | Experimental | [(1), (2) OfflineStorageDatabaseEnabled attribute | |
navigator.onLine attribute, online and offline events | ? | ||
Web Workers - dedicated workers | Not implemented ? | LayoutTests/workers | |
Web Workers - shared workers | Not implemented ? | LayoutTests/fast/workers | |
Web Sockets | Not implemented | LayoutTests/websocket |
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)
Netscape Plug-in API
QtWebKit supports the Netscape Plug-in API on X11, Windows, Mac OS X and Symbian.
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 |
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 -webkit-scrollbar-* CSS properties | ? | |
-webkit-mask-* CSS properties | Experimental, WebKit specific | |
CSS Canvas drawing | Experimental, WebKit specific | |
CSS reflections | Experimental, WebKit specific |
HTML5 functionality in web forms
Feature | Status | Layout test |
<input type="search"> for search boxes | Not implemented | |
<input type="number"> for spinboxes | Not implemented | |
<input type="range"> for sliders | Not implemented | |
<input type="color"> for color pickers | Not implemented | |
<input type="tel"> for telephone numbers | Not implemented | |
<input type="url"> for web addresses | Not implemented | |
<input type="email"> for email addresses | Not implemented | |
<input type="date"> for calendar date pickers | Not implemented | |
<input type="month"> for months | Not implemented | |
<input type="week"> for weeks | Not implemented | |
<input type="time"> for timestamps | Not implemented | |
<input type="datetime"> for precise, absolute date+time stamps | Not implemented | |
<input type="datetime-local"> for local dates and times | Not implemented | |
<input type="file"> for selecting local files | Not implemented | |
<menu> a menu list of form controls | ||
<command> a command button inside a <menu> element | ||
<datalist> element and list attribute (for input type="list") | ||
<keygen> element, challenge attribute and keytype attribute for PKI key generation | ||
<output> element | ||
autocomplete attribute for input values | ||
autofocus attribute for web form controls | technology preview | |
required attribute for specifying mandatory input fields | ||
multiple attribute (if present, multiple input values allowed) | ||
pattern attribute for validating input field's value | ||
step attribute for date/time related input types | ||
placeholder attribute for placeholder text in an input field | technology preview | |
form attribute | ||
maxlength attribute for text fields | ||
novalidate attribute |
HTML5 semantic elements
Feature | Status | Layout test |
<section> | ||
<nav> | ||
<article> | ||
<aside> | ||
<hgroup> | ||
<header> | ||
<footer> | ||
<time> | ||
<mark> | ||
<details> | Not implemented | |
HTML5 Microdata (item, itemprop attributes, microdata DOM API) | ||
window.onhashchange event (fires when a window's hash (#) location changes) |
Miscellaneous web developer APIs
Feature | Status | Layout test |
Geolocation API | Not implemented | |
HTML5 getElementsByClassName API | Experimental | |
HTML5 element.classList API | ||
HTML5 registerProtocolHandler API | ||
HTML5 registerContentHandler API | ||
HTML5 Cross-document messaging API | ||
W3C Selectors API | Experimental | |
W3C Server-sent Events | ||
Multi-touch input DOM events | Not implemented |
Miscellaneous HTML5 features
Feature | Status | Layout test |
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 | Technology preview | |
<ruby>, <rt>, <rp> elements for Chinese notes or characters | ||
<figure> element | ||
<embed> element for embedding content such as a plug-in | ||
Inline MathML | Not implemented | |
Inline SVG | ||
sizes attribute for <link> | ||
charset attribute for <meta> | ||
scoped attribute for <style> | ||
async attribute for <script> | ||
ping attribute for <a>, <area> | ||
reversed attribute for <ol> | ||
sandbox attribute for <iframe> | ||
seamless attribute for <iframe> | ||
Datasets (data-*) global attribute | ||
contextmenu global attribute | ||
hidden global attribute | ||
spellcheck global attribute |