SlideShare a Scribd company logo
1 of 72
Download to read offline
Browsers
on the move
 2007-05 to 2008-06

   Michael(tm) Smith

     mike@w3.org
Prologue: Biggest browser
milestones of past 12 months?
• 2007-06: iPhone released with Safari/
  WebKit
• 2008-03: IE8 beta released
Outline
 • Part 1: Mobile-browser milestones
 • Part 2: CSS/DOM browser changes
 • Interlude: Web dev tools in browsers
 • Part 3: Cross-doc/site, offline apps,
   local storage
 • Part 4: XSLT/XPath, SVG, ARIA
• Part 5: Assorted other changes/updates
• Part 6: WebKit CSS innovations
• Part 7: The year ahead
Part 1: Mobile-browser news
• iPhone Safari/WebKit
• Opera Mini 4 (and for Android)
• Opera Mobile
• Mozilla Fennec
• WebKit on Android, Qt, Windows
  Mobile, S60
iPhone Safari/WebKit browser
iPhone Safari/WebKit browser
• Essentially same WebKit engine as
  desktop OSX Safari browser
• Web standards support: CSS, DOM
  scripting, XHR, etc.
• NEW: Squirrelfish, Safari 4 (2008-06)
Squirrelfish
Squirrelfish (2008-06)
 • 1.6 times faster than Safari 3.1 JS
   interpreter
 • 1.8 times faster than Tamarin (Adobe/
   Mozilla2 JS interpreter)
• Has potential to significantly speed up
  Web-application performance on
  iPhone
Opera Mini 4 released (2007-11)
• same engine as Opera 9.5
• Adds support for table, ol, ul,
  heading levels, more
Opera Mini 4 standards support
• Improved JavaScript support (see
  dev.opera.com articles)
• “Vastly improved” CSS support,
  including CSS3 selectors, media
  queries, text-shadow, more
Opera Mini “ported” to Android
• Relies on MicroEmulator J2ME
  implementation
• Translates J2ME/MIDP API calls in
  Android calls (essentially Java SE
  calls)
Opera Mini in the millions and
billions…
 • now 35 million Mini users
 • browsing 1.7 billion pages/month
…Opera Mobile in millions too
• Opera Mobile preinstalled on 100+
  million phones
