Revision as of 22:55, 2 June 2011

See description of all individual overlays from the picture loaded by Firefox in the same order.

browser.xul Represents the main Firefox UI and global scope that can contain further extensions.

browserOverlayWithFrame.xul This is the main Firebug overlay. It's the first thing loaded in Firebug. Scope of this overlay is global and all Firebug files used to live in this global scope (prior 1.7), which could cause collisions with other extensions. Newer versions of Firebug uses this overlay to define an iframe (firebugFrame.xul) that consequently contains all Firebug source files.

browserMenuOverlay.xul This overlay extends various Firefox/SeaMonkey menus and appends Firebug entry to it. This overlay should also contain definition of all commands and shortcuts that are active even if Firebug UI is closed/minimized.

firebugMenuOverlay.xul Defines the Firebug menu. This menu is inserted at various places defined in browserMenuOverlay.xul. This overlay should contain definition of all commands and shortcuts that are active only within Firebug UI (when Firebug UI has focus).

Firebug Modules

All Firebug Modules are loaded into the firebugFrame.xul scope. This isolates Firebug API from the global scope and avoids possible collisions with other extensions (they often live in browser.xul scope).

The module loading starts as soon as the firebugOverlay.xul is fully loaded (including bindings defined in bindings.xul) and happens asynchronously.

Accessing Elements

Use Firefox.getElementById to get elements from browser.xul scope (Firefox UI).

Use Firebug.chrome.$ to get elements from firebugFrame.xul scope (Firebug UI).