Mozilla Firefox: Is there a difference between Add-ons, Extensions and Plugins?

I was reading up some documentation about writing my own Mozilla Firefox extension when my close partner in crime, Vignesh, IMed me. When he found out what I was doing, he asked me what exactly the difference was between a Firefox Add-on, extension and a plugin.

After thinking about it for a while and coming across the same in the extension development documentation – I decided to write about it here..

In short, all extensions are also Add-ons, But “Add-ons” is an umbrella term for extensions, themes, plugins and language-packs.

Extensions

Extensions enable the user to alter the existing functionality of the browser or to add completely new functionality. Eg: Firebug, YSlow, etc.

Plugins

Plugins are libraries which are used by the browser to display/render stuff that it cannot do natively, Eg: Flash, Java, PDF etc.

Themes

Themes allow you to change the look and feel of the browser, allowing you to customize it to your liking. There are hundreds of free themes for download.

Now, If you were wondering what the difference was between a Firefox theme and a Persona, Personas are a special kind of theme which lets you change the look and feel without altering other components of the UI such as the navigations buttons, etc. It also lets you try and install new “personas” without having to restart your browser to apply the changes.

If you had this question lingering in your head, hope you found it useful!