• Only ~25 other companies in “100
  million club” (with products preinstalled
  100+ million phones
• see visionmobile.com report
Mozilla “Fennec” mobile




• 2008-04: “pre-alpha” build released
• 2008-08: target for “A1” first full alpha
Fennec goals
• competitive performance
• support for XUL/extensions
• genuine integration with device
  features
• touchscreen UI and zoom
Fennec platforms
• current priority: Linux (ARM and x86)
• 6 times faster than Moz MicroB on
  (ARM-based Linux) Nokia 810
• also plans for Windows Mobile
Fennec: more info
• drop by #mobile on irc.mozilla.org
WebKit everywhere…
Google Android & WebKit
(2007-11)
• WebKit is “rendering core for Android’s
  browser”
• Android APIs enable developer to use
  WebKit engine in their custom apps
Trolltech Qt & WebKit (2008-02)
• WebKit is now a core component of Qt
  4.4+ framework
• Enables developer to use WebKit
  engine in their custom Qt apps
• Trolltech acquired by Nokia
Nokia S60 WebKit port
• no public checkins since 2007-08
• Nokia rumored to be working on
  updated port based on Safari
  3.1-based WebKit code
WebKit on Windows Mobile
• 2008-02: Iris browser (Torch Mobile
  — George Staikos, of core WebKit Qt
  dev team)
• 2007-07: Wake3 (Dan Zucker, former
  Access)
Part 2: CSS/DOM changes/
surprises of interest to Web
developers
 • CSS & unknown elements in IE
 • native getElementsByClassName
 • CSS3 Selectors
 • Selectors API
CSS & unknown elements in IE
• Problem: IE won’t apply CSS to
  unknown element fu
• Solution: document.createElement(quot;fuquot;)
• discovered by Sjoerd Visscher (see
  his blog or John Resig blog for details)
native getElementsByClassName
• began in JS libraries, now in HTML5
• now supported in Mozilla, WebKit/Safari
  3+, Opera 9.5
• no native support in IE yet
CSS3 Selectors
• Opera 9.5 and Safari 3.1/WebKit
  (thanks to KHTML devs) pass all 43
  css3.info tests
• Mozilla/Minefield passes 36 of 43
• NEW: mozilla-central now has nearly
  complete CSS3 Selectors support
  (2008-06)
• IE8 passes only 14 of 43
Selectors API
• querySelector & querySelectorAll
  methods
• API for scripting DOM traversal using
  CSS3 Selectors
• supported in WebKit & IE8
Interlude: Web-developer tools
in browsers
 • Firebug for Mozilla
 • new tools in IE8
 • WebKit Web Inspector l& Drosera
 • Opera Dragonfly
Firebug for Mozilla
 • no big changes?
 • same great tool as always
 • the standard by which all web-dev
   tools in other browsers are judged
new tools in IE8
 • DOM inspector
 • set of CSS/layout tools
 • script debugger
WebKit Web Inspector and
Drosera
• Web Inspector: many improvements/
  feature additions
• Drosera (script debugger) with WebKit
  nightlies
• NEW: JS debugger now built into Web
 Inspector (2008-06)
Opera Dragonfly (2008-05-06)
• DOM, CSS inspectors
• script debugger
• remote debugging (inspired by
  Fiddler?)
Dragonfly remote debugging

“Debug your phone or TV”
Dragonfly architecture

“Scope” protocol & API
Part 3: Cross-doc/site and local
storage
 • cross-document messaging
 • cross-site requests
 • offline apps
 • client-side persistent storage (name/
   value pairs)
• client-side SQL database API
Cross-document messaging
• HTML5 postMessage method
• Implemented in IE8, Opera, WebKit,
  Mozilla
• can use with iframe as primitive for
  cross-site requests
Proposals: cross-site requests
 • W3C Access-Control spec
 • JSONRequest
 • Microsoft XDomainRequest (XDR)
Status: cross-site requests
 • W3C Access Control implemented in
   Mozilla but backed out from FF3
   for still-unclear reasons
 • Microsoft XDR surprise release in IE8
 • JSONRequest: no signs of any browser
   vendors interested in implementing
Offline Web applications
 • ApplicationCache API
 • each app maintains its own manifest
   and cache
 • implemented in Mozilla/Firefox 3
 • work in progress for WebKit
HTML5 Client-side persistent
storage (name/value pairs)
 • Storage interface, sessionStorage &
   localStorage attributes
 • enables offline apps, more
 • in Mozilla and IE8
 • work in progress for WebKit
Client-side SQL database API
• Gears-like, spec’ed in HTML5
• Implemented in Webkit
• Demo at http://webkit.org/misc/
  DatabaseExample.html
Part 4: XSLT/XPath, SVG, ARIA
• XSLT with document() & node-set()
• SVG in Opera, Mozilla, WebKit
• ARIA in IE8, Opera, Mozilla
client-side XSLT/XPath
 • Opera added support for document()
 • WebKit joins Opera, IE in
   supporting node-set()
 • we now have scripted XSLT/XPath —
   XSLTProcessor, DOMParser|loadXML,
XMLSerializer — in all four major
browser engines
SVG
• Opera support remains strong
• WebKit SVG support greatly improved;
  recent big changes to enable
  SMIL-based SVG animations
• Mozilla support remains good
ARIA
• mechanism for making Web apps
  usable with screen readers
• used in Google Reader (2008-03)
• supported in Mozilla, Opera, and IE8
• work in progress for WebKit
Part 6: Assorted other changes
• HTML5 registerProtocolHandler()
• JavaScript Getters and Setters
• <video> element
• IE8 <meta> versioning switch
• Acid2 and Acid3
HTML5 registerProtocolHandler()
• enables a Web app to register as
  handler for particular protocol/scheme
• example: Web-based mail app
  registers as a handler for mailto:
• implemented in Firefox 3 (2008-04)
JavaScript Getters and Setters
 • enable data-field encapsulation
 • in Mozilla, Safari 3, & Opera 9.5 betas
 • not supported in IE8 yet
HTML5 <video> element
• <video src=quot;foo.oggquot; id=quot;foo_videoquot;>
• Extensive scripting API for loading and
  playing
Simple <video> example
Browser support for <video>
• Safari 3.1 and WebKit nightlies
• Mozilla/Firefox trunk build + patch for
  bug 382267
• Opera experimental build
• no IE support yet
The <video> problem
• No royalty-free codec = no portable
  video
• Opera and Mozilla have support for
  Ogg Theora, Safari and IE don’t (and
  won’t)
A <video> solution?
 • H.261-based Sun OMS video could be
   possible solution: see http://xrl.us/
   omsvideo
 • But it’s unclear how
   feature-competitive the proposed OMS
   codec would be
IE8 <meta> versioning switch
• <meta http-equiv=quot;X-UA-Compatiblequot;
  content=quot;IE=7quot;/>
• switches which rendering engine IE8
  uses
• defaults to IE8 if not specified
Acid2 and IE8
• IE8 passes the Acid2 test




• Safari, Mozilla, Opera passed long ago
Acid3 and IE8
Acid3 reference rendering
Acid3 in other browsers
• WebKit nightly: 100/100
• Opera dev build: 100/100
• Opera 9.5: 78/100
• Safari 3.1: 75/100
• Firefox 3/Minefield: 71/100
Part 6: WebKit CSS innovations
• Reflections: -webkit-box-reflect
• Alpha masks: -webkit-mask
• Canvas images: -webkit-canvas
• Gradients: -webkit-gradient
• Transitions: -webkit-transition
• Transforms: -webkit-transform
Part 7: The year ahead
• updated browsers/engines on mobile
• Google Summer of Code dividends
• further CSS innovation
• further HTML5 implementations
• your predictions?
Web browsers/engines on
mobile devices
• Opera Mobile 9.5
• Android and Qt devices ship with
  WebKit browsers?
• updated Safari for iPhone, updated
  S60 browser
Google Summer of Code:
WebKit projects
• SVG filters
• Web Forms 2.0
• XBL2
Further CSS innovation
• WebKit @keyframes, -webkit-animation
• WebKit CSS standardized?
• other browsers pick up WebKit CSS?
Further HTML5 implementations
• more sessionStorage implementation
• client-side SQL database
• offline Web apps (App. Cache API)
• embed non-visible data using data-*
  attrs & dataset DOM attr
Questions? Comments?




              Your predictions for the
year ahead?
These slides

http://w3.org/2008/Talks/05-07-smith-xtech/

slides.pdf

More Related Content

What's hot

HTML5: The Next Internet Goldrush
HTML5: The Next Internet GoldrushHTML5: The Next Internet Goldrush
HTML5: The Next Internet GoldrushPeter Lubbers
 
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011Peter Moskovits
 
Great Java Application Server Debate
Great Java Application Server DebateGreat Java Application Server Debate
Great Java Application Server DebateHamed Hatami
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008rajivmordani
 
Do We Need Containers Anyway?
Do We Need Containers Anyway?Do We Need Containers Anyway?
Do We Need Containers Anyway?Dmitry Buzdin
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...Howard Greenberg
 
HTML5 Smart Markup for Smarter Websites [FoWD NYC 2011]
HTML5 Smart Markup for Smarter Websites [FoWD NYC 2011]HTML5 Smart Markup for Smarter Websites [FoWD NYC 2011]
HTML5 Smart Markup for Smarter Websites [FoWD NYC 2011]Aaron Gustafson
 
Building Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSocketsBuilding Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSocketsPeter Moskovits
 
Java web start Quick Reference
Java web start Quick Reference Java web start Quick Reference
Java web start Quick Reference Praveen Kumar
 
Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)Peter Lubbers
 
