Look up plug-in or add-on in Wiktionary, the free dictionary.
In
computing, a plug-in (or plugin, add-in, addin, add-on, or addon) is a
software component that adds a specific feature to an existing
computer program. When a program supports plug-ins, it enables customization.[1]
A
theme or
skin is a preset package containing additional or changed graphical appearance details, achieved by the use of a graphical user interface (GUI) that can be applied to specific software and websites to suit the purpose, topic, or tastes of different users to customize the look and feel of a piece of computer software or an operating system front-end GUI (and
window managers).
The host application provides services which the plug-in can use, including a way for plug-ins to register themselves with the host application and a
protocol for the exchange of data with plug-ins. Plug-ins depend on the services provided by the host application and do not usually work by themselves. Conversely, the host application operates independently of the plug-ins, making it possible for end-users to add and update plug-ins dynamically without needing to make changes to the host application.[11][12]
Programmers typically implement plug-ins as
shared libraries, which get
dynamically loaded at run time.
HyperCard supported a similar facility, but more commonly included the plug-in code in the HyperCard documents (called stacks) themselves. Thus the HyperCard stack became a self-contained application in its own right, distributable as a single entity that end-users could run without the need for additional installation-steps. Programs may also implement plug-ins by loading a directory of simple
script files written in a
scripting language like
Python or
Lua.
In
Mozilla Foundation definitions, the words "add-on", "
extension" and "plug-in" are not synonyms. "Add-on" can refer to anything that extends the functions of a Mozilla application. Extensions comprise a subtype, albeit the most common and the most powerful one. Mozilla applications come with integrated add-on managers that, similar to
package managers, install, update and manage extensions. The term, "plug-in", however, strictly refers to
NPAPI-based web content renderers.[13] Mozilla deprecated plug-ins for its products.[14] But
UXP-based applications, like web browsers
Pale Moon and
Basilisk, keep supporting (NPAPI) plug-ins.[15][16][17]
Helper application
A helper application is an external viewer program—like
IrfanView or
Adobe Reader—that displays content retrieved using a
web browser.[18][19] Unlike a plugin whose full code would be included in the browser's
address space, a helper application is a standalone application.[20] Web browsers choose an appropriate helper application based on a file's
Media type as indicated by the
filename extension.[21]