SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to chrome extension development
Introduction to chrome extension developmentIntroduction to chrome extension development
Introduction to chrome extension developmentKAI CHU CHUNG
 
Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome ExtensionsRon Reiter
 
Introduction of chrome extension development
Introduction of chrome extension developmentIntroduction of chrome extension development
Introduction of chrome extension developmentBalduran Chang
 
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 AngularJSflrent
 
An Introduction to Google Chrome OS..........
An Introduction to Google Chrome OS..........An Introduction to Google Chrome OS..........
An Introduction to Google Chrome OS..........VAST TRICHUR
 
Chrome Apps & Extensions
Chrome Apps & ExtensionsChrome Apps & Extensions
Chrome Apps & ExtensionsVarun Raj
 
Introduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions DevelopmentIntroduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions DevelopmentJomar Tigcal
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesDanilo Ercoli
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressDanilo Ercoli
 
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 codeDanilo Ercoli
 
Making Chrome Extension with AngularJS
Making Chrome Extension with AngularJSMaking Chrome Extension with AngularJS
Making Chrome Extension with AngularJSBen Lau
 
Google chrome operating system
Google chrome operating systemGoogle chrome operating system
Google chrome operating systemAmit sundaray
 
Google chrome operating system.ppt
Google chrome operating system.pptGoogle chrome operating system.ppt
Google chrome operating system.pptbhubohara
 
Google Chrome Operating System
Google Chrome Operating SystemGoogle Chrome Operating System
Google Chrome Operating SystemDebashish Mitra
 
Google chrome os chromebook
Google chrome os chromebookGoogle chrome os chromebook
Google chrome os chromebookPrashant Raj
 
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...MIDAS
 
Advanced Chrome extension exploitation
Advanced Chrome extension exploitationAdvanced Chrome extension exploitation
Advanced Chrome extension exploitationKrzysztof Kotowicz
 

Was ist angesagt? (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
 

Ähnlich wie HTML5 and Google Chrome - DevFest09

Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.Alejandro Corpeño
 
Google - Charla para CTOs
Google - Charla para CTOsGoogle - Charla para CTOs
Google - Charla para CTOsPalermo Valley
 
Opera and the Open Web platform
Opera and the Open Web platformOpera and the Open Web platform
Opera and the Open Web platformAndreas Bovens
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009Tom Deryckere
 
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 RSignalITCamp
 
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 RSignalAlessandro Pilotti
 
Google html5 Tutorial
Google html5 TutorialGoogle html5 Tutorial
Google html5 Tutorialjobfan
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NETYaniv Uriel
 
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 InterfaceYukio Andoh
 
Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Martin Hamilton
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with JoomlaTom Deryckere
 
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 BusinessChris Schalk
 
Multi-homed applications
Multi-homed applicationsMulti-homed applications
Multi-homed applicationsAndreas Ehn
 

Ähnlich wie HTML5 and Google Chrome - DevFest09 (20)

Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.
 
Google - Charla para CTOs
Google - Charla para CTOsGoogle - Charla para CTOs
Google - Charla para CTOs
 
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
 
Google html5 Tutorial
Google html5 TutorialGoogle html5 Tutorial
Google html5 Tutorial
 
Html5
Html5Html5
Html5
 
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
 

Kürzlich hochgeladen

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

Kürzlich hochgeladen (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

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