Status of this document
This document is to be considered of historical interest only. As of Gecko 2.0 (Firefox 4), all interfaces are subject to change at all times, and there is no longer a concept of a "frozen interface".
Interfaces and XPCOM Components: An overview
XPCOM Components are exposed to the world by means of interfaces.
As Mozilla evolves, some interfaces (its IDL) are changed. However this procedure has some side effects:
- You must change the implementation of the component in order to comply with changes in the interfaces.
- Clients using components must change accordingly
This might not seem to be a huge problem, but as developers make new extensions (or other contributions) they must rely in the stability of the interfaces they are using in their works. So we need a mechanism to provide such a confidence.
The Mozilla team has provided such a mechanism by declaring an interface that is not going to be changed anymore as frozen. This means that everybody can trust that a frozen interface will not be changed, so they can use it as they please: both to implement a component providing such functionality or using a component through that interface.
Non-frozen (sometimes called unfrozen) interfaces are likely to be changed and developers using them in any way must watch for changes in order to adapt their works. Hopefully, non-frozen interfaces can go frozen without changes.
Mozilla keeps track of the current list of interfaces and their status.