Interface Freeze Status
Author: Chak NangaThis document was started to mainly keep track of the list of interfaces as they're going thru' various phases[review->frozen etc]. It evolved into this current form based on Ricks Potts' interface dependency work and Doug Turner's list of XPCOM interfaces he wants to freeze and Adam Lock's initial list.
While it does not attempt to list the status of all the Mozilla interfaces, it does list all of the currently frozen interfaces and the status/issues associated with some key interfaces w.r.t Mozilla embedding.
All the interfaces/components/services which are marked as FROZEN below follow the interface freezing guidelines outlined here . If you are thinking of marking an interface as FROZEN it must follow those guidelines in addition to the usual API review process.
Interface Name | Owner | Comments/Issue(s) | Current Status |
---|---|---|---|
XPCOM Related | dougt | All XPCOM interfaces to be reviewed by dougt | |
Core XPCOM | |||
nsISupports | 98281 | FROZEN | |
nsIFactory | 99144 | FROZEN | |
nsIComponentManager |
Needed to create an instance of the WebBrowser 98553 needs to be fixed
|
FROZEN | |
nsIServiceManager |
Needed to access various services such as nsIMemory etc. 99147 needs to be fixed Currently a C++ class. May need to be in IDL.
|
FROZEN | |
nsIMemory |
99151
|
FROZEN | |
nsIShutdownListener | Remove this interface 99152 ) | DONE | |
nsIModule | 99154 | FROZEN | |
nsIClassInfo | 99156 , 99158 | FROZEN | |
nsIInterfaceRequestor |
|
FROZEN | |
nsISimpleEnumerator | FROZEN | ||
nsIWeakReference |
|
FROZEN | |
XPCOM - File Location ( 99160 ) | |||
nsIFile |
|
||
nsILocalFile |
|
||
nsIProperties | FROZEN | ||
nsIDirectoryService |
|
FROZEN | |
nsIDirectoryServiceProvider |
|
FROZEN | |
XPCOM - DS | |||
nsISimpleEnumerator | Needs to be broken out into its own IDL file (currently it lives in nsIEnumerator.idl) | FROZEN | |
nsIObserver | ( 99163 ) [ccarlen]:The topics should not be Unicode strings. They should be c-strings or atoms |
FROZEN | |
XPCOM - Input/Output | |||
nsIOutputStream | |||
nsIInputStream |
|
||
XPCOM - Structs | |||
nsID | 99166 | FROZEN | |
nsIID | 99166 | FROZEN | |
APIs/Other Interfaces | |||
nsIProfile | FROZEN | ||
nsISelection | FROZEN | ||
nsIGlobalHistory | FROZEN | ||
nsIHistoryEntry |
radha
|
100993
|
FROZEN |
nsISHistory |
radha
|
100993
|
FROZEN |
NS_InitEmbedding() |
adamlock
|
99181
|
FROZEN |
NS_TermEmbedding() |
adamlock
|
99181 | FROZEN |
nsIWebBrowser |
adamlock
|
99181
|
FROZEN |
nsIWebProgress |
rpotts
|
99639
|
|
nsIWebProgressListener |
rpotts
|
99639
|
|
nsIContextMenuListener |
adamlock
|
99181 To be reviewed by owner |
FROZEN |
nsITooltipListener & nsITooltipTextProvider |
adamlock
|
99181 | FROZEN |
nsIEmbeddingSiteWindow |
adamlock
|
99181
|
FROZEN |
nsIWebBrowserSetup |
adamlock
|
99181 Documentation for setProperty needs clarification on what happens for unknown options |
FROZEN |
nsIWebBrowserChrome |
danm
|
99617
|
|
nsIWebBrowserPersist |
adamlock
|
99642 Being rewritten |
|
nsIPrefService |
bnesse
|
99611 Real close to freezing. May require some changes due to a couple of recent bugs. |
FROZEN |
nsIPrefBranch |
bnesse
|
99611 Real close to freezing. May require some changes due to a couple of recent bugs. |
FROZEN |
nsIWebBrowserFind |
ccarlen
|
99613 Not reviewed, frame issues sorted out? |
|
nsIPromptService |
ccarlen
|
99615 Need to determine if we need a flag to the alert call to specify whether the alert() is for warning vs. error |
|
nsIWindowWatcher |
danm
|
99618 This one's ready to freeze. There was some question of adding an ability to get z-level enumerators, but danm's arguing that's inappropriate. |
|
nsIWebBrowserPrint |
dcone
|
99619 nsIPrint* interfaces need to be reviewed |
|
nsIFontPackageService |
ftang/
yokoyama |
99621 We do not have any embedding samples using this. So, i'm not sure whether or not these are ready to go |
|
nsIFontPackageHandler |
ftang/
yokoyama |
99621 We do not have any embedding samples using this. So, i'm not sure whether or not these are ready to go |
|
nsIHelperAppLauncherDialog |
law
|
99622 To be reviewed by owner |
|
nsIClipboardCommands |
pinkerton
|
99623 To be reviewed by owner |
FROZEN |
nsISHistoryListener |
radha
|
99624 Requires : nsIURI |
FROZEN |
nsIWebNavigation |
rpotts
|
99625
|
|
nsIWebBrowserFocus |
saari
|
99626 Focus issues in embedding samples may necessitate changes to this interface |
|
nsIURIContentListener |
99627
|
||
DOM APIs | |||
Core DOM Interfaces: |
jst/chak
|
110795 |
FROZEN |
DOM Event Interfaces:
nsIDOMDocumentEvent |
joki/chak
|
110798 | FROZEN |
Networking APIs | |||
nsIProtocolHandler |
|
||
nsIChannel | |||
nsIStreamListener |
|
||
nsIRequestObserver |
|
||
nsIURI |
|
||
nsIRequest |
|
||
nsILoadGroup |
|
||
Strings | |||
nsAString |
scc
|
||
nsAReadableString |
scc
|
|
|
nsAWritableString | scc |
|
|
APIs embedding clients are using ...
Interface | Contacts (for review meeting) | Module Owner | Bug(s) | Comments |
---|---|---|---|---|
nsIBaseWindow | Dan Matejka, Adam Lock, Rick Potts | Rod Spears | ||
nsIFilePicker | Rod Spears | |||
nsIAppShell | Rod Spears | |||
nsIWidget | Rod Spears | |||
nsIEventSink | Rod Spears | |||
nsIPrintSettings | Rod Spears | Kevin McCluskey | ||
nsICommandManager | Mike Judge | Adam Lock | ||
nsICommandParams | Mike Judge | Adam Lock | ||
nsIEmbeddingSiteWindow2 | Adam Lock | |||
nsIProgressDialog | Bill Law, Blake Ross | Adam Lock | ||
nsIPromptService | Conrad Carlen | Adam Lock | ||
nsIWebBrowserFocus | Chris Saari | Adam Lock | ||
nsIWebBrowserChromeFocus | Adam Lock | |||
nsIWebBrowserPersist | Adam Lock | |||
nsIWebNavigation | Rick Potts | 99625 | ||
nsIDocShell | May be used by embedding customers, but, it exposes too much info so we need to extract what they're using and put that into a frozen iface or set of ifaces | |||
nsIDocShellTreeItem | ||||
nsIScrollable | ||||
nsIContentViewer | ||||
nsIMarkupDocumentViewer | ||||
nsIDocumentLoaderFactory | ||||
nsIContent (nsIContent.h) | Johnny Stenback | jst> there's no way we can freeze those | ||
nsIDocument (nsIDocument.h) | Johnny Stenback | jst> there's no way we can freeze those | ||
nsIDocumentEncoder (nsIDocumentEncoder.h) | Johnny Stenback | |||
nsIDOMCSSStyleSheet | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMCSSStyleDeclaration | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMDocumentFragment | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMDocumentRange | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMDocumentStyle | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMElement | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMEventReceiver | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMHTMLAppletElement | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLAreaElement | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLBaseElement | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLBodyElement | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLCollection | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLDocument | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLElement | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLFrameElement | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLIFrameElement | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLImageElement | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMHTMLInputElement | Peter Van der Beken | Johnny Stenback | 161166 | jst> contains an error that needs to be fixed before we can freeze it (the size attribute is of the wrong type) |
nsIDOMMouseEvent | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMMouseListener (nsIDOMMouseListener.h) | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMRange | Peter Van der Beken | Johnny Stenback | 161166 | jst> should be freezable as is, but that needs to be verified |
nsIDOMStyleSheet | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMStyleSheetList | Peter Van der Beken | Johnny Stenback | jst> should be freezable as is, but that needs to be verified | |
nsIDOMWindowInternal | Peter Van der Beken | Johnny Stenback | valeski> May be used by embedding customers, but, it exposes too
much info so we need to extract what they're using and put that into a
frozen iface or set of ifaces jst> should be freezable as is, but that needs to be verified |
|
nsIDOMNSDocument | Peter Van der Beken | Johnny Stenback | jst> need some thought | |
nsIDOMNSHTMLInputElement | Peter Van der Beken | Johnny Stenback | jst> need some thought | |
nsIDOMNSHTMLTextAreaElement | Peter Van der Beken | Johnny Stenback | jst> need some thought | |
nsIEventStateManager (nsIEventStateManager.h) | Johnny Stenback | jst> I'm doubtful about nsIEventStateManager too | ||
nsIScriptContext (nsIScriptContext.h) | Johnny Stenback | jst> not to mention the nsIScript* interfaces (doubtful) | ||
nsIScriptGlobalObject (nsIScriptGlobalObject.h) | Johnny Stenback | jst> not to mention the nsIScript* interfaces (doubtful) | ||
nsIScriptGlobalObjectOwner | Johnny Stenback | jst> not to mention the nsIScript* interfaces (doubtful) | ||
nsIOverrideDropSite (nsIDragDropOverride) | Mike Pinkerton | (Editor?) Johnny Stenback | ||
nsISelectionController | Mike Judge | (Editor?) Johnny Stenback | ||
nsISelectionDisplay | Mike Judge | (Editor?) Johnny Stenback | ||
nsIFrameSelection | Mike Judge | Chris Karnaze | mjudge> should NOT be frozen. Any API that contains these interfaces should also not be frozen | |
nsIImageFrame (nsIIMageFrame.h) | Chris Karnaze | mjudge> should NOT be frozen. Any API that contains these interfaces should also not be frozen | ||
nsIStyleContext (nsIStyleContext.h) | Chris Karnaze | |||
nsIPresContext (nsIPresContext.h) | Chris Karnaze | mjudge> should NOT be frozen. Any API that contains these interfaces should also not be frozen | ||
nsIPresShell (nsIPresShell.h) | Chris Karnaze | valeski> May be used by embedding customers, but, it exposes too
much info so we need to extract what they're using and put that into a
frozen iface or set of ifaces mjudge> should NOT be frozen. Any API that contains these interfaces should also not be frozen |
||
nsIAtom | Doug Turner | 162114 | dougt> may not make 1.2 | |
nsIAtomService | 162114 | |||
nsICategoryManager | 154047 | Here since it is also included in META bug 157137 | ||
nsIEventQueue | Doug Turner | dougt> I do not think that we want to expose our threading
model. Can use the nsIScriptableTimer instead. |
||
nsIEventQueueService | Doug Turner | dougt> I do not think that we want to expose our threading
model. Can use the nsIScriptableTimer instead. |
||
nsIProxyObjectManager | Doug Turner | dougt> I do not think that we want to expose our threading
model. Can use the nsIScriptableTimer instead. |
||
nsISupportsArray | Doug Turner | 162115 | jjmata> Don't freeze! Steer people away from it & (and to a
new intfc.?) See bug. dougt> may not make 1.2 |
|
nsIGenericFactory (nsIGenericFactory.h) | Doug Turner | dougt> Frozen via glue library | ||
nsIProperties | Doug Turner | 162114 | jjmata> Frozen already? | |
nsITimerCallback (nsITimerCallback.h) | Doug Turner | 157136 | dougt> Use nsIScriptableTimer instead | |
nsISupportsWString | 157624 | alecf> nsISupportsWString has become nsISupportsString, and nsISupportsString became nsISupportsCString | ||
nsIMIMEInfo | Darin Fisher | 162116 | jjmata> See bug. Negative feelings towards freezing. darin> not mature, needs significant string-fu revision before freezing (what about nsIMIMEService?) |
|
nsIHttpChannel | Darin Fisher | 157133 | darin> mature, nearly ready to be frozen | |
nsIFileChannel | Darin Fisher | 157135 | darin> somewhat mature, probably needs slight modifications before being frozen | |
nsIHttpProtocolHandler | Darin Fisher | 157133? | darin> mature, nearly ready to be frozen | |
nsICacheService | Darin Fisher, Doug Turner, Gordon Sheridan | 162116 | jjmata> See bug. Would have to freeze all Cache intfcs. darin> not mature, would require freezing ALL cache interfaces (i.e., nsICacheEntryDescriptor, nsICacheSession, nsICacheVisitor, nsICacheEntryInfo) |
|
nsIIOService | Darin Fisher, Doug Turner, Gordon Sheridan | 157131 | darin> mature, nearly ready to be frozen | |
nsICookieService | Darin Fisher, Doug Turner, Gordon Sheridan | 162116 | darin> somewhat mature, probably needs slight modifications before being frozen | |
nsIPasswordManager | Darin Fisher, Doug Turner, Gordon Sheridan | darin> somewhat mature, probably needs slight modifications before being frozen | ||
nsIDownloadObserver (nsIDownloader) | Darin Fisher, Doug Turner, Gordon Sheridan | darin> somewhat mature, probably needs slight modifications before being frozen | ||
nsITransport | Darin Fisher, Doug Turner, Gordon Sheridan | darin> not mature, should be avoided | ||
nsIProxy | 152663 | Here since it is also included in META bug 157137 | ||
nsIProxiedProtocolHandler | 152663 | Here since it is also included in META bug 157137 | ||
nsIWalletService | Steve Morse | |||
nsIContentHandler | Scott MacGregor | |||
nsIWebProgressListener | Rick Potts | Scott MacGregor | ||
nsIExternalHelperAppService | Scott MacGregor | |||
nsIXPIListener (nsIXPINotifier) | Dan Veditz | |||
nsIXPIDialogService | Dan Veditz | |||
nsIXPIProgressDialog | Dan Veditz | |||
nsIPref | Brian Nesse | Deprecated? Why freeze if we want to move people off of it? | ||
nsIPluginManager | Andrew Volkov | |||
nsPIPluginHost | Andrew Volkov | nsP* indicates that an interface is explicity Private (sort of like "Internal"... probably synonomous actually. "P" is preferred). So, anything w/ "nsP" or "*Internal*" in it, shouldn't be frozen. we need to resolve how to get folks off those interfaces | ||
nsICharsetAlias (nsICharsetAlias.h) | Yung-Fong Tang | |||
nsIDocCharset | Yung-Fong Tang | |||
nsIFontPackageService | Yung-Fong Tang | |||
nsIFontList | ||||
nsIImage (nsIImage.h) | ||||
gfxIImageFrame | ||||
imgIContainer | pavlov@netscape.com | |||
imgIContainerObserver | pavlov@netscape.com | |||
imgIRequest | pavlov@netscape.com | |||
nsIPermissionManager | ||||
nsISecurityManagerComponent | ||||
nsICrlEntry (nsIX509CertDB) | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsIX509Cert | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsIX509CertDB | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsIX509CertValidity (nsIX509Cert) | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsIASN1Object (nsIX509Cert.idl) | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsIASN1Sequence (nsIX509Cert.idl) | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsIASN1Tree | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsINSSDialogs | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsICertificateDialogs (nsINSSDialogs) | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsISecurityWarningDialogs | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsIBadCertListener | David Drinan, Javi Delgadillo, Stephane Saux | Kai Engert | ||
nsIProfileInternal | Conrad Carlen | |||
?nsIXULChromeRegistry | ||||
nsIChromeRegistry | Chris Waterson | |||
nsIEditor | jfrancis, glazman, kin | Akkana Peck | Going away | |
nsIEditingSession | sfraser | Akkana Peck | ||
nsIHTMLEditor | jfrancis, glazman, kin | Akkana Peck | ||
nsIPlaintextEditor | jfrancis, glazman, kin | Akkana Peck | ||
nsISpellChecker (nsISpellChecker.h) | kin | Akkana Peck | ||
nsITextServicesDocument (nsITextServicesDocument.h) | kin | Akkana Peck | ||
nsVoidArray | dougt> These are concrete classes which should not be use by any embedders | |||
nsStringArray | dougt> These are concrete classes which should not be use by any embedders | |||
nsString | dougt> Frozen via glue library | |||
nsAutoString | dougt> Frozen via glue library | |||
nsCOMPtr | dougt> Frozen via glue library | |||
nsRepeater |