Browserscope O'Reilly Velocity OLC Dec 8, 2009

Preview:

Citation preview

Browserscope

O'Reilly Velocity OLCDec 8, 2009

www.browserscope.org

Browserscope

Open-source, community-driven project for profiling browsers, launched Sept. 2009

Goals:• foster browser innovation• be a resource for web developers

Based on UA Profiler

results since septemberSecurity: 5085 tests on 169 browsers

Rich Text: 11440 tests on 295 browsers

Selectors API: 10988 tests on 291 browsers

Network: 32235 tests on 627 browsers

Acid3: 12139 tests on 290 browsers

  71,887 tests total!

new UI features

• Compare Browsers!• Filter by Browser Family!• View results on a Line Chart!

upcoming categories

• Cookies (Eric Lovett)• Quirksmode DOM tests (PPK + Annie Sullivan)• Javascript Knowledge Base (Mike Samuel)

Javascript Knowledge Base (JSKB)

Javascript has become really interesting lately because of a few trends:1. High quality libraries are making development easier– Good tools that minify code and find problems, e.g.,

YUI Compressor, Dojo ShrinkSafe, the Closure Compiler, Caja Web Tools (TBR)

– And EcmaScript5 and HTML5 are releasing a whole host of fixes and features

JSKB author Mike Samuel is an engineer on Caja and a member of the Secure EcmaScript working group.

Javascript Knowledge Base (JSKB)Many developers want to use new features, but need to support older browsers.So they backport: if (typeof JSON === 'undefined')

  // Include json2.js hereor they fallback: if (typeof addEventListener !== 'undefined')

  // use addEventListener else   // use attachEvent

But this means shipping lots of unnecessary code to newer browsersthat don't need it -- higher bandwidth cost, slower loads, longer parse times.

Javascript Knowledge Base (JSKB)

JSKB will create a database of facts about browsers, such as:• On Firefox3.5, JSON is defined• On Firefox3.0, JSON is undefined• On IE, attachEvent is defined, while on Firefox

addEventListener is defined

This will allow compilers to find feature detection code thatdevelopers already write, and produce a version of the application optimized for a group of browsers. if (!window.JSON) { /* Optimized out on new browsers */ } As older browsers die, mean script size decreases.

http://www.browserscope.orghttp://code.google.com/p/browserscope/

http://groups.google.com/group/browserscopebrowserscope@googlegroups.com