Comet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive WebsitesComet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive WebsitesJoe Walker
 
The Tantric Team: Getting Your Automated Build Groove On
The Tantric Team: Getting Your Automated Build Groove OnThe Tantric Team: Getting Your Automated Build Groove On
The Tantric Team: Getting Your Automated Build Groove OnAtlassian
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015Edward Burns
 
Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...
Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...
Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...Atlassian
 
HTML5 in Korea (2010)
HTML5 in Korea (2010)HTML5 in Korea (2010)
HTML5 in Korea (2010)Channy Yun
 

What's hot (16)

HTML5: The Next Internet Goldrush
HTML5: The Next Internet GoldrushHTML5: The Next Internet Goldrush
HTML5: The Next Internet Goldrush
 
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
 
Great Java Application Server Debate
Great Java Application Server DebateGreat Java Application Server Debate
Great Java Application Server Debate
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008
 
Do We Need Containers Anyway?
Do We Need Containers Anyway?Do We Need Containers Anyway?
Do We Need Containers Anyway?
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
 
HTML5 Smart Markup for Smarter Websites [FoWD NYC 2011]
HTML5 Smart Markup for Smarter Websites [FoWD NYC 2011]HTML5 Smart Markup for Smarter Websites [FoWD NYC 2011]
HTML5 Smart Markup for Smarter Websites [FoWD NYC 2011]
 
