Launch separate instance of firefox as development profile. You dont want to use your regular firefox profile when developing as it will get manhandled.
Start -> Run "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -P dev
Note, this dev profile can be run in tandem with your regular profile.
In the address bar, enter "about:config" to see your configuration settings.
- nglayout.debug.disable_xul_cache = true. Disables the XUL cache so that changes to windows and dialogs do not require a restart. This assumes you're using directories rather than JARs. Changes to XUL overlays will still require reloading of the document overlaid.
- browser.dom.window.dump.enabled = true. Enables the use of the dump() statement to print to the standard console. See window.dump for more info. You can also use nsIConsoleService from a privileged script.
- extensions.logging.enabled = true. This will send more detailed information about installation and update problems to the Error Console. (Note that the extension manager automatically restarts the application at startup sometimes, which may mean you won't have time to see the messages logged before the automatic restart happens. To see them, prevent the automatic restart by setting the environment NO_EM_RESTART to 1 before starting the application.)
- You might also want to set dom.report_all_js_exceptions = true
Some Useful Extensions
These will help you on your development journey
Start Building Here
Useful app that will build a framework for your extension: http://ted.mielczarek.org/code/mozilla/extensionwiz/