Interfaces:About Frozen Interfaces
From MDC
Contents |
Status of this document
This is just a starter document and should not be considered complete.
Interfaces and XPCOM Components: An overview
Mozilla's applications are written as a set of XPCOM Components that provide functionality to the application, and a bunch of XUL, DTD, and JavaScript that provide the User Interface (UI).
XPCOM Components are exposed to the world by means of interfaces.
Interfaces describe portions of the functionality provided by XPCOM Components, and are written using an Interface Description Language (IDL).
Frozen 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 seems not 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.
See also
http://www.mozilla.org/projects/embedding/EmbedInterfaceFreeze.html
Categories: Interfaces:Frozen