Building Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSocketsBuilding Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSockets
 
Java web start Quick Reference
Java web start Quick Reference Java web start Quick Reference
Java web start Quick Reference
 
Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)
 
Comet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive WebsitesComet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive Websites
 
The Tantric Team: Getting Your Automated Build Groove On
The Tantric Team: Getting Your Automated Build Groove OnThe Tantric Team: Getting Your Automated Build Groove On
The Tantric Team: Getting Your Automated Build Groove On
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
 
Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...
Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...
Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...
 
HTML5 in Korea (2010)
HTML5 in Korea (2010)HTML5 in Korea (2010)
HTML5 in Korea (2010)
 
Ajax World Fall08
Ajax World Fall08Ajax World Fall08
Ajax World Fall08
 

Similar to XTech May 2008

A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...Igalia
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsersjeresig
 
Øredev 2014
Øredev 2014Øredev 2014
Øredev 2014olataube
 
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...Igalia
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoCaridy Patino
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conferencedmethvin
 
Building Hybrid Applications with VAST and WebView2
Building Hybrid Applications with VAST and WebView2Building Hybrid Applications with VAST and WebView2
Building Hybrid Applications with VAST and WebView2ESUG
 
Don't touch the mobile parts
Don't touch the mobile partsDon't touch the mobile parts
Don't touch the mobile partsFrancesco Fullone
 
Development Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsDevelopment Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsRomin Irani
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)Kevin Gill
 
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...IndicThreads
 
Thadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-WorkshopThadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-WorkshopRomin Irani
 
How to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that ScaleHow to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that ScalePhil Leggetter
 
iPhone Web Development
iPhone Web DevelopmentiPhone Web Development
iPhone Web DevelopmentAndy Peters
 
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...Arnaud BUDKIEWICZ
 
HTML5 Webinar - Mind Storm Software
HTML5 Webinar - Mind Storm SoftwareHTML5 Webinar - Mind Storm Software
HTML5 Webinar - Mind Storm SoftwareRomin Irani
 
IWMW 1999: Browser management
IWMW 1999: Browser managementIWMW 1999: Browser management
IWMW 1999: Browser managementIWMW
 

Similar to XTech May 2008 (20)

