Anatomy of a Firefox Extension

Firefox Extensions are written within the Mozilla frameworking using XUL overlays, JavaScript, CSS, and RDF. Also, XPCom is used to provide support for external libraries including SOAP and XML-RPC and bindings for Python, Perl and Ruby. The XPI format facilitates online installations at a click and simple removals.
See The The Joy of XUL for more information on the technolgies mentioned above.

name.xpi (zip file)
  /chrome
    name.jar (zip file)
      /content
        about.xul
         (about in extension menu)
        contents.rdf
         (integrates overlay info into browser)
        nameOverlay.js
         (logic and functionality)
        nameOverlay.xul
         (scripts/import, interface elements)
      /skin
        /classic
        /name
          anything.png
          contents.rdf (paths to skin files)
  /default
  /components
    name.dll
    name.js
  /defaults
    /preferences
      name.js
    name.ext
  install.js(0.8-)
  install.rdf (0.9+)
   (GUID, name, version, description, etc)

Developer Resources

XUL Development