Browser Toolbox

The Browser Toolbox enables you to debug add-ons and the browser's own JavaScript code rather than just web pages like the normal Toolbox.  The Browser Toolbox's context is the whole browser rather than just single page on a single tab.

Note:  If you want to debug a specific add-on that is restartless or SDK-based then try the Add-on Debugger.  Use the Browser Toolbox for add-ons that are neither.

Enabling the Browser Toolbox 

The Browser Toolbox is not enabled by default.  To enable it you need to check the settings "Enable chrome and addon debugging" and "Enable remote debugging".

To do this, open the Developer Tools Toolbox's Settings, go to the section "Advanced Settings", and check the settings "Enable browser chrome and add-on debugging toolboxes" and "Enable remote debugging".

Developer Tools Settings

Opening the Browser Toolbox

Open the Browser Toolbox through the menu button new fx menu and the menu items "Developer" then "Browser Toolbox". 

From Firefox 39, you can also open it with the Ctrl + Alt +Shift + I  key combination ( Cmd + Opt +Shift + I on a Mac).

You'll then be presented with a dialog like this (this can be removed by setting the devtools.debugger.prompt-connection property to false):

Click OK, and the Browser Toolbox will open in its own window:

You'll be able to inspect the browser's XUL windows and see, and be able to debug, all the JavaScript files loaded by the browser itself and by any add-ons that are running. Altogether you will have access to the following developer tools:

Debugging chrome: and about: pages

From Firefox 37 onwards, you can debug chrome: and about: pages using the normal Debugger, just as if they were ordinary content pages.

Targeting a document

In the normal toolbox, there's a button in the toolbar enabling you to target specific iframes in the document. From Firefox 40 onwards the same button appears in the browser toolbox as well, but this lists all the top-level chrome and content windows as well as any iframes they contain. This enables you to inspect documents in individual chrome windows and popups, as well as in content tabs.

For example, here's what the frame selection popup lists when there are two browser windows open, one with one content tab, and one with two: