Except as otherwise noted, the content of this page is licensed under a Creative Commons Attribution 2.5 license, and examples are licensed under the BSD License.

The Chromium OS designs and code are preliminary. Expect them to evolve.
For Developers‎ > ‎

Web Platform Status

Last updated: Jan 26, 2012
DevRel Contact: Paul Irish (paulirish)

To watch updates to this page, subscribe to the chromium-html5 discussion group, which will be sent a diff of updates. You can also watch these features more closely:  the chromium bug tickets or add yourself to the CC of webkit tickets.  You may also want to watch the Last Week in WebKit/Chromium series for weekly updates on the Chromium platform.

Many of these features have their own jumpoff point on html5rocks.com, with links to solid tutorials and resources.
The near-daily-updated Chrome Canary lands these features much sooner than the stable or beta releases. (Though it's pre-alpha, so expect bugs!)

Note: In this page there are many references to "m6" and such. This refers to the stable Chrome release of that version. 



File APIs

Handle file uploads and file manipulation.
Availability: Basic File API support in m5.
Spec: w3c spec
Notes: Limited form of drag-and-drop available in Firefox 3.6

File System

Availability: started to land in m8, but only available for apps & extensions. Targeting m13 for stable release. Synchronous APIs are in m9 for web workers.
                  window.resolveLocalFileSystemURL() and Entry.toURL() were added in m11.
Spec: w3c spec
Notes: devtools support coming. Will need flags --allow-file-access-from-files --unlimited-quota-for-files for testing.
Demos: layouttests

FileWriter

Availability: basic in m8, sync api in m9 for web workers
Spec: w3c spec 
Tickets: webk.it/44358
Dev Contact: Jian Li (jianli), Eric Uhrhane (ericu)

FileReader

Can read local and parse local files.
Availability: m7.
Spec: w3c spec
Demo: demo

BlobBuilder

Build binary blobs.
Availability: m8.
Demo: demo
Spec: w3c spec
Notes: window.createBlobURL() changed to new spec's window.createObjectURL() somewhere around m8. As of M10, the call is prefixed under window.webkitURL.createObjectURL().


Tells the browser to download a resource rather than navigating to it. See update.html5rocks.com post.
Availability: M14
Spec: whatg spec

Typed Arrays

Buffers for holding binary data and working with WebGL & Audio API: ArrayBufferFloat32Array , Int16Array, Uint8Array, etc.) 
Availability: m7 for most. DataView is m9. Float64Array in m13. 
Spec: Khronos
Notes: worker.postMessage(TypedArray|ArrayBuffer) landed in m13 using structured cloning.


a[download] attribute

When used on an <a>, this attribute signifies that the resource it points to should be downloaded by the browser rather than navigating to it. 
Availability: M14
Spec: whatwg
Demo: demo


Offline and XHR

App Cache

Enables web pages to work without the user being connected to the internet

Notes: Chrome's implementation is maxed at 260MB. Individual files max out at 32MB (260MB/8)
Availability: m5. Dev tools support added in m6
Dev Contact: Michael Nordman (michaeln)


XHR supports xhr.send(ArrayBuffer)

Allows for sending a binary byte array using xhr.
Availability: targeting m9
Dev Contact: Jian Li (jianli)
Spec: w3 draft

XHR supports xhr.send(Blob|File)

Allows for sending a Blob or File using xhr.
Availability: m7
Spec: w3 draft
Dev Contact:  Eric Uhrhane (ericu)
Tickets: crbug.com/51267

XHR supports xhr.send(FormData)

Availability: landed m6


XHR.response, XHR.responseType

Allows reading an xhr response as a blob/arraybuffer (xhr.responseType = 'arraybuffer', xhr.responseType = 'blob')

Availability: m10. m18 adds xhr.responseType = 'document' (see HTML in XMLHttpRequest) and
restricts the usage of synchronous XHRs (xhr.open(..., false);)  by throwing an error when .responseType is set.
Spec: w3 draft
Tickets: crbug.com/52486 (arraybuffer works, blob does not)
Dev Contact: Michael Nordman (michaeln)

XMLHttpRequestProgressEvent

Availability: m7
Spec: w3 draft

navigator.connection

Access the underlying network information (connection info) of the device.

Availability: target unknown
Spec: w3 draft
Tickets: webk.it/73528
Notes: Not implemented yet
Dev Contact: -

navigator.onLine

Allows an application to check if the user has an active internet connection. Also can register 'online' and 'offline' event handlers.

Availability: m14
Dev Contact: adamk

navigator.registerProtocolHandler() 

Allow web applications to handle URL protocols like mailto:.
Availability: m13
Tickets: crbug.com/11359
Notes: Protocol whitelist: "mailto", "mms", "nntp", "rtsp", "webcal". Custom protocols require "web+" prefix (e.g. "web+myScheme").
           There are no plans to implement registerContentHandler.
Dev Contact: koz

Directory upload

Allow specifying a directory to upload (<input type="file" multiple webkitdirectory />), which is just be an extension of existing form mime-multipart file upload.
Availability: m8
Demo: demo