A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsers
 
Ilog Ria2
Ilog Ria2Ilog Ria2
Ilog Ria2
 
Push it to the Edge
Push it to the EdgePush it to the Edge
Push it to the Edge
 
Øredev 2014
Øredev 2014Øredev 2014
Øredev 2014
 
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing Mojito
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conference
 
Building Hybrid Applications with VAST and WebView2
Building Hybrid Applications with VAST and WebView2Building Hybrid Applications with VAST and WebView2
Building Hybrid Applications with VAST and WebView2
 
Don't touch the mobile parts
Don't touch the mobile partsDon't touch the mobile parts
Don't touch the mobile parts
 
Development Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsDevelopment Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElements
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
 
Thadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-WorkshopThadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-Workshop
 
How to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that ScaleHow to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that Scale
 
iPhone Web Development
iPhone Web DevelopmentiPhone Web Development
iPhone Web Development
 
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
 
HTML5 Webinar - Mind Storm Software
HTML5 Webinar - Mind Storm SoftwareHTML5 Webinar - Mind Storm Software
HTML5 Webinar - Mind Storm Software
 
IWMW 1999: Browser management
IWMW 1999: Browser managementIWMW 1999: Browser management
IWMW 1999: Browser management
 
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
 

Recently uploaded

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

XTech May 2008

  • 1. Browsers on the move 2007-05 to 2008-06 Michael(tm) Smith mike@w3.org
  • 2. Prologue: Biggest browser milestones of past 12 months? • 2007-06: iPhone released with Safari/ WebKit • 2008-03: IE8 beta released
  • 3. Outline • Part 1: Mobile-browser milestones • Part 2: CSS/DOM browser changes • Interlude: Web dev tools in browsers • Part 3: Cross-doc/site, offline apps, local storage • Part 4: XSLT/XPath, SVG, ARIA
  • 4. • Part 5: Assorted other changes/updates • Part 6: WebKit CSS innovations • Part 7: The year ahead
  • 5. Part 1: Mobile-browser news • iPhone Safari/WebKit • Opera Mini 4 (and for Android) • Opera Mobile • Mozilla Fennec • WebKit on Android, Qt, Windows Mobile, S60
  • 7. iPhone Safari/WebKit browser • Essentially same WebKit engine as desktop OSX Safari browser • Web standards support: CSS, DOM scripting, XHR, etc. • NEW: Squirrelfish, Safari 4 (2008-06)
  • 9. Squirrelfish (2008-06) • 1.6 times faster than Safari 3.1 JS interpreter • 1.8 times faster than Tamarin (Adobe/ Mozilla2 JS interpreter)
  • 10. • Has potential to significantly speed up Web-application performance on iPhone
  • 11. Opera Mini 4 released (2007-11) • same engine as Opera 9.5 • Adds support for table, ol, ul, heading levels, more
  • 12. Opera Mini 4 standards support • Improved JavaScript support (see dev.opera.com articles) • “Vastly improved” CSS support, including CSS3 selectors, media queries, text-shadow, more
  • 13. Opera Mini “ported” to Android • Relies on MicroEmulator J2ME implementation • Translates J2ME/MIDP API calls in Android calls (essentially Java SE calls)
  • 14. Opera Mini in the millions and billions… • now 35 million Mini users • browsing 1.7 billion pages/month
  • 15. …Opera Mobile in millions too • Opera Mobile preinstalled on 100+ million phones • Only ~25 other companies in “100 million club” (with products preinstalled 100+ million phones • see visionmobile.com report
  • 16. Mozilla “Fennec” mobile • 2008-04: “pre-alpha” build released • 2008-08: target for “A1” first full alpha
  • 17. Fennec goals • competitive performance • support for XUL/extensions • genuine integration with device features • touchscreen UI and zoom
  • 18. Fennec platforms • current priority: Linux (ARM and x86) • 6 times faster than Moz MicroB on (ARM-based Linux) Nokia 810 • also plans for Windows Mobile
  • 19. Fennec: more info • drop by #mobile on irc.mozilla.org
  • 21. Google Android & WebKit (2007-11) • WebKit is “rendering core for Android’s browser” • Android APIs enable developer to use WebKit engine in their custom apps
  • 22. Trolltech Qt & WebKit (2008-02) • WebKit is now a core component of Qt 4.4+ framework • Enables developer to use WebKit engine in their custom Qt apps • Trolltech acquired by Nokia
  • 23. Nokia S60 WebKit port • no public checkins since 2007-08 • Nokia rumored to be working on updated port based on Safari 3.1-based WebKit code
  • 24. WebKit on Windows Mobile • 2008-02: Iris browser (Torch Mobile — George Staikos, of core WebKit Qt dev team) • 2007-07: Wake3 (Dan Zucker, former Access)
  • 25. Part 2: CSS/DOM changes/ surprises of interest to Web developers • CSS & unknown elements in IE • native getElementsByClassName • CSS3 Selectors • Selectors API
  • 26. CSS & unknown elements in IE • Problem: IE won’t apply CSS to unknown element fu • Solution: document.createElement(quot;fuquot;) • discovered by Sjoerd Visscher (see his blog or John Resig blog for details)
  • 27. native getElementsByClassName • began in JS libraries, now in HTML5 • now supported in Mozilla, WebKit/Safari 3+, Opera 9.5 • no native support in IE yet
  • 28. CSS3 Selectors • Opera 9.5 and Safari 3.1/WebKit (thanks to KHTML devs) pass all 43 css3.info tests • Mozilla/Minefield passes 36 of 43
  • 29. • NEW: mozilla-central now has nearly complete CSS3 Selectors support (2008-06) • IE8 passes only 14 of 43
  • 30. Selectors API • querySelector & querySelectorAll methods • API for scripting DOM traversal using CSS3 Selectors • supported in WebKit & IE8
  • 31. Interlude: Web-developer tools in browsers • Firebug for Mozilla • new tools in IE8 • WebKit Web Inspector l& Drosera • Opera Dragonfly
  • 32. Firebug for Mozilla • no big changes? • same great tool as always • the standard by which all web-dev tools in other browsers are judged
  • 33. new tools in IE8 • DOM inspector • set of CSS/layout tools • script debugger
  • 34. WebKit Web Inspector and Drosera • Web Inspector: many improvements/ feature additions • Drosera (script debugger) with WebKit nightlies
  • 35. • NEW: JS debugger now built into Web Inspector (2008-06)
  • 36. Opera Dragonfly (2008-05-06) • DOM, CSS inspectors • script debugger • remote debugging (inspired by Fiddler?)
  • 37. Dragonfly remote debugging “Debug your phone or TV”
  • 39. Part 3: Cross-doc/site and local storage • cross-document messaging • cross-site requests • offline apps • client-side persistent storage (name/ value pairs)
  • 40. • client-side SQL database API
  • 41. Cross-document messaging • HTML5 postMessage method • Implemented in IE8, Opera, WebKit, Mozilla • can use with iframe as primitive for cross-site requests
  • 42. Proposals: cross-site requests • W3C Access-Control spec • JSONRequest • Microsoft XDomainRequest (XDR)
  • 43. Status: cross-site requests • W3C Access Control implemented in Mozilla but backed out from FF3 for still-unclear reasons • Microsoft XDR surprise release in IE8 • JSONRequest: no signs of any browser vendors interested in implementing
  • 44. Offline Web applications • ApplicationCache API • each app maintains its own manifest and cache • implemented in Mozilla/Firefox 3 • work in progress for WebKit
  • 45. HTML5 Client-side persistent storage (name/value pairs) • Storage interface, sessionStorage & localStorage attributes • enables offline apps, more • in Mozilla and IE8 • work in progress for WebKit
  • 46. Client-side SQL database API • Gears-like, spec’ed in HTML5 • Implemented in Webkit • Demo at http://webkit.org/misc/ DatabaseExample.html
  • 47. Part 4: XSLT/XPath, SVG, ARIA • XSLT with document() & node-set() • SVG in Opera, Mozilla, WebKit • ARIA in IE8, Opera, Mozilla
  • 48. client-side XSLT/XPath • Opera added support for document() • WebKit joins Opera, IE in supporting node-set() • we now have scripted XSLT/XPath — XSLTProcessor, DOMParser|loadXML,
  • 49. XMLSerializer — in all four major browser engines
  • 50. SVG • Opera support remains strong • WebKit SVG support greatly improved; recent big changes to enable SMIL-based SVG animations • Mozilla support remains good
  • 51. ARIA • mechanism for making Web apps usable with screen readers • used in Google Reader (2008-03) • supported in Mozilla, Opera, and IE8 • work in progress for WebKit
  • 52. Part 6: Assorted other changes • HTML5 registerProtocolHandler() • JavaScript Getters and Setters • <video> element • IE8 <meta> versioning switch • Acid2 and Acid3
  • 53. HTML5 registerProtocolHandler() • enables a Web app to register as handler for particular protocol/scheme • example: Web-based mail app registers as a handler for mailto: • implemented in Firefox 3 (2008-04)
  • 54. JavaScript Getters and Setters • enable data-field encapsulation • in Mozilla, Safari 3, & Opera 9.5 betas • not supported in IE8 yet
  • 55. HTML5 <video> element • <video src=quot;foo.oggquot; id=quot;foo_videoquot;> • Extensive scripting API for loading and playing
  • 57. Browser support for <video> • Safari 3.1 and WebKit nightlies • Mozilla/Firefox trunk build + patch for bug 382267 • Opera experimental build • no IE support yet
  • 58. The <video> problem • No royalty-free codec = no portable video • Opera and Mozilla have support for Ogg Theora, Safari and IE don’t (and won’t)
  • 59. A <video> solution? • H.261-based Sun OMS video could be possible solution: see http://xrl.us/ omsvideo • But it’s unclear how feature-competitive the proposed OMS codec would be
  • 60. IE8 <meta> versioning switch • <meta http-equiv=quot;X-UA-Compatiblequot; content=quot;IE=7quot;/> • switches which rendering engine IE8 uses • defaults to IE8 if not specified
  • 61. Acid2 and IE8 • IE8 passes the Acid2 test • Safari, Mozilla, Opera passed long ago
  • 64. Acid3 in other browsers • WebKit nightly: 100/100 • Opera dev build: 100/100 • Opera 9.5: 78/100 • Safari 3.1: 75/100 • Firefox 3/Minefield: 71/100
  • 65. Part 6: WebKit CSS innovations • Reflections: -webkit-box-reflect • Alpha masks: -webkit-mask • Canvas images: -webkit-canvas • Gradients: -webkit-gradient • Transitions: -webkit-transition • Transforms: -webkit-transform
  • 66. Part 7: The year ahead • updated browsers/engines on mobile • Google Summer of Code dividends • further CSS innovation • further HTML5 implementations • your predictions?
  • 67. Web browsers/engines on mobile devices • Opera Mobile 9.5 • Android and Qt devices ship with WebKit browsers? • updated Safari for iPhone, updated S60 browser
  • 68. Google Summer of Code: WebKit projects • SVG filters • Web Forms 2.0 • XBL2
  • 69. Further CSS innovation • WebKit @keyframes, -webkit-animation • WebKit CSS standardized? • other browsers pick up WebKit CSS?
  • 70. Further HTML5 implementations • more sessionStorage implementation • client-side SQL database • offline Web apps (App. Cache API) • embed non-visible data using data-* attrs & dataset DOM attr
  • 71. Questions? Comments? Your predictions for the year ahead?