SlideShare a Scribd company logo
HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09
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

Introduction to chrome extension development
Introduction to chrome extension developmentIntroduction to chrome extension development
Introduction to chrome extension development
KAI CHU CHUNG
 
Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome Extensions
Ron Reiter
 
Introduction of chrome extension development
Introduction of chrome extension developmentIntroduction of chrome extension development
Introduction of chrome extension development
Balduran 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 AngularJS
flrent
 
Chrome extension development
Chrome extension developmentChrome extension development
Chrome extension development
Mārtiņš Balodis
 
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 & Extensions
Varun Raj
 
Introduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions DevelopmentIntroduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions Development
Jomar Tigcal
 
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
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPress
Danilo 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 code
Danilo Ercoli
 
Google chrome
Google chromeGoogle chrome
Google chrome
Nayana_Bingi
 
Making Chrome Extension with AngularJS
Making Chrome Extension with AngularJSMaking Chrome Extension with AngularJS
Making Chrome Extension with AngularJS
Ben Lau
 
Google chrome operating system
Google chrome operating systemGoogle chrome operating system
Google chrome operating system
Amit sundaray
 
Google chrome OS
Google chrome OSGoogle chrome OS
Google chrome OS
-jyothish kumar sirigidi
 
Google chrome operating system.ppt
Google chrome operating system.pptGoogle chrome operating system.ppt
Google chrome operating system.ppt
bhubohara
 
Google Chrome Operating System
Google Chrome Operating SystemGoogle Chrome Operating System
Google Chrome Operating System
Debashish Mitra
 
Google chrome os chromebook
Google chrome os chromebookGoogle chrome os chromebook
Google chrome os chromebook
Prashant 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 exploitation
Krzysztof Kotowicz
 

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

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 CTOs
Palermo Valley
 
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
Mohanadarshan Vivekanandalingam
 
Opera and the Open Web platform
Opera and the Open Web platformOpera and the Open Web platform
Opera and the Open Web platform
Andreas Bovens
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
soft-shake.ch
 
DDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su LotusDDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su Lotus
Dominopoint - Italian Lotus User Group
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009
Tom Deryckere
 
Html ppts
Html pptsHtml ppts
Html ppts
Shivani Gautam
 
HTML
HTMLHTML
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
 
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
Alessandro Pilotti
 
Html5
Html5Html5
Html5
uutttlan
 
Google html5 Tutorial
Google html5 TutorialGoogle html5 Tutorial
Google html5 Tutorial
jobfan
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
Yaniv 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 Interface
Yukio Andoh
 
Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101
Martin Hamilton
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with Joomla
Tom 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 Business
Chris Schalk
 
Multi-homed applications
Multi-homed applicationsMulti-homed applications
Multi-homed applications
Andreas Ehn
 
Don Schwarz App Engine Talk
Don Schwarz App Engine TalkDon Schwarz App Engine Talk
Don Schwarz App Engine Talk
Tech in the Middle
 

Similar to 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
 
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

Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
bellared2
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
Zaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdfZaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdf
AmandaCheung15
 
Tailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer InsightsTailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer Insights
SynapseIndia
 
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
alexjohnson7307
 
Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10
ankush9927
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
aslasdfmkhan4750
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
DianaGray10
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
DianaGray10
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
Priyanka Aash
 
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and DisadvantagesBLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
SAI KAILASH R
 
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
Priyanka Aash
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
Priyanka Aash
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Networks
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
shanihomely
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
Steven Carlson
 

Recently uploaded (20)

Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
Zaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdfZaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdf
 
Tailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer InsightsTailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer Insights
 
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
 
Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
 
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and DisadvantagesBLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
 
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
 

HTML5 and Google Chrome - DevFest09

  • 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