Websockets

Spec: W3C editor's draft
Protocol Spec: RFC 6455
Demo: demo
Planned: Support in DevTools. Currently it captures open and close of socket connections, but not the data.
Dev Contact: Yuta Kitamura (yutak)

Strict Transport Security

Header to inform the browser to always request a given domain over SSL, reducing MITM attack surface area.
Availability: m4
Spec: ietf spec

a[ping] attribute.

Notify resource on link click. 
Availability: Chrome 7. 
Notes: webkit changeset. Can be disabled through a command line flag or in about:flags

Storage


Web SQL Database

API exposing an SQLite database 
Availability: m4.
Notes: No spec progress or other implementations (outside of Webkit/Opera) expected.
Demo: demo
Dev Contact: Dumitru Daniliuc (dumi)

Availability: Indeterminate status

Indexed Database API  

Availability: Landed in m11. Currently prefixed as webkitIndexedDB.
Spec: Draft w3c spec
Notes: formerly called WebSimpleDB. Up to Firefox 4beta9, it was accessible as moz_indexedDB, now mozIndexedDB.
cmp added to Chrome 16 and  deleteDatabase added to Chrome 17.
Demo: DemoLayoutTest IndexedDB tutorial & demo
Dev Contact: dgrogan, hwennborg, jsbell

Web Storage

Availability: localStorage in m4, sessionStorage in m5
Notes: localStorage serves basic use cases. For more comprehensive storage solution, consider IndexedDB. While the spec indicates anything that structured clone algorithm can clone can be stored, all browser implementations currently allow only strings. Chrome's storage capacity is currently 2.5mb.
Tickets: webk.it/41645
Dev Contact: Jeremy Orlow (jorlow)


Quota Management API

This API can be used to check how much quota an app/origin is using.

Availability: m13: FileSystem (TEMPORARY & PERSISTENT) and WebSQL (temp only). m14 : AppCache and IndexedDB were added (TEMP only)
Dev Contact: Kinuko Yasuda (kinuko)

CSS & Presentation


CSS3 3D Transforms

Availability:  m12
Spec: w3 spec
Notes: Associated GPU rendering quirkiness actively being worked on in prep for beta channel release.

new semantic sectioning elements

sectionarticleasidenavheader, and footer elements
Availability: m5

<progress> and <meter> elements

Offer a visual display of progress. 
Availability: m6
Spec: whatwg spec 

Ruby

Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations
Availability: m4
Notes: description & demo on whatwg blog

@font-face webfonts

Availability: OTF/TTF support in m4. WOFF in m6. 
Notes: unicode-range support planned. Improved handling of text while font asset is being downloaded, also planned.

Gradients

Availability: w3c linear-gradient() syntax as of m10. original webkit -gradient() syntax as of m3.
Notes: The legacy syntax will be retained for the foreseeable future.

Background printing

Opt-in ability to specify a background should be printed
Availability: landing in m16 with prefix: -webkit-print-background

Scoped style sheets

Boolean attribute for the <style> element (<style scoped>). When present, its styles only apply to the parent element.

Availability: landing in m18
Spec: whatwg
Demo: jsbin

Other CSS3

box-shadow: went unprefixed in m10
border-radius: went unprefixed in m5(?)
print-background: landing with prefix in m16
cross-fade(): landing with prefix (-webkit-cross-fade) in m17. demo

Graphics


Canvas 

Provides an API to draw 2D graphics 
Availability: m1, Safari, Firefox, Opera, IE9
Notes: Accelerated 2D canvas targeting m14 for windows/linux; perhaps m15 for mac. Currently, available in about:flags.
webp format: canvas.toDataURL("image/webp") added in m17 (WebKit 535), but m18 on Mac.
Spec
W3C Last Call Working draft

WebGL  (Canvas 3D)

3D rendering via the <canvas> element. 
Availability: m9
Notes: Originally project developed by Mozilla as a JavaScript API to make OpenGL calls - WebGL Wiki
Dev Contact: Vangelis Kokevis (vangelis), Ken Russell (kbr)

requestAnimationFrame

Offload animation repainting to browser for optimized performance. 
Availability: m10 , currently prefixed as window.webkitRequestAnimationFrame
Notes: As of FF4, Mozilla's implementation differs and offers lower framerates, but it will be addressed. This method should be used for WebGL, Canvas 2D, and DOM/CSS animation.
Dev Contact: jamesr


Accelerated Video: m10
WebP image format support: m9


Multimedia

Video and Audio

Natively play video and audio in the browser
Provides API and built-in playback controls
Availability: m3. Also Safari 4, Firefox 3.5
Codecs: mp4, ogv, and webm ship with Chrome. webm shipped in m6.
Notes: Mac and Linux have been at parity with Windows since m5. Future work will focus on performance. Currently we do everything in software (decode and rendering), whereas Flash uses hardware acceleration for part of the rendering. This results in <video> having a nontrivial overhead over Flash, especially on low-end CPUs (e.g. netbooks). We are looking into what we can do, including utilizing the GPU, to improve performance. 
Dev Contact: Andrew Scherkus (scherkus)


