XPInstall

XPInstall (Cross-Platform Install) is a technology used by the Mozilla Application Suite, SeaMonkey, Mozilla Firefox, Mozilla Thunderbird and other XUL-based applications for installing Mozilla extensions that add functionality to the main application.

A XPI (pronounced "zippy" and derived from XPInstall) installer module is a ZIP file that contains an install script or a manifest at the root of the file, and a number of data files.

In Mozilla, Firefox before 0.7, and before 0.5, the package contained a JavaScript install script (install.js) with some directives for actions to take during an install, including adding files and directories, removing old or obsolete files and directories, executing command line tools, etc. In middle-old Firefox and Thunderbird versions, the install script has been replaced by a chrome manifest and a RDF file (install.rdf). Since Firefox version 45, the only mandatory file is manifest.json.

Since Firefox 1.0, XPIs from sites other than Mozilla Add-ons are blocked by default. This was an attempt to prevent malicious programs, like computer viruses, Trojans and spyware, from being installed by novice users. While it is possible to put a site into the whitelist that limits sites which can install XPIs, malicious sites cannot install extensions in the background (without human intervention). This is because a confirmation dialog needs to be answered for every single installation of an extension.

However, users are still advised to install extensions from trusted sources only.

Web browsers

 * Mozilla Application Suite
 * Mozilla Firefox
 * Flock
 * SeaMonkey
 * Netscape Browser

Other applications

 * Nvu (web authoring application)
 * Songbird (media player and organiser)
 * Mozilla Sunbird
 * Mozilla Thunderbird
 * Google Gears
 * Zotero (bibliographic reference management software)