From MozillaWiki
Jump to: navigation, search


I'm currently working on Firebug as a member of the Firebug Working Group. My goal is to assist the project with infrastructure and process, as well as coding and bug fixes.

Web Debugger Feature Comparison

NB: This is a document under construction. The WebKit Web Inspector and Opera Dragonfly comparisons were done well over a month ago (at time of this writing) and is in need of updating. Further notes about what the contents of the feature column are also necessary. robcee 18:08, 7 October 2008 (UTC)

Feature Firebug Safari Web Inspector* Opera Dragonfly†
Interactive Console
Snippet Editor
HTML Editing
Style of Elements
Rulers and Guides
Computed CSS
Edit CSS •1 •1
Script Debugging
Remote Debugging 8
Eval Scripts
Conditional Breakpoints
Watch Variables
Call Stack
Thread Log •7
Scoped Variables
DOM •2 •6
User-defined properties •3
User-defined Functions •3  ?
DOM Properties •3  ?
DOM functions •3  ?
DOM constants •3  ?
Network •4
GET/POST Request
Response Headers
Media popups
JS Profiling •5
  • * WebKit nightly version r35973
  • † Opera beta 9.52 build 4916
  •  ? Unknown
  1. - Edit non-computed values only
  2. - Called “Properties” in Elements (HTML) view
  3. - Not as a selectable option, components are broken down by DOM object
  4. - Called “Resources”
  5. - Unable to see this feature in action, crashed my browser
  6. - Properties in DOM view
  7. - Worker threads?
  8. - Available in Firebug with Aptana

Firebug test-cases and code

Firebug-related Firefox bugs

from an email exchange with JJB and group:

I think these are all nice to have, but if I have to isolate the top pain points they would be:

  1. double load. This should be fixed already, bug 430155
    1. bug 449198 http-on-examine-response isn't fired when a response comes from the cache - check with Honza on how important — honza's reply: Yes, this one would help a lot! It's related to the net panel stuff. Currently there is quite hacky workaround; it would be awesome if I could do it properly.
  2. AJAX performance
    1. bug 379410 debugger script detection using parent JSScript* (morph for jsd) would reduce the number of script-creation calls (the most expensive ones) by two orders of magnitude.
    2. bug 449454 [jsd] Add frame argument to every jsd callback, eg jsdIScriptHook would avoid taking a breakpoint for every jsdIScript created
    3. bug 415008 eval Performance Regression (morph to implement CRC32) — would accelerate the common case for eval()
  3. tab-based debugging (focus on one window).
    1. bug 342715 Need an API to allow extensions to hook "document load started" events would eliminate weird code in tabWatcher.
    2. bug 449458 [jsd] Extend jsdIFilter coverage to include jsdIScriptHook would reduce overhead of jsd on pages you are not debugging.
    3. bug 228205 Redesign nsIConsoleService and related APIs — would improve error reporting accuracy and speed.
  4. error messages
    1. bug 228205 Redesign nsIConsoleService and related APIs — should give stack traces on all errors.
    2. bug 445355 Exception... "Component is not available" provides inadequate information — maybe we would know what these mean.

Performance Analyses