mediaElem.webkitAudioDecodedByteCount - m11
mediaElem.webkitVideoDecodedByteCount - m11
videoElem.webkitDecodedFrameCount - m11
videoElem.webkitDroppedFrameCount - m11

Web Audio API

Availability: dev channel since m12. stable channel in m14
Notes: enable via about:flags. Also, Mozilla has an alternative Audio Data API proposal
Dev Contact: crogers

Media Source API

Allows appending data to an <audio>/<video> element.

Availability: dev channel m17
Spec: Proposal
Notes: enable via about:flags or run with --enable-media-source flag.
Dev Contact: Aaron Colwell (acolwell)

WebRTC

Allows for real time communication in the browser. Combines the PeerConnection and navigator.getUserMedia() APIs.

Availability: dev channel m18
Spec: w3c spec
Notes: webrtc.org
Notes: enable via about:flags or run with --enable-media-stream flag.
 

Other Open Web Platform features


Desktop notifications

Availability: m5
Notes: Additional functionality added in m6: in-place replacement of notifications, BiDi support, Worker support, and UI improvement. 
Dev Contact: John Gregg (johnnyg) 

<details>/<summary> 

Device Orientation

Enables real-time events about the 3 dimensional orientation of the device/laptop
Availability: m7, in Intel-based Apple portables (apple.com kb), iOS 4.2+
Demo: demo

EventSource

Also called Server-sent Events, these are push notifications from the server received as DOM events.
Availability: m6

Fullscreen API

Programmatically instruct content on the page to be presented in the browser's full screen (kiosk) mode.
Availability: m15
Spec: w3c spec
Dev contact: jeremya

history.pushState

The pushState, replaceState, and clearState methods provide applications with programmatic control over session history. 
Availability: m5. history.state not yet implemented: crbug.com/63040

Geolocation

Enables websites to get geolocation information from browsers 
Availability: m5, also Firefox 3.5
Dev Contact: Andrei Popescu (andreip) 

GamePad API

Gives JS access to a game controller via USB.
Availability: targeting m18
Spec: W3C Editor's draft  
Dev contact: scottmg
Notes: Chromium tracking issue. Enabled in about:flags

Battery Status

Allows access to see the battery level of the device's battery
Availability: unknown

Magic <iframe>

Allow an IFRAME to be exchanged between documents without it interfering with the iframe's contentWindow. The overall goal is to speed up complex web applications that commonly use multiple windows (or are opened multiple times).
Availability: m5
Notes: Details on magic iframe

matchMedia()

API for testing if a given media query will apply.
Availability: m9

Mouse lock

Gives you access to raw mouse movement, locks the target of mouse events to a single element, eliminates limits of how far mouse movement can go in a single direction, and removes the cursor from view.
Availability: m18
Spec: W3C Editor's draft  
Dev contact: scheib

Page Visibility

Provides an API to ask whether the current tab is visibile or not. If you, you might want to throttle back action or set an idle state.
Availability: m13, prefixed as document.webkitHidden
Notes: Relatedly, setTimeout/Interval are clamped to 1000ms when in a background tab as of m11. Firefox 5 has the same behavior.
Dev Contact: shishir

Shadow DOM

Availability: (withdrawn)   
Notes: As of m13, things moved to the shadow dom: <progress>, <meter>, <video>, <input type=range>, <keygen>. More details at What the heck is a Shadow DOM?
Dev Contact: dglazkov

Workers

Provides a threading API
Availability: Chrome 3, Safari 4, Firefox 3.5. Shared workers available in m4.
Spec: WHATWG
Notes: Pre-M15, there were a limit to the number of workers that each page can start, as well as the number of workers that can be running globally across all pages. This was because a new process was started for each worker. As of M15, workers are started in-process, meaning  less memory footprint and faster messaging. Transferrable objects landed in  m17 (see next)
Dev Contact: Dmitry Lomov (dslomov), Drew Wilson (atwilson)

Transferable Object messaging passing.

With transferable objects/data, ownership is transferred from one context to another. It is zero-copy, which vastly improves the performance of sending data to a Worker or another window.

Availability: m17
Spec: w3c spec
Notes: landed as prefixed: [window|worker].webkitPostMessage(uInt8Array.buffer, [uInt8Array.buffer]);

Webforms 

Availability: See HTML5 Forms Status for all details. (Updated as recently as Aug 3rd, 2011).

DOM APIs


Element.outerHTML - m1
Element.textContent (faster than innerHTML for plain text) - m1
Element.classList (classList.add/remove methods) - m8
Element.dataset (Provides easy access to data-* attribute values) - m8

window.onerror event - m10
crypto.getRandomValues() - m11
selectionchange event - m11


Chrome  Extensions




More resources for going deep with HTML5:


Subpages (2): HTML5 Forms Status test

Sign in  |  Recent Site Activity  |  Terms  |  Report Abuse  |  Print page  |  Powered by Google Sites