Last night I landed changes to nsISupports and some base headers.  It is 
our first big step in freezing our core xpcom API.  I would like to 
thanks Rick Potts, Jud Valeski, and Mike Shaver for all of their help.

The changes were primarily shuffling things around and well as some 
major clean up.  Here is an overview.

Cleaned up the top level xpcom header and interface files:
- nscore.h is now conceptually the top most header file.
- nsCom.h should be removed eventually.  It just points back to nscore.
- nsrootidl.idl defines most PR* times for xpconnect'ed languages.  For 
C, it points back to nscore.h and also includes prtime.h cause PRTime is 
defined in the idl.
- nsError.h, again points to nscore.h and also includes error handling 
defines.
- nsIID.h is no more.  The CID define is now in nsID.h

We added four new headers:
- nsISupportsBase.h. This is the base definition of nsISupports for 
C/C++.  This includes only what is require to support this interface and 
nscore.h.  All clients that use xpcom will probably be using this file.
- nsISupportsImpl.h.  If you are implementing a nsISupports object, this 
header file has some useful macros.
- nsISupportsObsolete.h. This file includes nsISupports related things 
which should not be used anymore.  If your code is using them, it is our 
desire to see you stop.  At some point, this file will be removed.
- nsCOMObsolete.h. Similar to nsISupportsObsolete.h, this file includes 
nsCOM related things which are obsolete and should be deprecated.  Most 
of this file is related to code module defines which should have been 
placed at the module level.

We introduced a new build define MOZILLA_STRICT_API.  This define can be 
enabled when you want to build against XPCOM without pulling in unfrozen 
APIs.  For example, the nsISupports.idl wraps its include of 
nsISupportsUtils.h with this flag.  If you are building a nsISupports 
component/plugin you will implicitly including nsISupports.h.  In this 
case, you should set this flag to prevent yourself from including API's 
which are still subject to change.

Note that nsISupports.idl and nsrootidl.idl are both frozen.  This 
should not be a big shock.

XPCom API Tracking Tree:
http://bugzilla.mozilla.org/showdependencytree.cgi?id=98278

doug turner
[EMAIL PROTECTED]


Reply via email to