Glossary

  • Revision slug: Glossary
  • Revision title: Glossary
  • Revision id: 56151
  • Created:
  • Creator: Callek
  • Is current revision? No
  • Comment may have to rethink use of templates here...

Revision Content

Here is a list of some of the jargon used by mozilla hackers. Make additions and corrections as needed!

{{template.Id("ASN.1")}}
Abstract Syntax Notation One. A formal language for describing messages to be exchanged between distributed computer systems. Along with an encoding like BER/DER, ASN.1 can be used to generate and process complex data structures in a standardized and OS-independent manner. For an overview, see A Layman's Guide to a Subset of ASN.1, BER, and DER.
{{template.Id("Aviary")}}
The keyword used to label Firefox branches. Aviary is sometimes used to refer to Firefox, Thunderbird, and other Toolkit applications. To clarify, whereas an aviary is literally "a large enclosure for holding birds in confinement" (per Dictionary.com, here it refers to the repository where all of the various Mozilla "birds" (Firefox, Thunderbird, etc.) are grouped together. The Aviaries are further distinguished by code levels, e.g., Aviary 1.0 (Firefox 1.x), Aviary 2.0, etc.
{{template.Id("BAM")}}
The Netscape internal code-name for our code modularization effort. It stands for "Born Again Modularization." It hinges upon XPCOM.
{{template.Id("bidi")}}
Bi-di is short for bi-directional, which means a combination of left-to-right (LTR) and right-to-left (RTL) writing in the same document. LTR writing systems include Latin, Russian, and Greek alphabets, and Hindu/Arabic numerals. RTL includes Arabic and Hebrew alphabets in texts without Hindu/Arabic numerals. The Unicode standard includes an algorithm for bidi rendering, which is required for Unicode conformance. In informal use among habitual LTR users, the term bidi includes unmixed, unidirectional RTL writing.
{{template.Id("branch")}}
This is a branch off the {{template.Anch("trunk")}}. It is a development area for big or customized changes so the trunk does not break.
{{template.Id("carpool")}}
Checking in code with the tree closed to make sure that major widespread changes compile cleanly. Checking into a closed tree ensures others don't check in changes that conflict with yours. Normally this isn't a problem but problems arise sometimes when checking in a large number of files. Schedule carpools with the build team.
{{template.Id("CCP")}}
Cut, Copy and Paste (clipboard operations)
{{template.Id("certificate")}}
Digital data, formatted according to the {{template.Anch("X.509")}} standard, that specifies the name of an individual, company, or other entity (the {{template.Anch("subject name")}} of the certificate) and certifies that a public key, which is also included in the certificate, belongs to that entity. A certificate is issued and digitally signed by a {{template.Anch("certificate authority")}} (CA). A certificate's validity can be verified by checking the CA's digital signature using the techniques of {{template.Anch("public-key cryptography")}}. To be trusted within a public-key infrastructure (PKI), a certificate must be issued and signed by a CA that is trusted by other entities enrolled in the PKI. Also called digital ID, digital passport, public-key certificate X.509 certificate, and security certificate.
{{template.Id("CA")}}
Certificate authority. A service that issues a {{template.Anch("certificate")}} after verifying the identity of the person or entity the certificate is intended to identify. A CA also renews and revokes certificates and generates CRLs. The entity named in the issuer field of a certificate is always a CA. Certificate authorities can be independent third parties or a person or organization using certificate-issuing server software.
{{template.Id("ClassObject")}}
Same object as factory.
{{template.Id("component")}}
An implementation of a set of interfaces identified by a CLSID
{{template.Id("ComponentManager")}}
Central Object of XPCOM that provides API for object creation and management.
{{wiki.template('Named-id', [ "content_node", "content node" ])}}
A content node is a baseclass for all nodes in the document tree. For {{template.Abbr("HTML", "HyperText Markup Language")}} pages this means that each content node represents a HTML element in the HTML document. Content nodes can be manipulated by the {{template.Abbr("DOM", "Document Object Module")}}.
{{wiki.template('Named-id', [ "content_sink", "content sink" ])}}
The terms "sink" and "source" are commonly used to describe the flow of data. A data source, such as a netlib stream, provides data to a listener, whereas a datasink (such as an observer) is an object that absorbs data provided (often by a source). In Mozilla, the content sink is an interface that sits between the parsing engine and the code that actually builds the content model. It is useful to keep these systems separate so that they can vary independently, while the interface they use to communicate remains (fairly) constant.
{{template.Id("CMMF")}}
Certificate Management Message Formats. A PKIX format used to convey certificate requests and revocation requests from end entities to certificate authorities and to send a variety of information from certificate authorities to end entities. CMMF is subsumed by another proposed standard, Certificate Management Messages over {{template.Abbr("CMS", "Content Management System")}} (CMC). For information about CMC and related standards, see the PKIX Charter.
{{template.Id("CRMF")}}
Certificate Request Message Format. A PKIX format used for messages related to life-cycle management of X.509 certificates. This format is a subset of CMMF. For details, see CMMF.
{{mediawiki.external('http://www.mozilla.org/newlayout/doc/style.html' .. template.Id("CSS"))}}
Cascading Style Sheets. A {{mediawiki.external('http://www.w3.org/' .. template.Abbr("W3C", "World Wide Web Consortium"))}} standard for defining presentation in Web documents. NGLayout supports CSS1 and most of CSS2.1. Some CSS3 properties and selectors are also implemented.
{{mediawiki.external('http://www.mozilla.org/cvs.html' .. template.Id("CVS"))}}
CVS is the version control system we use. Use CVS to keep your development tree in sync with the latest changes.
{{template.Id("D11N")}}
Documentation.
{{template.Id("DND")}}
Drag and Drop
{{template.Id("dogfood")}}
Interim software used internally for testing. To eat one's own dogfood means to use the software one is developing, as part of one's everyday development environment. The idea is that developers who are using their own software will quickly learn what's missing or broken. Dogfood is typically not even of beta quality.
{{mediawiki.external('http://www.mozilla.org/newlayout/dom-roadmap.html' .. template.Id("DOM"))}}
The Document Object Model. A {{mediawiki.external('http://www.w3.org/' .. template.Abbr("W3C", "World Wide Web Consortium"))}} standard for accessing and modifying the content tree.
{{template.Id("DTD")}}
Document Type Definition - specifies a set of elements, their relationships and the tag set to mark the document. A good introduction to SGML concepts can be found at pineapplesoft.com.
In mozilla, DTD is also a class used by the parser inheriting from nsIDTD.
{{wiki.template('Named-id', [ "encumbered_code", "encumbered code" ])}}
Code that cannot be released as open source for legal reasons. For example, patented encryption code licensed from RSA Security by Netscape cannot be released as part of the NSS project on Mozilla.
{{template.Id("ender")}}
A code name for Mozilla's editor module.
{{template.Id("factory")}}
An object whose sole purpose is creation of objects of a particular component. There exists only one factory for every Component (CLSID). The IID and definition has been carefully choosen so as to be binary compatible with COM.
{{template.Id("frame")}}
The lowest level object in the layout model. Each content node maps to one or more frames during reflow. The frame handles the rendering of the content. A frame is pretty closely tied to the box concept in CSS2.
{{wiki.template('Named-id', [ "frame_hierarchy", "frame hierarchy" ])}}
The hierarchy of frames that represents a laid-out document.
{{template.Id("gfx")}}
The lowest cross platform layer for drawing. Contains support for fonts, colors, images and drawing graphical primitives. Implemented once for each platform and used by the rest of Mozilla.
{{template.Id("horked")}}
Broken. He checked in without testing on the Mac and now the tree is horked.
{{mediawiki.external('http://www.w3.org/MarkUp/' .. template.Id("HTML"))}}
Hypertext Markup Language - NGLayout implements HTML 4.01
{{template.Id("IDL")}}
Interface Description Language. A language-independent way to describe a module interface. IDL is compiled by an IDL compiler to generate C++ header files which describe XPCOM interfaces. Mozilla uses both DOM IDL (compiled by idlc), for DOM and parts of layout, and XPIDL (compiled by xpidl), for everything else. In the future, DOM IDL will be replaced by XPIDL.
{{template.Id("IID")}}
Interface ID {xxxxx-xxx-xxx-xxxxxx}. A unique number that identifies a given interface.
{{template.Id("imglib")}}
{{mediawiki.external('http://www.libpr0n.com/' .. template.Id("libpr0n"))}}
Image library
{{template.Id("Interface")}}
Contract betwen the implementation and usage. A pure virtual abstract base class with no data members. eg. {{wiki.template('Named-source', [ "modules/libjar/nsIZipReader.idl", "nsIZipReaderInterface" ])}}
{{mediawiki.external('http://www.mozilla.org/docs/refList/i18n/' .. template.Id("internationalization"))}}
Designing and developing a software product to function in multiple locales. This process involves identifying the locales that must be supported, designing features which support those locales, and writing code that functions equally well in any of the supported locales.
{{template.Id("i18n")}}
Abbreviation for "internationalization" ("i" + 18 letters + "n"; lower case i is used to distinguish it from the numeral 1 (one)).
{{template.Id("js")}}
JavaScript
{{template.Id("libfont")}}
Font library
{{mediawiki.external('http://www.mozilla.org/docs/refList/i18n/' .. template.Id("localization"))}}
Modifying or adapting a software product to fit the requirements of a particular locale. This process includes (but may not be limited to) translating the user interface, documentation and packaging, changing dialog box geometries, customizing features (if necessary), and testing the translated product to ensure that it still works (at least as well as the original).
{{template.Id("L10n")}}
Abbreviation for "localization" ("L" + 10 letters + "n"; upper case L is used to distinguish it from the numeral 1 (one)).
{{mediawiki.external('http://www.mozilla.org/docs/refList/i18n/l12yGuidelines.html' .. template.Id("localizability"))}}
The degree to which a software product can be localized. Localizable products separate data from code, correctly display the target language and function properly after being localized.
{{template.Id("L12y")}}
Abbreviation for "localizability" ("L" + 12 letters + "y"; upper case L is used to distinguish it from the numeral 1 (one)).
{{template.Id("Locale")}}
A set of conventions affected or determined by human language and customs, as defined within a particular geo-political region. These conventions include (but are not necessarily limited to) the written language, formats for dates, numbers and currency, sorting orders, etc.
{{template.Id("module")}}
A packaging of a set of Components (ie) a DLL.
{{mediawiki.external('http://www.mozilla.org/docs/netlib/necko.html' .. template.Id("necko"))}}
Mozilla's networking library. Responsible for parsing URLs, handling connections to webservers, handling transfer protocols and delivering a data stream to the parser.
{{template.Id("netlib")}}
Networking Library. The current networking library is called {{template.Anch("necko")}}.
{{mediawiki.external('http://www.mozilla.org/newlayout/' .. template.Id("NGLayout"))}}
Next Generation Layout Engine.
{{mediawiki.external('http://www.mozilla.org/projects/xpcom/nsCOMPtr.html<code>' .. template.Id("nsCOMPtr") .. '</code>')}}
nsCOMPtr is a smart-pointer. It is a template class that acts, syntactically, just like an ordinary pointer in C or C++, i.e., you can apply * or -> to it to get to what it points at. nsCOMPtr is smart in that, unlike a raw COM interface pointer, nsCOMPtr manages AddRef, Release, and QueryInterface for you.
{{mediawiki.external('http://www.mozilla.org/docs/modunote.htm<code>' .. template.Id("nsISupports") .. '</code>')}}
The mother of all interfaces. All interfaces ultimately inherit from this. Provides refcounting. The IID and definition has been carefully choosen so as to be binary compatible with COM.
{{template.Id("object")}}
An instance of a Component
{{template.Id("OCSP")}}
Online Certificate Status Protocol. A PKIX protocol used for determining the current status of a digital certificate. For details, see OCSP.
{{template.Id("PDT")}}
The Product Delivery Team keeps track of bugs that most affect the usability of the browser. The idea is that after the PDT bugs are fixed, Mozilla will have reached dogfood. That is, it will be usable enough for developers and testers to use every day as their main browser and mail client even if it isn't perfect yet. Bugs are marked [{{template.Anch("Dogfood")}}] when someone believes that the bug keeps Mozilla from being usable as dogfood. The PDT team marks the bug [PDT+] if they agree and [PDT-] if not.
{{template.Id("PKIX")}}
Public-Key Infrastructure (X.509). A working group of the Internet Engineering Task Force (IETF) that is developing Internet standards needed to support a PKI based on X.509 certificates. For more information, see PKIX Charter.
{{wiki.template('Named-id', [ "PKCS_.235", "PKCS #5" ])}}
Public-Key Cryptography Standard #5. The standard developed by RSA Laboratories that governs password-based cryptography, for example to encrypt private keys for storage.
{{wiki.template('Named-id', [ "PKCS_.237", "PKCS #7" ])}}
Public-Key Cryptography Standard #7. The standard developed by RSA Laboratories that governs the application of cryptography to data, for example digital signatures.
{{wiki.template('Named-id', [ "PKCS_.2311", "PKCS #11" ])}}
Public-Key Cryptography Standard #11. The standard developed by RSA Laboratories that governs communication with cryptographic tokens (such as smart cards).
{{wiki.template('Named-id', [ "PKCS_.2312", "PKCS #12" ])}}
Public-Key Cryptography Standard #12. The PKCS standard developed by RSA Laboratories that governs the format used to store or transport private keys, certificates, and other secret material.
{{template.Id("porkjockey")}}
The porkjockeys are a group of people taking time to fix major architectural issues that are the source of bugs and usability problems throughout the codebase. The name was coined at an architecture meeting one dark day, when someone asked when the beta would ship. The answer? When pigs fly. Thus began a hopefully-not-quixotic quest to launch pork.
{{wiki.template('Named-id', [ "presentation_context", "presentation context" ])}}
An object that provide a context for a presentation shell. It is a means for the presentation shell to get at external settings and data.
{{wiki.template('Named-id', [ "presentation_shell", "presentation shell" ])}}
Presentation shells are the controlling object during the presentation of a document. It owns the document, the frame hierarchy, stylesheets and the presentation context. It also controls and initiates the reflow of the document.
{{wiki.template('Named-id', [ "private_key", "private key" ])}}
One of a pair of keys used in {{template.Anch("public-key cryptography")}}. The private key is kept secret and is used to decrypt data encrypted with the corresponding {{template.Anch("public key")}}.
{{template.Id("ProgID")}}
A String name for a Component.
{{wiki.template('Named-id', [ "public_key", "public key" ])}}
One of a pair of keys used in {{template.Anch("public-key cryptography")}}. The public key is distributed freely and published as part of a certificate. It is typically used to encrypt data sent to the public key's owner, who then decrypts the data with the corresponding {{template.Anch("private key")}}.
{{wiki.template('Named-id', [ "public-key_cryptography", "public-key cryptography" ])}}
A set of well-established techniques and standards that allow an entity to verify its identity electronically or to sign and encrypt electronic data. Two keys are involved: a public key and a private key. A public key is published as part of a certificate, which associates that key with a particular identity. The corresponding private key is kept secret. Data encrypted with the public key can be decrypted only with the private key.
{{wiki.template('Named-id', [ "public-key_infrastructure_.28PKI.29", "public-key infrastructure (PKI)" ])}}
The standards and services that facilitate the use of {{template.Anch("public-key cryptography")}} and X.509 v3 certificates in a networked environment.
{{template.Id("raptor")}}
Former code-name for {{template.Anch("NGLayout")}}. We were asked to stop using it in public due to trademark problems.
{{mediawiki.external('http://www.mozilla.org/rdf/doc/' .. template.Id("RDF"))}}
Resource Description Framework
{{template.Id("reflow")}}
The act of laying out the content tree and creating/updating the corresponding frame hierarchy is called reflowing.
{{wiki.template('Named-id', [ "reflow_mapped", "reflow mapped" ])}}
Reflowing content that already has a frame.
{{wiki.template('Named-id', [ "reflow_unmapped", "reflow unmapped" ])}}
Reflowing content that doesn't yet have a frame.
{{template.Id("registry")}}
A hierarchical attribute-value pair storage.
{{template.Id("RFE")}}
This was a keyword used to mark a bug as a request for enhancement. It has been replaced with the "enhancement" severity setting in Bugzilla.
{{template.Id("service")}}
A component that is used as a singleton. That means there exist only one instantiation of the component, and all request for it returns the same object.
{{template.Id("ServiceManager")}}
A singleton manager. Holds and manages singleton references to objects for application. Going to be merged with the ComponentManager.
{{wiki.template('Named-id', [ "S.2FMIME", "S/MIME" ])}}
Secure/Multipurpose Internet Mail Extensions. A message specification (based on the popular Internet MIME standard) that provides a consistent way to send and receive signed and encrypted MIME data. For complete specifications, see S/MIME version 2 and S/MIME version 3.
{{template.Id("SSL")}}
Secure Sockets Layer. A protocol that allows mutual authentication between a client and server and the establishment of an authenticated and encrypted connection. SSL runs above TCP/IP and below HTTP, LDAP, IMAP, NNTP, and other high-level network protocols. For complete SSL specifications, see SSL v3 and SSL v2.
{{wiki.template('Named-id', [ "subject_name", "subject name" ])}}
A distinguished name (DN) that uniquely describes the subject of a {{template.Anch("certificate")}}.
{{template.Id("talkback")}}
This is a crash data capturing program that Mozilla uses so that crashes can more efficiently be fixed.
{{template.Id("TLS")}}
Transport Layer Security. A protocol from the IETF based on {{template.Anch("SSL")}}. It will eventually supersede SSL while remaining backward-compatible with SSL implementations. For more information, see The TLS Protocol.
{{template.Id("tracking")}}
A tracking bug many related bugs to be monitored from a single bug. They should have the meta keyword and/or be placed in the Tracking component.
{{template.Id("triage")}}
This term is derived from how doctors triage patients into different priorities. Mozilla applies it to the bug quality assurance process. QA volunteers triage bugs into appropriate priorities and severities.
{{template.Id("trunk")}}
This is where the primary Mozilla development occurs.
{{mediawiki.external('http://www.mozilla.org/scriptable/typelib_file.html' .. template.Id("typelib"))}}
Storage for type information about interfaces. Interfaces expressed in IDL have their type information maintained in Typelib automatically.
{{template.Id("UI")}}
User Interface
{{mediawiki.external('http://www.mozilla.org/projects/venkman/' .. template.Id("Venkman"))}}
Javascript Debugger
{{template.Id("webshell")}}
A container that knows how to load and render web pages. Frameset pages has a root webshell and one webshell per frame.
{{template.Id("widget")}}
Primitive user interface part (button, menu, radiobutton, etc). There are two kinds of widgets: Native and gfx. Native widgets are implemented differently for each platform, but gfx widgets are implemented using gfx and is thus the same for all platforms.

{{template.Anch("X.509")}}

{{template.Id("X.509")}}
A standard defined by the International Telecommunication Union (ITU) that governs the format of {{template.Anch("certificates")}} used for authentication in {{template.Anch("public-key cryptography")}}.
{{template.Id("XIF")}}
XML Interchange Format - used internally by NGLayout for all I/O to clipboard, etc.
{{mediawiki.external('http://www.mozilla.org/newlayout/xml/' .. template.Id("XML"))}}
Extensible Markup Language - see the W3C's XML site for more info.
{{template.Id("XP")}}
Cross-Platform
{{mediawiki.external('http://www.mozilla.org/projects/xpcom/' .. template.Id("XPCOM"))}}
Cross Platform Component Object Model
{{mediawiki.external('http://www.mozilla.org/scriptable/' .. template.Id("XPConnect"))}}
Ability to call C++ implementations of interfaces expressed in IDL from javascript and vice versa.
{{template.Id("XPFE")}}
The cross-platform front end. The part of Mozilla that implements the user interface of mozilla. Everything that makes a browser a browser except the rendering of pages is considered xpfe (bookmarks, toolbars, menus etc).
{{mediawiki.external('http://www.mozilla.org/scriptable/xpidl/idl-authors-guide/index.html' .. template.Id("XPIDL"))}}
Cross Platform Interface Definition Language. A language for expressing interfaces.
{{mediawiki.external('http://www.mozilla.org/scriptable/xpidl/index.html' .. template.Id("xpidl"))}}
A compiler for XPIDL. xpidl generates C++ interfaces, .xpt files describing interfaces at runtime for XPConnect, and Java interface files.
{{mediawiki.external('http://www.mozilla.org/xpfe/xptoolkit/xulintro.html' .. template.Id("XUL"))}}
XML-based User Interface Language. XUL (pronounced zuul) is the user interface description language used for creating user interfaces with Mozilla's Cross Platform Front End.

Feel free to add new items to this file and make corrections. If you don't have access to the tree, send your suggestions to webmaster@mozilla.org.

Revision Source

<p>Here is a list of some of the jargon used by mozilla hackers. Make additions and corrections as needed!
</p>
<dl><dt>{{template.Id("ASN.1")}}
</dt><dd>Abstract Syntax Notation One. A formal language for describing messages to be exchanged between distributed computer systems. Along with an encoding like BER/DER, ASN.1 can be used to generate and process complex data structures in a standardized and OS-independent manner. For an overview, see <a class="external" href="ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc">A Layman's Guide to a Subset of ASN.1, BER, and DER</a>.
</dd></dl>
<dl><dt>{{template.Id("Aviary")}}
</dt><dd>The keyword used to label Firefox branches. Aviary is sometimes used to refer to Firefox, Thunderbird, and other Toolkit applications. To clarify, whereas an aviary is literally "a large enclosure for holding birds in confinement" (per  <a class="external" href="http://dictionary.reference.com/search?q=aviary">Dictionary.com</a>, here it refers to the repository where all of the various Mozilla "birds" (Firefox, Thunderbird, etc.) are grouped together. The Aviaries are further distinguished by code levels, e.g., Aviary 1.0 (Firefox 1.x), Aviary 2.0, etc.
</dd></dl>
<dl><dt>{{template.Id("BAM")}}
</dt><dd>The Netscape internal code-name for our code modularization effort. It stands for "Born Again Modularization." It hinges upon XPCOM. 
</dd></dl>
<dl><dt>{{template.Id("bidi")}}
</dt><dd>Bi-di is short for bi-directional, which means a combination of left-to-right (LTR) and right-to-left (RTL) writing in the same document. LTR writing systems include Latin, Russian, and Greek alphabets, and Hindu/Arabic numerals. RTL includes Arabic and Hebrew alphabets in texts without Hindu/Arabic numerals. The Unicode standard includes an algorithm for bidi rendering, which is required for Unicode conformance. In informal use among habitual LTR users, the term bidi includes unmixed, unidirectional RTL writing. 
</dd></dl>
<dl><dt>{{template.Id("branch")}}
</dt><dd>This is a branch off the {{template.Anch("trunk")}}. It is a development area for big or customized changes so the trunk does not break. 
</dd></dl>
<dl><dt>{{template.Id("carpool")}}
</dt><dd>Checking in code with the tree closed to make sure that major widespread changes compile cleanly. Checking into a closed tree ensures others don't check in changes that conflict with yours. Normally this isn't a problem but problems arise sometimes when checking in a large number of files. Schedule carpools with the build team. 
</dd></dl>
<dl><dt>{{template.Id("CCP")}}
</dt><dd>Cut, Copy and Paste (clipboard operations) 
</dd></dl>
<dl><dt>{{template.Id("certificate")}}
</dt><dd>Digital data, formatted according to the {{template.Anch("X.509")}} standard, that specifies the name of an individual, company, or other entity (the {{template.Anch("subject name")}} of the certificate) and certifies that a public key, which is also included in the certificate, belongs to that entity. A certificate is issued and digitally signed by a {{template.Anch("certificate authority")}} (CA). A certificate's validity can be verified by checking the CA's digital signature using the techniques of {{template.Anch("public-key cryptography")}}. To be trusted within a public-key infrastructure (PKI), a certificate must be issued and signed by a CA that is trusted by other entities enrolled in the PKI. Also called digital ID, digital passport, public-key certificate X.509 certificate, and security certificate. 
</dd></dl>
<dl><dt>{{template.Id("CA")}}
</dt><dd>Certificate authority. A service that issues a {{template.Anch("certificate")}} after verifying the identity of the person or entity the certificate is intended to identify. A CA also renews and revokes certificates and generates CRLs. The entity named in the issuer field of a certificate is always a CA. Certificate authorities can be independent third parties or a person or organization using certificate-issuing server software. 
</dd></dl>
<dl><dt>{{template.Id("ClassObject")}}
</dt><dd>Same object as factory. 
</dd></dl>
<dl><dt>{{template.Id("component")}}
</dt><dd>An implementation of a set of interfaces identified by a CLSID 
</dd></dl>
<dl><dt>{{template.Id("ComponentManager")}}
</dt><dd>Central Object of XPCOM that provides API for object creation and management. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "content_node", "content node" ])}}
</dt><dd>A content node is a baseclass for all nodes in the document tree. For {{template.Abbr("HTML", "HyperText Markup Language")}} pages this means that each content node represents a HTML element in the HTML document. Content nodes can be manipulated by the {{template.Abbr("DOM", "Document Object Module")}}. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "content_sink", "content sink" ])}}
</dt><dd>The terms "sink" and "source" are commonly used to describe the flow of data. A data source, such as a netlib stream, provides data to a listener, whereas a datasink (such as an observer) is an object that absorbs data provided (often by a source). In Mozilla, the content sink is an interface that sits between the parsing engine and the code that actually builds the content model. It is useful to keep these systems separate so that they can vary independently, while the interface they use to communicate remains (fairly) constant. 
</dd></dl>
<dl><dt>{{template.Id("CMMF")}}
</dt><dd>Certificate Management Message Formats. A PKIX format used to convey certificate requests and revocation requests from end entities to certificate authorities and to send a variety of information from certificate authorities to end entities. CMMF is subsumed by another proposed standard, Certificate Management Messages over {{template.Abbr("CMS", "Content Management System")}} (CMC). For information about CMC and related standards, see the <a class="external" href="http://www.ietf.org/html.charters/pkix-charter.html">PKIX Charter</a>. 
</dd></dl>
<dl><dt>{{template.Id("CRMF")}}
</dt><dd>Certificate Request Message Format. A PKIX format used for messages related to life-cycle management of X.509 certificates. This format is a subset of CMMF. For details, see <a class="external" href="ftp://ftp.isi.edu/in-notes/rfc2511.txt">CMMF</a>.
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/newlayout/doc/style.html' .. template.Id("CSS"))}}
</dt><dd>Cascading Style Sheets. A {{mediawiki.external('http://www.w3.org/' .. template.Abbr("W3C", "World Wide Web Consortium"))}} standard for defining presentation in Web documents. NGLayout supports CSS1 and most of CSS2.1. Some CSS3 properties and selectors are also implemented. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/cvs.html' .. template.Id("CVS"))}}
</dt><dd>CVS is the version control system we use. Use CVS to keep your development tree in sync with the latest changes. 
</dd></dl>
<dl><dt>{{template.Id("D11N")}}
</dt><dd>Documentation. 
</dd></dl>
<dl><dt>{{template.Id("DND")}}
</dt><dd>Drag and Drop 
</dd></dl>
<dl><dt>{{template.Id("dogfood")}}
</dt><dd>Interim software used internally for testing. To eat one's own dogfood means to use the software one is developing, as part of one's everyday development environment. The idea is that developers who are using their own software will quickly learn what's missing or broken. Dogfood is typically not even of beta quality. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/newlayout/dom-roadmap.html' .. template.Id("DOM"))}}
</dt><dd>The Document Object Model. A {{mediawiki.external('http://www.w3.org/' .. template.Abbr("W3C", "World Wide Web Consortium"))}} standard for accessing and modifying the content tree. 
</dd></dl>
<dl><dt>{{template.Id("DTD")}}
</dt><dd>Document Type Definition - specifies a set of elements, their relationships and the tag set to mark the document. A good introduction to SGML concepts can be found at <a class="external" href="http://www.pineapplesoft.com/reports/sgml/background.html">pineapplesoft.com</a>.
</dd><dd>In mozilla, DTD is also a class used by the parser inheriting from nsIDTD. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "encumbered_code", "encumbered code" ])}}
</dt><dd>Code that cannot be released as open source for legal reasons. For example, patented encryption code licensed from RSA Security by Netscape cannot be released as part of the NSS project on Mozilla. 
</dd></dl>
<dl><dt>{{template.Id("ender")}}
</dt><dd>A code name for Mozilla's editor module. 
</dd></dl>
<dl><dt>{{template.Id("factory")}}
</dt><dd>An object whose sole purpose is creation of objects of a particular component. There exists only one factory for every Component (CLSID). The IID and definition has been carefully choosen so as to be binary compatible with COM. 
</dd></dl>
<dl><dt>{{template.Id("frame")}}
</dt><dd>The lowest level object in the layout model. Each content node maps to one or more frames during reflow. The frame handles the rendering of the content. A frame is pretty closely tied to the box concept in CSS2. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "frame_hierarchy", "frame hierarchy" ])}}
</dt><dd>The hierarchy of frames that represents a laid-out document. 
</dd></dl>
<dl><dt>{{template.Id("gfx")}}
</dt><dd>The lowest cross platform layer for drawing. Contains support for fonts, colors, images and drawing graphical primitives. Implemented once for each platform and used by the rest of Mozilla. 
</dd></dl>
<dl><dt>{{template.Id("horked")}}
</dt><dd>Broken. He checked in without testing on the Mac and now the tree is horked. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.w3.org/MarkUp/' .. template.Id("HTML"))}}
</dt><dd>Hypertext Markup Language - NGLayout implements HTML 4.01 
</dd></dl>
<dl><dt>{{template.Id("IDL")}}
</dt><dd>Interface Description Language. A language-independent way to describe a module interface. IDL is compiled by an IDL compiler to generate C++ header files which describe XPCOM interfaces. Mozilla uses both DOM IDL (compiled by idlc), for DOM and parts of layout, and <a class="external" href="http://www.mozilla.org/scriptable/xpidl/idl-authors-guide/">XPIDL</a> (compiled by <a class="external" href="http://www.mozilla.org/scriptable/xpidl/">xpidl</a>), for everything else. In the future, DOM IDL will be replaced by XPIDL. 
</dd></dl>
<dl><dt>{{template.Id("IID")}}
</dt><dd>Interface ID {xxxxx-xxx-xxx-xxxxxx}. A unique number that identifies a given interface. 
</dd></dl>
<dl><dt>{{template.Id("imglib")}}
</dt><dt>{{mediawiki.external('http://www.libpr0n.com/' .. template.Id("libpr0n"))}}
</dt><dd>Image library
</dd></dl>
<dl><dt>{{template.Id("Interface")}}
</dt><dd>Contract betwen the implementation and usage. A pure virtual abstract base class with no data members. eg. {{wiki.template('Named-source', [ "modules/libjar/nsIZipReader.idl", "nsIZipReaderInterface" ])}}
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/docs/refList/i18n/' .. template.Id("internationalization"))}}
</dt><dd>Designing and developing a software product to function in multiple locales. This process involves identifying the locales that must be supported, designing features which support those locales, and writing code that functions equally well in any of the supported locales. 
</dd></dl>
<dl><dt>{{template.Id("i18n")}}
</dt><dd>Abbreviation for "internationalization" ("i" + 18 letters + "n"; lower case i is used to distinguish it from the numeral 1 (one)). 
</dd></dl>
<dl><dt>{{template.Id("js")}}
</dt><dd>JavaScript 
</dd></dl>
<dl><dt>{{template.Id("libfont")}}
</dt><dd>Font library 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/docs/refList/i18n/' .. template.Id("localization"))}}
</dt><dd>Modifying or adapting a software product to fit the requirements of a particular locale. This process includes (but may not be limited to) translating the user interface, documentation and packaging, changing dialog box geometries, customizing features (if necessary), and testing the translated product to ensure that it still works (at least as well as the original). 
</dd></dl>
<dl><dt>{{template.Id("L10n")}}
</dt><dd>Abbreviation for "localization" ("L" + 10 letters + "n"; upper case L is used to distinguish it from the numeral 1 (one)). 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/docs/refList/i18n/l12yGuidelines.html' .. template.Id("localizability"))}}
</dt><dd>The degree to which a software product can be localized. Localizable products separate data from code, correctly display the target language and function properly after being localized. 
</dd></dl>
<dl><dt>{{template.Id("L12y")}}
</dt><dd>Abbreviation for "localizability" ("L" + 12 letters + "y"; upper case L is used to distinguish it from the numeral 1 (one)). 
</dd></dl>
<dl><dt>{{template.Id("Locale")}}
</dt><dd>A set of conventions affected or determined by human language and customs, as defined within a particular geo-political region. These conventions include (but are not necessarily limited to) the written language, formats for dates, numbers and currency, sorting orders, etc. 
</dd></dl>
<dl><dt>{{template.Id("module")}}
</dt><dd>A packaging of a set of Components (ie) a DLL. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/docs/netlib/necko.html' .. template.Id("necko"))}}
</dt><dd>Mozilla's networking library. Responsible for parsing URLs, handling connections to webservers, handling transfer protocols and delivering a data stream to the parser. 
</dd></dl>
<dl><dt>{{template.Id("netlib")}}
</dt><dd>Networking Library. The current networking library is called {{template.Anch("necko")}}. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/newlayout/' .. template.Id("NGLayout"))}}
</dt><dd>Next Generation Layout Engine. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/projects/xpcom/nsCOMPtr.html&lt;code&gt;' .. template.Id("nsCOMPtr") .. '&lt;/code&gt;')}}
</dt><dd>nsCOMPtr is a smart-pointer. It is a template class that acts, syntactically, just like an ordinary pointer in C or C++, i.e., you can apply * or -&gt; to it to get to what it points at. nsCOMPtr is smart in that, unlike a raw COM interface pointer, nsCOMPtr manages AddRef, Release, and QueryInterface for you. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/docs/modunote.htm&lt;code&gt;' .. template.Id("nsISupports") .. '&lt;/code&gt;')}}
</dt><dd>The mother of all interfaces. All interfaces ultimately inherit from this. Provides refcounting. The IID and definition has been carefully choosen so as to be binary compatible with COM. 
</dd></dl>
<dl><dt>{{template.Id("object")}}
</dt><dd>An instance of a Component 
</dd></dl>
<dl><dt>{{template.Id("OCSP")}}
</dt><dd>Online Certificate Status Protocol. A PKIX protocol used for determining the current status of a digital certificate. For details, see <a class="external" href="ftp://ftp.isi.edu/in-notes/rfc2560.txt">OCSP</a>. 
</dd></dl>
<dl><dt>{{template.Id("PDT")}}
</dt><dd>The Product Delivery Team keeps track of bugs that most affect the usability of the browser. The idea is that after the PDT bugs are fixed, Mozilla will have reached dogfood. That is, it will be usable enough for developers and testers to use every day as their main browser and mail client even if it isn't perfect yet. Bugs are marked <span class="plain">[</span>{{template.Anch("Dogfood")}}<span class="plain">]</span> when someone believes that the bug keeps Mozilla from being usable as dogfood. The PDT team marks the bug <span class="plain">[PDT+]</span> if they agree and <span class="plain">[PDT-]</span> if not. 
</dd></dl>
<dl><dt>{{template.Id("PKIX")}}
</dt><dd>Public-Key Infrastructure (X.509). A working group of the Internet Engineering Task Force (IETF) that is developing Internet standards needed to support a PKI based on X.509 certificates. For more information, see <a class="external" href="http://www.ietf.org/html.charters/pkix-charter.html">PKIX Charter</a>.
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "PKCS_.235", "PKCS #5" ])}}
</dt><dd>Public-Key Cryptography Standard #5. The standard developed by RSA Laboratories that governs password-based cryptography, for example to encrypt private keys for storage. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "PKCS_.237", "PKCS #7" ])}}
</dt><dd>Public-Key Cryptography Standard #7. The standard developed by RSA Laboratories that governs the application of cryptography to data, for example digital signatures. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "PKCS_.2311", "PKCS #11" ])}}
</dt><dd>Public-Key Cryptography Standard #11. The standard developed by RSA Laboratories that governs communication with cryptographic tokens (such as smart cards). 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "PKCS_.2312", "PKCS #12" ])}}
</dt><dd>Public-Key Cryptography Standard #12. The PKCS standard developed by RSA Laboratories that governs the format used to store or transport private keys, certificates, and other secret material. 
</dd></dl>
<dl><dt>{{template.Id("porkjockey")}}
</dt><dd>The porkjockeys are a group of people taking time to fix major architectural issues that are the source of bugs and usability problems throughout the codebase. The name was coined at an architecture meeting one dark day, when someone asked when the beta would ship. The answer? When pigs fly. Thus began a hopefully-not-quixotic quest to launch pork. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "presentation_context", "presentation context" ])}}
</dt><dd>An object that provide a context for a presentation shell. It is a means for the presentation shell to get at external settings and data. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "presentation_shell", "presentation shell" ])}}
</dt><dd>Presentation shells are the controlling object during the presentation of a document. It owns the document, the frame hierarchy, stylesheets and the presentation context. It also controls and initiates the reflow of the document. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "private_key", "private key" ])}}
</dt><dd>One of a pair of keys used in {{template.Anch("public-key cryptography")}}. The private key is kept secret and is used to decrypt data encrypted with the corresponding {{template.Anch("public key")}}.
</dd></dl>
<dl><dt>{{template.Id("ProgID")}}
</dt><dd>A String name for a Component. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "public_key", "public key" ])}}
</dt><dd>One of a pair of keys used in {{template.Anch("public-key cryptography")}}. The public key is distributed freely and published as part of a certificate. It is typically used to encrypt data sent to the public key's owner, who then decrypts the data with the corresponding {{template.Anch("private key")}}. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "public-key_cryptography", "public-key cryptography" ])}}
</dt><dd>A set of well-established techniques and standards that allow an entity to verify its identity electronically or to sign and encrypt electronic data. Two keys are involved: a public key and a private key. A public key is published as part of a certificate, which associates that key with a particular identity. The corresponding private key is kept secret. Data encrypted with the public key can be decrypted only with the private key. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "public-key_infrastructure_.28PKI.29", "public-key infrastructure (PKI)" ])}}
</dt><dd>The standards and services that facilitate the use of {{template.Anch("public-key cryptography")}} and X.509 v3 certificates in a networked environment. 
</dd></dl>
<dl><dt>{{template.Id("raptor")}}
</dt><dd>Former code-name for {{template.Anch("NGLayout")}}. We were asked to stop using it in public due to trademark problems. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/rdf/doc/' .. template.Id("RDF"))}}
</dt><dd>Resource Description Framework 
</dd></dl>
<dl><dt>{{template.Id("reflow")}}
</dt><dd>The act of laying out the content tree and creating/updating the corresponding frame hierarchy is called reflowing. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "reflow_mapped", "reflow mapped" ])}}
</dt><dd>Reflowing content that already has a frame. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "reflow_unmapped", "reflow unmapped" ])}}
</dt><dd>Reflowing content that doesn't yet have a frame. 
</dd></dl>
<dl><dt>{{template.Id("registry")}}
</dt><dd>A hierarchical attribute-value pair storage. 
</dd></dl>
<dl><dt>{{template.Id("RFE")}}
</dt><dd>This was a keyword used to mark a bug as a request for enhancement. It has been replaced with the "enhancement" severity setting in Bugzilla. 
</dd></dl>
<dl><dt>{{template.Id("service")}}
</dt><dd>A component that is used as a singleton. That means there exist only one instantiation of the component, and all request for it returns the same object. 
</dd></dl>
<dl><dt>{{template.Id("ServiceManager")}}
</dt><dd>A singleton manager. Holds and manages singleton references to objects for application. Going to be merged with the ComponentManager. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "S.2FMIME", "S/MIME" ])}}
</dt><dd>Secure/Multipurpose Internet Mail Extensions. A message specification (based on the popular Internet MIME standard) that provides a consistent way to send and receive signed and encrypted MIME data. For complete specifications, see <a class="external" href="http://www.ietf.org/rfc/rfc2311.txt">S/MIME version 2</a> and <a class="external" href="http://www.ietf.org/rfc/rfc2633.txt">S/MIME version 3</a>.
</dd></dl>
<dl><dt>{{template.Id("SSL")}}
</dt><dd>Secure Sockets Layer. A protocol that allows mutual authentication between a client and server and the establishment of an authenticated and encrypted connection. SSL runs above TCP/IP and below HTTP, LDAP, IMAP, NNTP, and other high-level network protocols. For complete SSL specifications, see <a class="external" href="http://www.mozilla.org/projects/security/pki/nss/ssl/draft302.txt">SSL v3</a> and <a class="external" href="http://www.mozilla.org/projects/security/pki/nss/ssl/draft02.html">SSL v2</a>. 
</dd></dl>
<dl><dt>{{wiki.template('Named-id', [ "subject_name", "subject name" ])}}
</dt><dd>A distinguished name (DN) that uniquely describes the subject of a {{template.Anch("certificate")}}.
</dd></dl>
<dl><dt>{{template.Id("talkback")}}
</dt><dd>This is a crash data capturing program that Mozilla uses so that crashes can more efficiently be fixed. 
</dd></dl>
<dl><dt>{{template.Id("TLS")}}
</dt><dd>Transport Layer Security. A protocol from the IETF based on {{template.Anch("SSL")}}. It will eventually supersede SSL while remaining backward-compatible with SSL implementations. For more information, see The <a class="external" href="http://www.ietf.org/rfc/rfc2246.txt">TLS Protocol</a>.
</dd></dl>
<dl><dt>{{template.Id("tracking")}}
</dt><dd>A tracking bug many related bugs to be monitored from a single bug. They should have the meta keyword and/or be placed in the Tracking component. 
</dd></dl>
<dl><dt>{{template.Id("triage")}}
</dt><dd>This term is derived from how doctors triage patients into different priorities. Mozilla applies it to the bug quality assurance process. QA volunteers triage bugs into appropriate priorities and severities. 
</dd></dl>
<dl><dt>{{template.Id("trunk")}}
</dt><dd>This is where the primary Mozilla development occurs. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/scriptable/typelib_file.html' .. template.Id("typelib"))}}
</dt><dd>Storage for type information about interfaces. Interfaces expressed in IDL have their type information maintained in Typelib automatically. 
</dd></dl>
<dl><dt>{{template.Id("UI")}}
</dt><dd>User Interface 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/projects/venkman/' .. template.Id("Venkman"))}}
</dt><dd>Javascript Debugger 
</dd></dl>
<dl><dt>{{template.Id("webshell")}}
</dt><dd>A container that knows how to load and render web pages. Frameset pages has a root webshell and one webshell per frame. 
</dd></dl>
<dl><dt>{{template.Id("widget")}}
</dt><dd>Primitive user interface part (button, menu, radiobutton, etc). There are two kinds of widgets: Native and gfx. Native widgets are implemented differently for each platform, but gfx widgets are implemented using gfx and is thus the same for all platforms. 
</dd></dl>
<p>{{template.Anch("X.509")}}
</p>
<dl><dt>{{template.Id("X.509")}}
</dt><dd>A standard defined by the <a class="external" href="http://www.itu.int/">International Telecommunication Union (ITU)</a> that governs the format of {{template.Anch("certificates")}} used for authentication in {{template.Anch("public-key cryptography")}}. 
</dd></dl>
<dl><dt>{{template.Id("XIF")}}
</dt><dd>XML Interchange Format - used internally by NGLayout for all I/O to clipboard, etc. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/newlayout/xml/' .. template.Id("XML"))}}
</dt><dd>Extensible Markup Language - see the W3C's <a class="external" href="http://www.w3.org/XML">XML site</a> for more info. 
</dd></dl>
<dl><dt>{{template.Id("XP")}}
</dt><dd>Cross-Platform 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/projects/xpcom/' .. template.Id("XPCOM"))}}
</dt><dd>Cross Platform Component Object Model 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/scriptable/' .. template.Id("XPConnect"))}}
</dt><dd>Ability to call C++ implementations of interfaces expressed in IDL from javascript and vice versa. 
</dd></dl>
<dl><dt>{{template.Id("XPFE")}}
</dt><dd>The cross-platform front end. The part of Mozilla that implements the user interface of mozilla. Everything that makes a browser a browser except the rendering of pages is considered xpfe (bookmarks, toolbars, menus etc). 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/scriptable/xpidl/idl-authors-guide/index.html' .. template.Id("XPIDL"))}}
</dt><dd>Cross Platform Interface Definition Language. A language for expressing interfaces. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/scriptable/xpidl/index.html' .. template.Id("xpidl"))}}
</dt><dd>A compiler for XPIDL. xpidl generates C++ interfaces, .xpt files describing interfaces at runtime for XPConnect, and Java interface files. 
</dd></dl>
<dl><dt>{{mediawiki.external('http://www.mozilla.org/xpfe/xptoolkit/xulintro.html' .. template.Id("XUL"))}}
</dt><dd>XML-based User Interface Language. XUL (pronounced zuul) is the user interface description language used for creating user interfaces with Mozilla's Cross Platform Front End. 
</dd></dl>
<p>Feel free to add new items to this file and make corrections. If you don't have access to the tree, send your suggestions to webmaster@mozilla.org.
</p>
Revert to this revision