Labs/Jetpack/Reboot/Glossary

< Labs‎ | Jetpack‎ | Reboot
Revision as of 21:45, 14 February 2010 by Adw (talk | contribs)
Draft-template-image.png THIS PAGE IS A WORKING DRAFT Pencil-emoji U270F-gray.png
The page may be difficult to navigate, and some information on its subject might be incomplete and/or evolving rapidly.
If you have any questions or ideas, please add them as a new topic on the discussion page.

Terminology is important. Here's a glossary of terms used for the reboot so we all speak the same language.

NOTE: this draft currently intentionally excludes some terminology used in other aspects of the reboot. This is due to the fact that the platform is currently in flux and terminology is changing frequently; some pages reflect different states of the platform than others. Please bear with this inconsistency for now.

CommonJS
A specification for a cross-platform JavaScript module system and standard library. Web site.
Addon
An XPInstall package (.XPI file) that adds functionality to a Mozilla application. It can include traditional addons such as AdBlock Plus, as well as extensions built with Cuddlefish. Extensions built with Cuddlefish, however, will eventually support install/upgrade without reboot, as well as a robust security model.
Extension
Synonym for Addon.
Jetpack
Synonym for Cuddlefish. Currently, we prefer using the term "Cuddlefish" to disambiguate it from the Jetpack Prototype, which is a completely different animal.
Cuddlefish
A framework and toolchain that makes it easier to build Mozilla applications and extensions with HTML technology.
The Cuddlefish Minilib
A small, self-contained set of Awesome Cuddlefish Chrome Modules that form the base functionality for Cuddlefish. The Minilib can be "bootstrapped" into any Mozilla application or extension. See JEP 28 for more information.
Cuddlefish Globals
The set of global variables and objects provided to all Cuddlefish Modules, such as console and memory. Includes CommonJS globals like require and standard JavaScript globals such as Array and Math. See JEP 28 for a full list.
Cuddlefish Chrome Module
A CommonJS module which requires full access to the Mozilla platform (e.g., Components.classes) to function properly. It also has access to all Cuddlefish Globals.
Awesome Cuddlefish Chrome Module
A Cuddlefish Chrome Module with the following properties:
  • Unloadable with no memory leaks.
  • Logs full exception tracebacks on callbacks originating from Mozilla platform code.
  • Exports functionality whose interfaces are fully decoupled from XPCOM.
  • Has a full suite of functional and unit tests.
Cuddlefish Securable Module
A CommonJS module that may be run without unrestricted access to the Mozilla platform, and which may use all applicable Cuddlefish Globals that don't require chrome privileges.
Cuddlefish Module
A CommonJS module that is either a Cuddlefish Chrome Module or a Cuddlefish Securable Module.
Cuddlefish Capability
A Cuddlefish Chrome Module exposing a standard interface that allows Mozilla platform functionality to be safely exposed to Cuddlefish Securable Modules. See JEP 37 for more information.
Cuddlefish 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 Cuddlefish Globals and exposing Cuddlefish Capabilities to the modules as necessary. It's entirely possible for Loaders to create new Loaders.
CFX
A command-line build, testing, and packaging tool for Cuddlefish-based code. See JEP 31 for more information.
Cuddlefish Package
A directory structure containing Cuddlefish modules, documentation, tests, and related metadata. See JEP 31 for more information.
Cuddlefish XPI
A build target of the CFX tool that, when loaded as an extension by a supported Mozilla application, bootstraps a Cuddlefish Loader and executes a Cuddlefish Program.
Cuddlefish Program
A Cuddlefish Module that exports a main() function.
Cuddlefish Platform Library
A set of Awesome Cuddlefish Chrome Modules that expose the functionality of the Mozilla Platform (Gecko).