SlideShare a Scribd company logo
HTML 5 and
Google Chrome
Mihai Ionescu
Developer Advocate, Google
Browsers Started a Revolution that Continues
• In 1995 Netscape introduced JavaScript
• In 1999, Microsoft introduces XMLHTTP
• In 2002, Mozilla 1.0 includes XMLHttpRequest natively


... Then web applications started taking off ...


• In 2004, Gmail launches as a beta
• In 2005, AJAX takes off (e.g. Google Maps)


... Now web applications are demanding more capabilities
User Experience   The Web is Developing Fast…




                               XHR
                                             Native       Web
                         CSS

                     DOM
                  HTML




           1990 – 2008 Q109          Q209   Q309   Q409
The Web is Developing Fast…


                                                                                                        Android 2.0: Oct 26, 2009


                                                                                                    Chrome 3.0: Sep 15, 2009

                                                                                             Firefox 3.5: June 30, 2009
User Experience




                                                                                      iPhone 3.0: June 30, 2009



                                                                            Safari 4.0: Jun 08, 2009

                                                                   Palm Pre: June 06, 2009
                                                           Chrome 2.0: May 21, 2009
                                              Android 1.5: Apr 13, 2009

                               XHR
                                     Opera Labs: Mar 26, 2009                                   Native            Web
                         CSS

                     DOM
                  HTML




           1990 – 2008 Q109                                       Q209                       Q309        Q409
The web is also getting faster
                            160


                            140
SunSpider Runs Per Minute




                            120


                            100                        100x improvement
                                                   in JavaScript performance
                            80


                            60


                            40


                            20


                            00
                                  2001   2003   2005   2007        2008        2009
What New Capabilities do Webapps Need?
• Plugins currently address some needs, others are still not well
 addressed
   – Playing video
   – Webcam / microphone access
   – Better file uploads
   – Geolocation
   – Offline abilities
   – 3D
   – Positional and multi-channel audio
   – Drag and drop of content and files into and out of webapps
• Some of these capabilities are working their way through
 standards process
Our Goal
• Empower web applications
  – If a native app can do it, why can’t a webapp?
  – Can we build upon webapps strengths?
• Understand what new capabilities are needed
  – Talking to application developers (you!)
  – Figure out what native applications people run
      • And what web applications serve similar purposes
      • And what native applications have no web equivalent
• Implement (we’re going full speed ahead...)
  – We prototyped in Gears
  – Now we’re implementing natively in Google Chrome
• Standardize
<canvas>
• One of the first HTML5 additions to be implemented by
 browsers – in Safari, then Firefox and Opera. (We got it for
 free in Google Chrome from WebKit).
• Provides a surface on which you can draw 2D images
• Talk of extending the model for 3D (more later)


// canvas is a reference to a <canvas> element
  var context = canvas.getContext('2d');
  context.fillRect(0,0,50,50);
  canvas.setAttribute('width', '300'); // clears the canvas
  context.fillRect(0,100,50,50);
  canvas.width = canvas.width; // clears the canvas
  context.fillRect(100,0,50,50); // only this square remains

