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.