XPInstall: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>KevinBlue18
m Grammar fix: changed to full phrase (replaced abbreviation "RDF" to the full descriptive phrase to explain what ".rdf" means in the parenthetical "install.rdf" and to match the determiner "a" which words or abbreviations that start with a consonant sound because "RDF" starts with a vowel sound which should be used with "an")
 
imported>InternetArchiveBot
Rescuing 0 sources and tagging 2 as dead.) #IABot (v2.0.9.5
 
Line 1: Line 1:
{{Short description|File format standing for Cross-Platform Install}}
{{Short description|File format standing for Cross-Platform Install}}
{{Multiple|
{{More citations needed|date=February 2024}}
{{Update|date=December 2016}}
}}
{{Infobox file format
{{Infobox file format
| name          = XPInstall (XPI)
| name          = XPInstall (XPI)
Line 17: Line 13:
| extended to  =
| extended to  =
}}
}}
'''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 [[Add-on (Mozilla)|Mozilla extensions]] that add functionality to the main application.<ref name="Fisher2009">{{cite web | last1=Fisher | first1=Tim | date=2009-02-16 | title=What's an XPI file and how do you open one? | website=Lifewire | url=https://www.lifewire.com/xpi-file-2622582 | access-date=2024-02-23}}</ref><ref name="File_org2023">{{cite web | author=File.org | date=2023-02-24 | title=XPI File: How to open XPI file (and what it is) | website=file.org | url=https://file.org/extension/xpi | access-date=2024-02-23}}</ref>
'''XPInstall''' (Cross-Platform Install) was a technology used by the [[Mozilla Application Suite]], [[SeaMonkey]], [[Mozilla Firefox]], [[Mozilla Thunderbird]] and other [[XUL]]-based applications for installing [[Add-on (Mozilla)|Mozilla extensions]] that add functionality to the main application.<ref name="File_org2023">{{cite web | author=File.org | date=2023-02-24 | title=XPI File: How to open XPI file (and what it is) | website=file.org | url=https://file.org/extension/xpi | access-date=2024-02-23}}</ref> Support for XPInstall was removed from Firefox in November 2017 with the release of Firefox 57.<ref>{{Cite web |last=Cimpanu |first=Catalin |title=Old Firefox Add-Ons Will Stop Working in Firefox 57, End of 2017 |url=https://www.bleepingcomputer.com/news/software/old-firefox-add-ons-will-stop-working-in-firefox-57-end-of-2017/ |access-date=2025-11-11 |website=BleepingComputer |language=en-us}}</ref>
 
== Overview ==
A XPI (pronounced "zippy" and derived from XPInstall) installer module is a [[Zip (file format)|ZIP]] file that contains an install script or a manifest at the root of the file, and a number of data files.<ref name="File_org2023" /> XPI files allowed users to install add-ons, themes, and other extensions to customize their Mozilla applications.<ref>{{Cite web |date=2016-10-04 |title=XPI - Mozilla {{!}} MDN |url=https://developer.mozilla.org/en-US/docs/Mozilla/XPI |access-date=2025-11-11 |website=developer.mozilla.org |language=en-US }}{{Dead link|date=December 2025 |bot=InternetArchiveBot }}</ref>


A XPI (pronounced "zippy" and derived from XPInstall) installer module is a [[Zip (file format)|ZIP]] file that contains an install script or a manifest at the root of the file, and a number of data files.<ref name="Fisher2009" /><ref name="File_org2023" />
In early versions of Mozilla (Firefox before 0.7 and Thunderbird before 0.5),<ref>{{Cite web |title=CVE-2011-2375 |url=https://vulmon.com/vulnerabilitydetails?qid=CVE-2011-2375 |access-date=2025-11-11 |website=vulmon.com}}</ref> 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 Tool|command line tools]], etc.<ref>{{Cite web |title=CERT/CC Vulnerability Note VU#648758 |url=https://www.kb.cert.org/ |access-date=2025-11-11 |website=www.kb.cert.org}}</ref> In later versions of Firefox and Thunderbird, the install script was replaced by a chrome manifest and a [[Resource Description Framework|resource description framework]] file (install.rdf).<ref>{{Cite web |date=2016-10-26 |title=Install Manifests - Mozilla {{!}} MDN |url=https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Install_Manifests |access-date=2025-11-11 |website=developer.mozilla.org |language=en-US }}{{Dead link|date=December 2025 |bot=InternetArchiveBot }}</ref>


In Mozilla, Firefox before 0.7, and before 0.5{{what|date=December 2016}}, 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 [[UI chrome|chrome]] manifest and a [[Resource Description Framework|resource description framework]] file (install.rdf). Since Firefox version 45, the only mandatory file is manifest.[[JSON|json]].
== Deprecation ==
In August 2015, Mozilla announced plans to deprecate add-ons based on XUL, XPCOM, and the Add-on SDK in favor of a new [[Add-on (Mozilla)|WebExtensions API.]]<ref>{{Cite web |last=Needham |first=Kev |date=2015-08-21 |title=The Future of Developing Firefox Add-ons |url=https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons |access-date=2025-11-11 |website=Mozilla Add-ons Community Blog |language=en-US}}</ref> Mozilla cited several reasons for the transition:


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 virus]]es, [[Trojan horse (computing)|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.
* '''Security concerns''': Legacy extensions had unrestricted access to Firefox internals, creating security vulnerabilities
* '''Performance issues''': XUL/XPCOM extensions interfered with Firefox's transition to a multiprocess architecture (Electrolysis/e10s)
* '''Development complexity''': The tight coupling between Firefox and its add-ons caused development delays and crashes
* '''Cross-browser compatibility''': WebExtensions, based on Chrome's extension model, enabled developers to create extensions that worked across multiple browsers


However, users are still advised to install extensions from trusted sources only.
=== Impact ===
The transition to Firefox 57 affected thousands of extensions.<ref>{{Cite web |last=Brinkmann |first=Martin |date=2017-04-27 |title=If Firefox 57 would be released today, 2273 add-ons would be compatible - gHacks Tech News |url=https://www.ghacks.net/2017/04/27/if-firefox-57-would-be-released-today-2274-add-ons-would-be-compatible/ |access-date=2025-11-11 |website=gHacks Technology News |language=en-US}}</ref> Many popular add-ons were rewritten using the WebExtensions API, while others were discontinued because their functionality could not be replicated within the more restrictive WebExtensions framework.<ref>{{Cite web |last=Cimpanu |first=Catalin |title=Old Firefox Add-Ons Will Stop Working in Firefox 57, End of 2017 |url=https://www.bleepingcomputer.com/news/software/old-firefox-add-ons-will-stop-working-in-firefox-57-end-of-2017/ |access-date=2025-11-11 |website=BleepingComputer |language=en-us}}</ref> The change was controversial within the Firefox community,<ref>{{Cite web |title=Mixed Feelings Greet Mozilla's Add-ons Overhaul |url=https://www.infoq.com/news/2015/08/firefox-addons-announcement/ |access-date=2025-11-11 |website=InfoQ |language=en}}</ref> with some users and developers praising improved cross-browser compatibility while others criticized the loss of customization capabilities.<ref>{{Cite news |title=Firefox 57: Good news? It's nippy. Bad news? It'll also trash your add-ons |url=https://www.theregister.com/2017/11/10/open_source_insider_firefox_57/ |archive-url=https://web.archive.org/web/20250809162629/https://www.theregister.com/2017/11/10/open_source_insider_firefox_57/ |archive-date=2025-08-09 |access-date=2025-11-11 |language=en |url-status=live }}</ref> Some users migrated to Firefox forks such as [[Pale Moon]] and [[Waterfox]], which continued to support legacy extensions.<ref>{{Cite web |last=Brinkmann |first=Martin |date=2019-10-25 |title=Waterfox development splits into Classic and Current branches - gHacks Tech News |url=https://www.ghacks.net/2019/10/25/waterfox-development-splits-into-classic-and-current-branches/ |access-date=2025-11-11 |website=gHacks Technology News |language=en-US}}</ref>


== Applications with built-in support for XPInstall ==
== Legacy ==
=== Web browsers ===
The '''.xpi file extension''' continues to be used for WebExtensions in Firefox. Modern XPI files contain a <code>manifest.json</code> file instead of <code>install.rdf</code> and use the WebExtensions API rather than XUL/XPCOM.
* [[Mozilla Application Suite]]
Several applications maintained XPInstall support after Firefox discontinued it:
* [[Mozilla Firefox]]
* [[Flock (web browser)|Flock]]
* [[SeaMonkey]]
* [[Netscape Browser]]


=== Other applications ===
* '''[[Pale Moon]]''': Forked Firefox's codebase to create the Unified XUL Platform (UXP), which continues to support traditional XUL extensions
* [[Nvu]] (web authoring application)
* '''[[SeaMonkey]]''': Re-implemented XUL support for newer codebases, though development has slowed
* [[Songbird (software)|Songbird]] (media player and organiser)
* '''[[Mozilla Thunderbird|Thunderbird]]''': Gradually transitioned away from XUL-based extensions, removing support in version 78 (2020)
* [[Mozilla Sunbird]]
* [[Mozilla Thunderbird]]
* [[Google Gears]]
* [[Zotero]] (bibliographic reference management software)


== See also ==
== See also ==
{{Portal|Free and open-source software}}
* [[Add-on (Mozilla)]]
* [[XUL]]
* [[XPCOM]]
* [[Browser extension]]
* [[Mozilla Archive Format]]
* [[Mozilla Archive Format]]


Line 50: Line 51:


== External links ==
== External links ==
{{Portal|Free and open-source software}}
* {{cite web | url=https://www.mozilla.org/projects/xpinstall/ | archive-url=https://web.archive.org/web/20090422015912/http://www.mozilla.org/projects/xpinstall/ | archive-date=2009-04-22 | title=XPInstall |access-date=2021-09-28 }}
* {{cite web | url=https://www.mozilla.org/projects/xpinstall/ | archive-url=https://web.archive.org/web/20090422015912/http://www.mozilla.org/projects/xpinstall/ | archive-date=2009-04-22 | title=XPInstall |access-date=2021-09-28 }}
* {{cite web | url=https://developer.mozilla.org/en/docs/Extension_Packaging | archive-url=https://web.archive.org/web/20080819132008/https://developer.mozilla.org/en/docs/Extension_Packaging | archive-date=2008-08-19 | title=Extension Packaging – MDC |access-date=2021-09-28 }}
* {{cite web | url=https://developer.mozilla.org/en/docs/Extension_Packaging | archive-url=https://web.archive.org/web/20080819132008/https://developer.mozilla.org/en/docs/Extension_Packaging | archive-date=2008-08-19 | title=Extension Packaging – MDC |access-date=2021-09-28 }}

Latest revision as of 23:51, 8 December 2025

Template:Short description Script error: No such module "Infobox".Template:Template otherScript error: No such module "Check for unknown parameters". XPInstall (Cross-Platform Install) was 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.[1] Support for XPInstall was removed from Firefox in November 2017 with the release of Firefox 57.[2]

Overview

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.[1] XPI files allowed users to install add-ons, themes, and other extensions to customize their Mozilla applications.[3]

In early versions of Mozilla (Firefox before 0.7 and Thunderbird before 0.5),[4] 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.[5] In later versions of Firefox and Thunderbird, the install script was replaced by a chrome manifest and a resource description framework file (install.rdf).[6]

Deprecation

In August 2015, Mozilla announced plans to deprecate add-ons based on XUL, XPCOM, and the Add-on SDK in favor of a new WebExtensions API.[7] Mozilla cited several reasons for the transition:

  • Security concerns: Legacy extensions had unrestricted access to Firefox internals, creating security vulnerabilities
  • Performance issues: XUL/XPCOM extensions interfered with Firefox's transition to a multiprocess architecture (Electrolysis/e10s)
  • Development complexity: The tight coupling between Firefox and its add-ons caused development delays and crashes
  • Cross-browser compatibility: WebExtensions, based on Chrome's extension model, enabled developers to create extensions that worked across multiple browsers

Impact

The transition to Firefox 57 affected thousands of extensions.[8] Many popular add-ons were rewritten using the WebExtensions API, while others were discontinued because their functionality could not be replicated within the more restrictive WebExtensions framework.[9] The change was controversial within the Firefox community,[10] with some users and developers praising improved cross-browser compatibility while others criticized the loss of customization capabilities.[11] Some users migrated to Firefox forks such as Pale Moon and Waterfox, which continued to support legacy extensions.[12]

Legacy

The .xpi file extension continues to be used for WebExtensions in Firefox. Modern XPI files contain a manifest.json file instead of install.rdf and use the WebExtensions API rather than XUL/XPCOM. Several applications maintained XPInstall support after Firefox discontinued it:

  • Pale Moon: Forked Firefox's codebase to create the Unified XUL Platform (UXP), which continues to support traditional XUL extensions
  • SeaMonkey: Re-implemented XUL support for newer codebases, though development has slowed
  • Thunderbird: Gradually transitioned away from XUL-based extensions, removing support in version 78 (2020)

See also

Script error: No such module "Portal".

References

<templatestyles src="Reflist/styles.css" />

  1. a b Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".Script error: No such module "Unsubst".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".Script error: No such module "Unsubst".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  1. REDIRECT Template:Mozilla