(reproduced from http://www.whatwg.org/specs/web-apps/current-
work/#canvas with permission)
<canvas> Demo
<video> / <audio>
• Allows a page to natively play video / audio
 – No plugins required
 – As simple as including an image - <audio src=“song.mp3”>
• Has built-in playback controls
 – Stop
 – Pause
 – Play
• Scriptable, in case you want your own dynamic control
• Implemented in WebKit / Chrome
<video> / < audio> Demo
Local Data Store
• Provides a way to store data client side
• Useful for many classes of applications, especially in
 conjunction with offline capabilities
• 2 main APIs provided: a database API (exposing a SQLite
 database) and a structured storage api (key/value pairs)
• Implementation under way in Google Chrome, already
 working in WebKit.
  db.transaction(function(tx) {
    tx.executeSql('SELECT * FROM MyTable', [],
        function(tx, rs) {
          for (var i = 0; i < rs.rows.length; ++i) {
            var row = rs.rows.item(i);
            DoSomething(row['column']);
          }
        });
    });
Local Storage Demo
Workers
• Workers provide web apps with a means for concurrency
• Can offload heavy computation onto a separate thread so
 your app doesn’t block
• Come in 3 flavors:
 – Dedicated (think: bound to a single tab)
 – Shared (shared among multiple windows in an origin)
 – Persistent (run when the browser is “closed”)
 main.js:
   var worker = new Worker(‘extra_work.js');
   worker.onmessage = function (event) { alert(event.data); };

 extra_work.js:
   // do some work; when done post message.
   postMessage(some_data);
Workers Demo
Application Cache
• Application cache solves the problem of how to make it such
 that one can load an application URL while offline and it just
 “works”
• Web pages can provide a “manifest” of files that should be
 cached locally
• These pages can be accessed offline
• Enables web pages to work without the user being connected
 to the Internet
• Implemented in WebKit, implementation ongoing in Google
 Chrome
Web Sockets
• Allows bi-directional communication between client and
 server in a cleaner, more efficient form than hanging gets
 (or a series of XMLHttpRequests)
• Intended to be as close as possible to just exposing raw
 TCP/IP to JavaScript given the constraints of the Web.
• Available in dev channel


 var socket = new WebSocket(location);
 socket.onopen = function(event) {
                    socket.postMessage(“Hello, WebSocket”);}
 socket.onmessage =function(event) { alert(event.data); }
 socket.onclose = function(event) { alert(“closed”); }
Notifications
• Alert() dialogs are annoying, modal, and not a great user
 experience
• Provide a way to do less intrusive event notifications
• Work regardless of what tab / window has focus
• Provide more flexibility than an alert() dialog
• Prototype available in Webkit / Chrome
• Standardization discussions ongoing
 var notify = window.webkitNotifications.createNotification(
                                         icon, title, text);
 notify.show();

 notify.ondisplay = function() { alert(‘ondisplay’); };
 notify.onclose = function() { alert(‘onclose’); };
Notifications Demo
3D APIs
• WebGL (Canvas 3D), developed by Mozilla, is a command-
 mode API that allows developers to make OpenGL calls via
 JavaScript
• O3D is an effort by Google to develop a retain-mode API
 where developers can build up a scene graph and manipulate
 via JavaScript, also hardware accelerated
• Discussion on the web and in standards bodies to follow
WebGL Demo
Geolocation
• Make JavaScript APIs from the client to figure out where you
 are
• Location info from GPS, IP address, Bluetooth, cell towers
• Optionally share your location with trusted parties
• Watch the user’s position as it changes over time
• Implementation ongoing in Chrome


  // Single position request.
  navigator.geolocation.getCurrentPosition(successCallback);

  // Request position updates.
  navigator.geolocation.watchPosition(successCallback);
Geolocation Demo
And So Much More…
• There’s much work ahead.
• Some is well defined
 – File API
 – Forms2
 – WebFont @font-face
• Many things less defined
 – P2p APIs
 – Better drag + drop support
 – Webcam / Microphone access
 – O/S integration (protocol / file extension handlers and more)
 – And more
Chrome HTML 5 in a Nutshell
      Video, Audio, Workers
                                                            Additional APIs
      available in Chrome 3.
                                                            (TBD) to better
      Websockets in dev channel.                            support web
                                                            applications
                  Appcache,             More work
                  Notifications,        -Geolocation
                  Database,             , Web GL,
                  Local storage,        File API
                  in dev channel




 Q4          Q1 / 2010             Q2                  Q3
HTML 5 Native Support



Canvas

Video

….

Local storage

Web workers
HTML 5 Native Support

                        with
                        Chrome Frame

Canvas

Video

….

Local storage

Web workers
HTML 5 Resources
www.whatwg.org/html5

www.chromium.org/developers/web-platform-status

blog.chromium.org

diveintohtml5.org

quirksmode.org
Q&A
HTML5 and Google Chrome - DevFest09

More Related Content

What's hot

Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome Extensions
Ron Reiter
 
Chrome Apps & Extensions
Chrome Apps & ExtensionsChrome Apps & Extensions
Chrome Apps & Extensions
Varun Raj
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best Practices
Danilo Ercoli
 
Google chrome os chromebook
Google chrome os chromebookGoogle chrome os chromebook
Google chrome os chromebook
Prashant Raj
 

What's hot (20)

Introduction to chrome extension development
Introduction to chrome extension developmentIntroduction to chrome extension development
Introduction to chrome extension development
 
Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome Extensions
 
Introduction of chrome extension development
Introduction of chrome extension developmentIntroduction of chrome extension development
Introduction of chrome extension development
 
Build your own Chrome Extension with AngularJS
Build your own Chrome Extension with AngularJSBuild your own Chrome Extension with AngularJS
Build your own Chrome Extension with AngularJS
 
Chrome extension development
Chrome extension developmentChrome extension development
Chrome extension development
 
An Introduction to Google Chrome OS..........
An Introduction to Google Chrome OS..........An Introduction to Google Chrome OS..........
An Introduction to Google Chrome OS..........
 
Chrome Apps & Extensions
Chrome Apps & ExtensionsChrome Apps & Extensions
Chrome Apps & Extensions
 
Introduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions DevelopmentIntroduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions Development
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best Practices
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPress
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
 
Google chrome
Google chromeGoogle chrome
Google chrome
 
Making Chrome Extension with AngularJS
Making Chrome Extension with AngularJSMaking Chrome Extension with AngularJS
Making Chrome Extension with AngularJS
 
Google chrome operating system
Google chrome operating systemGoogle chrome operating system
Google chrome operating system
 
Google chrome OS
Google chrome OSGoogle chrome OS
Google chrome OS
 
Google chrome operating system.ppt
Google chrome operating system.pptGoogle chrome operating system.ppt
Google chrome operating system.ppt
 
Google Chrome Operating System
Google Chrome Operating SystemGoogle Chrome Operating System
Google Chrome Operating System
 
Google chrome os chromebook
Google chrome os chromebookGoogle chrome os chromebook
Google chrome os chromebook
 
Browser Performance Tests - Internet Explorer 11 vs Firefox 25 vs Google Chro...
Browser Performance Tests - Internet Explorer 11 vs Firefox 25 vs Google Chro...Browser Performance Tests - Internet Explorer 11 vs Firefox 25 vs Google Chro...
Browser Performance Tests - Internet Explorer 11 vs Firefox 25 vs Google Chro...
 
Advanced Chrome extension exploitation
Advanced Chrome extension exploitationAdvanced Chrome extension exploitation
Advanced Chrome extension exploitation
 

Similar to HTML5 and Google Chrome - DevFest09

ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignalITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
Yaniv Uriel
 

Similar to HTML5 and Google Chrome - DevFest09 (20)

Google - Charla para CTOs
Google - Charla para CTOsGoogle - Charla para CTOs
Google - Charla para CTOs
 
Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
Opera and the Open Web platform
Opera and the Open Web platformOpera and the Open Web platform
Opera and the Open Web platform
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
 
DDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su LotusDDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su Lotus
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009
 
Html ppts
Html pptsHtml ppts
Html ppts
 
HTML
HTMLHTML
HTML
 
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignalITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
 
Html5
Html5Html5
Html5
 
Google html5 Tutorial
Google html5 TutorialGoogle html5 Tutorial
Google html5 Tutorial
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
 
DESIGN IT! Conference 2009 - Cloud User Interface
DESIGN IT! Conference 2009 - Cloud User InterfaceDESIGN IT! Conference 2009 - Cloud User Interface
DESIGN IT! Conference 2009 - Cloud User Interface
 
Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with Joomla
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
 
Multi-homed applications
Multi-homed applicationsMulti-homed applications
Multi-homed applications
 
Don Schwarz App Engine Talk
Don Schwarz App Engine TalkDon Schwarz App Engine Talk
Don Schwarz App Engine Talk
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 

HTML5 and Google Chrome - DevFest09

  • 1.
  • 2.
  • 3. HTML 5 and Google Chrome Mihai Ionescu Developer Advocate, Google
  • 4. Browsers Started a Revolution that Continues • In 1995 Netscape introduced JavaScript • In 1999, Microsoft introduces XMLHTTP • In 2002, Mozilla 1.0 includes XMLHttpRequest natively ... Then web applications started taking off ... • In 2004, Gmail launches as a beta • In 2005, AJAX takes off (e.g. Google Maps) ... Now web applications are demanding more capabilities
  • 5. User Experience The Web is Developing Fast… XHR Native Web CSS DOM HTML 1990 – 2008 Q109 Q209 Q309 Q409
  • 6. The Web is Developing Fast… Android 2.0: Oct 26, 2009 Chrome 3.0: Sep 15, 2009 Firefox 3.5: June 30, 2009 User Experience iPhone 3.0: June 30, 2009 Safari 4.0: Jun 08, 2009 Palm Pre: June 06, 2009 Chrome 2.0: May 21, 2009 Android 1.5: Apr 13, 2009 XHR Opera Labs: Mar 26, 2009 Native Web CSS DOM HTML 1990 – 2008 Q109 Q209 Q309 Q409
  • 7. The web is also getting faster 160 140 SunSpider Runs Per Minute 120 100 100x improvement in JavaScript performance 80 60 40 20 00 2001 2003 2005 2007 2008 2009
  • 8. What New Capabilities do Webapps Need? • Plugins currently address some needs, others are still not well addressed – Playing video – Webcam / microphone access – Better file uploads – Geolocation – Offline abilities – 3D – Positional and multi-channel audio – Drag and drop of content and files into and out of webapps • Some of these capabilities are working their way through standards process
  • 9. Our Goal • Empower web applications – If a native app can do it, why can’t a webapp? – Can we build upon webapps strengths? • Understand what new capabilities are needed – Talking to application developers (you!) – Figure out what native applications people run • And what web applications serve similar purposes • And what native applications have no web equivalent • Implement (we’re going full speed ahead...) – We prototyped in Gears – Now we’re implementing natively in Google Chrome • Standardize
  • 10. <canvas> • One of the first HTML5 additions to be implemented by browsers – in Safari, then Firefox and Opera. (We got it for free in Google Chrome from WebKit). • Provides a surface on which you can draw 2D images • Talk of extending the model for 3D (more later) // canvas is a reference to a <canvas> element var context = canvas.getContext('2d'); context.fillRect(0,0,50,50); canvas.setAttribute('width', '300'); // clears the canvas context.fillRect(0,100,50,50); canvas.width = canvas.width; // clears the canvas context.fillRect(100,0,50,50); // only this square remains (reproduced from http://www.whatwg.org/specs/web-apps/current- work/#canvas with permission)
  • 12. <video> / <audio> • Allows a page to natively play video / audio – No plugins required – As simple as including an image - <audio src=“song.mp3”> • Has built-in playback controls – Stop – Pause – Play • Scriptable, in case you want your own dynamic control • Implemented in WebKit / Chrome
  • 13. <video> / < audio> Demo
  • 14. Local Data Store • Provides a way to store data client side • Useful for many classes of applications, especially in conjunction with offline capabilities • 2 main APIs provided: a database API (exposing a SQLite database) and a structured storage api (key/value pairs) • Implementation under way in Google Chrome, already working in WebKit. db.transaction(function(tx) { tx.executeSql('SELECT * FROM MyTable', [], function(tx, rs) { for (var i = 0; i < rs.rows.length; ++i) { var row = rs.rows.item(i); DoSomething(row['column']); } }); });
  • 16. Workers • Workers provide web apps with a means for concurrency • Can offload heavy computation onto a separate thread so your app doesn’t block • Come in 3 flavors: – Dedicated (think: bound to a single tab) – Shared (shared among multiple windows in an origin) – Persistent (run when the browser is “closed”) main.js: var worker = new Worker(‘extra_work.js'); worker.onmessage = function (event) { alert(event.data); }; extra_work.js: // do some work; when done post message. postMessage(some_data);
  • 18. Application Cache • Application cache solves the problem of how to make it such that one can load an application URL while offline and it just “works” • Web pages can provide a “manifest” of files that should be cached locally • These pages can be accessed offline • Enables web pages to work without the user being connected to the Internet • Implemented in WebKit, implementation ongoing in Google Chrome
  • 19. Web Sockets • Allows bi-directional communication between client and server in a cleaner, more efficient form than hanging gets (or a series of XMLHttpRequests) • Intended to be as close as possible to just exposing raw TCP/IP to JavaScript given the constraints of the Web. • Available in dev channel var socket = new WebSocket(location); socket.onopen = function(event) { socket.postMessage(“Hello, WebSocket”);} socket.onmessage =function(event) { alert(event.data); } socket.onclose = function(event) { alert(“closed”); }
  • 20. Notifications • Alert() dialogs are annoying, modal, and not a great user experience • Provide a way to do less intrusive event notifications • Work regardless of what tab / window has focus • Provide more flexibility than an alert() dialog • Prototype available in Webkit / Chrome • Standardization discussions ongoing var notify = window.webkitNotifications.createNotification( icon, title, text); notify.show(); notify.ondisplay = function() { alert(‘ondisplay’); }; notify.onclose = function() { alert(‘onclose’); };
  • 22. 3D APIs • WebGL (Canvas 3D), developed by Mozilla, is a command- mode API that allows developers to make OpenGL calls via JavaScript • O3D is an effort by Google to develop a retain-mode API where developers can build up a scene graph and manipulate via JavaScript, also hardware accelerated • Discussion on the web and in standards bodies to follow
  • 24. Geolocation • Make JavaScript APIs from the client to figure out where you are • Location info from GPS, IP address, Bluetooth, cell towers • Optionally share your location with trusted parties • Watch the user’s position as it changes over time • Implementation ongoing in Chrome // Single position request. navigator.geolocation.getCurrentPosition(successCallback); // Request position updates. navigator.geolocation.watchPosition(successCallback);
  • 26. And So Much More… • There’s much work ahead. • Some is well defined – File API – Forms2 – WebFont @font-face • Many things less defined – P2p APIs – Better drag + drop support – Webcam / Microphone access – O/S integration (protocol / file extension handlers and more) – And more
  • 27. Chrome HTML 5 in a Nutshell Video, Audio, Workers Additional APIs available in Chrome 3. (TBD) to better Websockets in dev channel. support web applications Appcache, More work Notifications, -Geolocation Database, , Web GL, Local storage, File API in dev channel Q4 Q1 / 2010 Q2 Q3
  • 28. HTML 5 Native Support Canvas Video …. Local storage Web workers
  • 29. HTML 5 Native Support with Chrome Frame Canvas Video …. Local storage Web workers
  • 31. Q&A