May 20, 2010 - Comments Off on Live blogging Google I/O: HTML5 status update

Live blogging Google I/O: HTML5 status update

Ian Fette
Jeff Chang

Overview

* Recap: What's in HTML5
* What's happened since I/O 2009?
** Lessons learned
** New APIs
* What's next?

What is meant by HTML5

* It's a buzzword
* Spec has shed numerous features
* Storage specs are now separate
* File specs and others live in WebApps, DAP
* Geolocation
* WebGL

Many things were split out for convenience; too many things for a single working group

Areas we are excited by

* We've spent the past year on …
** Offline (Appcache, Storage)
** Media (Video, Audio, …)
** Networking (Web Sockets)
** CSS3, Paged Media, Layout
** Platform integration (Drag and Drop, Notifications, Geolocation, …)
* Focus is providing richer experience for web applications

What we've learned

Offline Apps

* Discovery and re-discovery
** Remembering to type in exact URL is difficult
** Many people don't use bookmarks
** Web Store helps discovery and re-discovery
* Packaging as an "app" can bootstrap permissions that need to be granted before use.

Indexed Database API

* "Specability" concerns around SQL
* A simple database, no SQL
* Has a "key" (DOMString or long) and associated "value" (object, array, …)

In the process of implementing a ??? DB, but no browser yet implements it. Why not SQL!

Storing Files

* Currently implemented storage APIs (Local Storage, Session Storage, WebSQLDB) don't meet all the use cases
* Storing binary data in Local Storage, Database can have severe performance implications
* Need to be able to treat data as a file
* Filesystem API (and FileReader, FileWriter) gives web applications a sandboxed, per-origin filesystem

Geolocation (aka "Security UI is hard")

* Access the user's location via a JavaScript API
* Accuracy varies based on device
* Permission model varies for embedded content (iframes)

Tied permission not to origin of JavaScript, but to top URL (for iframes and embedded maps.google.com)

Shared State between Pages

* Shared worker
** Standard, cross-browser
** Works well for apps designed around message passing
** No single script context
** Can't pass around parts of the DOM
** Example: Controlling access to shared File System API resources from multiple tabs

* Magic iFrame
** Can pass around parts of the DOM
** Can share scripting contexts
** Example: Gmail window tearoffs

Dragging files on the web is a drag

* Intuitive, simple ways to upload, download files
* Drag-in: desktop to browser
** Listen to drop event
** Obtain File object, send via XHR
* Drag-out: browser to desktop
** DownloadURL format in DataTransfer object
** Contains file type, name, URL

Notifications

* Let the app notify the user in an unobtrusive manner
* Developer can provide HTML or plain text content
* Permission is assigned on origin basis
* Currently two specs:
** http://dev.w3.org/2006/webapi/WebNotifications/publish/
** http://www.chromium.org/developers/design-documents/desktop-notifications
* Plan to deprecate the latter in favor of the former

What's over the horizon

TTS (text-to-speech) and voice recognition

* Voice is the hot new thing in mobile
* Let a web app accept voice commands and input
* Speak results to the user


Webcam/microphone access

* Laptops and phones today ship with integrated webcams, microphones
* Many use cases for accessing these devices:
** Videoconferencing
** Taking a picture (profile pics)
** Scanning barcodes
** Letting the world hear you sing a Lady Gaga song
* Looking to expose APIs that let you capture a single blob and a s stream

[Wow, this is a win]

Positional Audio

* Adding JS apis for enhanced audio

Web GL

* JS bindings to OpenGL
* Allows creation of 3D games in the web
* Pioneered by Firefox, now being implemented in Google Chrome, Apple Safari and more

Published by: jeffreybarke in The Programming Mechanism

Comments are closed.