Archive for April, 2011

Firebug 1.7.1b2

Friday, April 29th, 2011 has Firebug 1.7.1b2 + Chromebug 1.7.1b2

This the last beta before final 1.7.1 and also last maintenance release for 1.7 branch. We are currently fully focused on Firebug 1.8 (in alpha phase) that will be ready for Firefox 5.0 (Aurora). The final 1.7.1 will follow in 1-2 weeks.

This release fixes 8 issues and all our tests pass.

Users subscribed to AMO beta channel will be updated automatically.

Please post feedback in the newsgroup, thanks.


Crossfire: Multiprocess Cross-browser Open Web Tools Protocol

Thursday, April 28th, 2011

Most Web developers write for all Web browsers, but their development tools only work on one browser. To the extent that browsers are standard, this works out.  Except when it doesn’t. Then you are stuck trying to use the unfamiliar development tools in another browser. Moreover, some browsers have better or different support for development tools. The Crossfire project aims to provide a way for development tools to work cross-browser.

Michael Collins and I wrote a paper describing the Crossfire protocol and system for Splash/Wavefront. A PDF preprint is now available. We describe both some aspects of the remote protocol and discuss the evolution of the Firebug source code into client/server code using Crossfire.

The Crossfire project benefits from many contributions, so I encourage you to read the Acknowledgments section first and to add your name to that list by pitching in to help us push this project over the finish line.


Please post comments or suggestions on the newsgroup.

Naming Anonymous JavaScript Functions

Thursday, April 28th, 2011

Tired of ?() or anonymous in your call stack in Firebug. Me too! Fortunately Salman Mirghasemi has a solution: a new algorithm for Naming Anonymous JavaScript Functions detailed in a paper by Salman, John J. Barton (that’s me), and Prof. Claude Petitpierre submitted to Splash/Wavefront 2011.

A few key points from the paper:

  • Among the 90,000 functions in 10 libraries surveyed, less than 7% were named.
  • The name-guessing schemes in Firebug and Web Inspector guess right …sometimes 😉
  • Anonymous functions are used in lots of complex ways!
  • The Static Function Object Consumption algorithm names 99% of the the functions.
  • The new algorithm generalizes the approach used by existing tools.

The paper shows examples from many popular libraries like jQuery, dojo, ExtJS, and so on.

The algorithm only requires a parser, so its easily implemented in JavaScript engines. Since Firebug does not have a JavaScript parser, we have to start by borrowing one.


For comments and suggestions, please post to the Firebug newsgroup.

Firebug 1.8a2

Friday, April 22nd, 2011 has Firebug 1.8a2 + Chromebug 1.8a2 (compatible with Firefox 5 – Aurora)

This release fixes 25 issues and all our automated tests pass.

New Features

  • Contents of the command line and command editor is now persistent across reloads (issue 4087)
  • Height of HTML preview in the Net panel is now adjustable using drag’n drop (issue 4224)
  • The default keyboard shortcut for changing text size is changed to Cmd+Alt++ reps. Cmd+Alt+- (issue 4311)
  • DOM Breakpoints can be removed/disabled/enabled from the Breakpoints side panel like any other breakpoints (issue 4386).
  • DOM panel has two new options: showOwnProperties – check if you don’t want see the prototype chain for objects and showEnumerableProperties – check if you want to see only enumerable properties (issue 4390).
  • Better auto-completion in the command line, thanks to Simon Lindholm (issue 4233)

Memory Profiler

This version also contains a simple Memory Profiler feature (issue 4376). This feature is based on the same APIs as the well known about:memory page, but displaying differences between two executions points.

Memory Profiler is available in the Console panel and works similarly to performance profiling. Clicking the Memory Profile button starts the profile session and another clicking stops it.
The result memory report is displaying memory differences for every function call (diff between function begin and end) and also differences for the entire session.

We have also created a demo page that describes (using several test cases) how to use this feature to watch memory consumption and detect possible memory leaks (sure you need Firebug installed). This is an experimental implementation and so, we are very interested for any feedback!

Special thanks to Sebastian Zartner and Harutyun Amirjanyan who helped with this release!

Please post feedback in the newsgroup, thanks.


Firebug 1.7.1b1

Friday, April 8th, 2011 has Firebug 1.7.1b1 + Chromebug 1.7.1b1

We have collected all feedback since 1.7 release and fixed several issues.

Some highlights:

  • A message about known issues with Firefox is gone (issue 4287)
  • OS X uses appropriate icons again – not those for Windows (issue 4295)
  • AJAX requests displayed in the Console show the proper line where it occured (issue 4310)

See all fixed issues in this release.

We have also updated Firefox required version numbers and so, this Firebug release is compatible with Firefox 3.6 and Firefox 4.0.

Please post feedback in the newsgroup, thanks.


Firebug 1.8a1

Friday, April 1st, 2011 has Firebug 1.8a1 + Chromebug 1.8a1

Since Firebug 1.7 has been released we also started 1.8 branch alpha channel. There are couple of significant changes that might be interesting especially for Firebug (extensions) developers.

Also note that this version fixes 10 issues.

  • We started using asynchronous modules (see more about AMD) in Firebug internal architecture. This step should help us to better isolate individual parts of Firebug, avoid global dependencies and make code sharing simpler. Firebug is using its own module loader that is based on RequireJS.
  • Firebug Tracing Console is not part of Firebug core anymore. It’s now available as an independent extension called FBTrace. This step has two advantages, (a) since the extension is independent of Firebug, it works even if Firebug itself is broken and so, it can still be used to see what’s failing, (b) we don’t have to build special ‘X’ releases, which make the process easier.

The typical bundle for Firebug and/or Firebug extension developer is:

Please post feedback in the newsgroup, thanks.