Glossary
This glossary contains a list of terms used in the Add-on SDK.
Add-on: A software package that adds functionality to a Mozilla application, which can be built with either Mozilla's traditional add-on platform or the SDK.
Add-on SDK: A toolchain and associated applications for developing add-ons.
API Utils: A small, self-contained set of low-level modules that forms the base functionality for the SDK. The library can be "bootstrapped" into any Mozilla application or add-on.
CFX: A command-line build, testing, and packaging tool for SDK-based code.
CommonJS: A specification for a cross-platform JavaScript module system and standard library. Web site.
Extension: Synonym for Add-on.
Globals: The set of global variables and objects provided
to all modules, such as console
and memory
. Includes
CommonJS globals like require
and standard JavaScript globals such
as Array
and Math
.
Host Application: Add-ons are executed in the context of a host application, which is the application they are extending. Firefox and Thunderbird are the most obvious hosts for Mozilla add-ons, but at present only Firefox is supported as a host for add-ons developed using the Add-on SDK.
Jetpack Prototype: A Mozilla Labs experiment that predated and inspired the SDK. The SDK incorporates many ideas and some code from the prototype.
Loader: An object capable of finding, evaluating, and exposing CommonJS modules to each other in a given security context, while providing each module with necessary globals and enforcing security boundaries between the modules as necessary. It's entirely possible for Loaders to create new Loaders.
Low-Level Module: A module with the following properties:
- Has "chrome" access to the Mozilla platform (e.g.
Components.classes
) and all globals. - Is reloadable without leaking memory.
- Logs full exception tracebacks originating from client-provided callbacks (i.e., does not allow the exceptions to propagate into Mozilla platform code).
- Can exist side-by-side with multiple instances and versions of itself.
- Contains documentation on security concerns and threat modeling.
Module: A CommonJS module that is either a Low-Level Module or an Unprivileged Module.
Package: A directory structure containing modules, documentation, tests, and related metadata. If a package contains a program and includes proper metadata, it can be built into a Mozilla application or add-on.
Program: A module named main
that optionally exports
a main()
function. This module is intended either to start an application for
an end-user or add features to an existing application.
Unprivileged Module: A CommonJS module that may be run without unrestricted access to the Mozilla platform, and which may use all applicable globals that don't require chrome privileges.