Firebug 1.0
Joe Hewitt: web development evolved
Integrated with Firefox:
at your finger tips, instant on
direct reflection of DOM, CSS
inspect, direct manipulation of debugger
Huge hit with Web 2.0 developers
Open sourced Dec. 2006
Active development ended w/1.05 ~ May 2007
Firebug 1.0 vs Web 2.0
Firebug awesome, but no
eval()
debugging
eval() widely used in Web 2.0
Basis for Dojo toolkit, JSON data
No debugging support for eval() in Firebug or Venkman
Extend Firebug to support
eval()
?
Firebug 1.1
Features
eval() debugging
executable lines marked
Call stack side panel
partial
Firefox 3.0 compatiblity
New XHR spy implementation
...but it was slow
extended plugin architecture
editor interaction API
bug fixes
Firebug 1.2
New Enablement UI
No cost option
Independent Console/Script/Net controls
...but regressions...
Performance
re-write javascript debugger
MD5 instead of encodeURIComponent for eval()
bug fixes
1.3: Testing and Extensions?
Extensions
Firebug Code Coverage
Firebug Net Panel History Overlay
LiveCoder
Firecookie
FirePHP
Solidify base, features by extension
Firequark
Jiffy
Pixel Perfect
Rainbow For Firebug
YSlow
Chromebug: Firebug for Chrome
Multi-window/multi-DOM support
chrome
urls, Firefox components, extensions
Avoid eating your own arm
Goal: do more than Venkman+DOMInspector
demo
Firebug Architecture
Visual Architecture (Chromebug Inspect Demo)
Firebug Architecture
Firebug sees Firefox; Users See Tabs
Problems at the Moz Interface
onScriptCreated(jsdIScript
, frame
)
Needs
script type identifiers (top, inner, eval, event, inline)
info on compilation unit structure (top vs inner)
filtering on origin window
a stack frame (ditto all jsd)
documented event structure
Missing info
Event handlers
Memory queries and GC events
Closure sizes and contents
setTimeout
and
setInterval
inspection
More Function
Control Program Counter, Call stack
Beyond 1.4
Why is this
green
? Break on mutation events
What's happening now? Event/Execution monitoring
It's Javascript stupid: Direct JSON support
Make it so: Update w/o reload
It's perfect now: save edits
No, it's your fault: Integrated JS/C++ crash analysis
I've seen this before: socialized error correction
Cross Site Debugging
Firebug 2.0
jsDebug 2.0 for Web 2.0
JSD Built in support for dynamics
redesign API (stack frames pls!)
Writable PC/frames
All-event hook
GC/Memory hooks
Migrate firebug-service via shim API
Mozilla 2
Debug Support for Tamarin
Discussion
Joe Hewitt's Firebug is web development evolved
but it's a bug-eat-bug world out there
Development tools need our support
Javascript is not a toy language, it's a vital economic engine
We need to build more and better development tools for Javascript
We need to attract JS development tools developers!