Status of this document

This is just a starter document, it should not be considered complete. Most of the information of this document is based on http://www.mozilla.org/scriptable/ and Creating XPCOM Components

Scriptable Interfaces

Interfaces allow XPCOM components to expose their functionality to the outside world while hiding the inner details of the component implementation. Interfaces are written in an Interface Description Language.

When we label an interface as scriptable, we're saying that components exporting this interface can be referenced (through this interface) from scripts (e.g JavaScript), and that we can write new components implementing the interface using script languages.

XPConnect

XPConnect is a technology that allows scriptable interfaces to be used/implemented from/in JavaScript scripts. No other scripts languages are supported by XPConnect.

Python

There's an extension extensions/python that bridges the gap between XPCOM and Python, allowing scriptable interfaces to be used/implemented from/in Python scripts.