Remoting Prototype

From FirebugWiki
Jump to: navigation, search

This page is intended to provide detailed instructions about how to use remote capabilities in Firebug.



The current development happens on the jsd2 branch.


See how to setup your environment to successfully connect Firebug to remote browser instance. Note that you need to install Firebug on both sides, client and server.

Following preferences need to be set (use about:config)


  • devtools.debugger.remote-enabled - must be set to true
  • extensions.firebug.serverMode - must be set to true
  • devtools.debugger.force-local - set to false if you want to connect to browser instance on another machine


  • extensions.firebug.serverHost - name of the remote host (localhost by default)
  • extensions.firebug.serverPort - remote port (5999 by default)

In order to make a connection start both browser instances (use two Firefox profiles if testing on one machine). The client side should automatically try to connect the server according to the settings. See the Connecting... button in the main Firebug toolbar.


In order to see/filter logs on the server and client you should use following options in the FBTrace console.

  • CONNECTION - Use this option to see packet communication. Every log is also associated with the packet so, you can simply explore its structure.
  • BTI - See various logs related to BTI architecture such as registering various BTI listeners.


Rough summary of steps to implement a remotable Firebug prototype (starting with the Script and Net Panel).

  • Create a simple server side to connect to
  • Implement basic connection object
  • Provide simple UI to allow the user to connect the server
  • Implement custom actors on the server side
  • Implement new Script panel supporting remotable architecture
  • Implement Script panel proxy on top of the connection object
  • Move UI pieces from the old (JSD1 based) Script panel step by step into the new (JSD2 based) Script panel.
  • Connect existing built-in script-debugger actors

Working Scenarios[edit]

Some use-cases are already working.