Archive for the 'Research' Category

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.

Dynamic and Graphical Web Page Breakpoints: Firebug at WWW2010

Monday, May 3rd, 2010

On Thursday Apr. 28 Jan Odvarko (Honza) and I presented our paper “Dynamic and Graphical Web Page Breakpoints” at WWW 2010 in Raleigh, North Carolina, USA. These features were implemented in Firebug 1.2 through 1.5.  The HTML slides + demo we presented are now on-line.

Our talk went smoothly, with Honza explaining the demos while I went over the motivation, implementation, and related work. We had all positive comments and questions.

In discussions after the talk we kicked around the idea of a “Browser Research and Development” workshop. Browser researchers would present ideas and prototypes; browser developers would present ideas and problems. The focus would be on getting more browser research published and implemented while also stimulating more research in areas with the most potential impact on browsers. Most browser researchers want to have practical impact; the pace of innovation  in browsers demands more usable research efforts.  The WWW2010 venue is fine for final presentations, but it’s not a place where research and development meet. Let me know if you have interest in  such an event.


Please post comments on the newsgroup.