You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.



key

last modified: $Date: 2003/04/22 16:34:52 $

An interface will change out from underneath you if it is not marked "completed." You've been warned.

The tracking bugs for the changes proposed in this document are 70229 and 157137.


nsIAppShell

public: n
status:
implemented by:
owner(s): danm@netscape.com
Notes:

[09/16/02]
  • Need to figure out why the embeddor had the need to use this private internal interface. Currently being instanciated, left orphaned just to call Spinup() on it.

nsIBaseWindow

public: y
status: in-flux
implemented by:
owner(s): alock@netscape.com
Notes:

[09/16/02]
  • We believe that nsIEmbeddignSiteWindow and nsIEmbeddignSiteWindow2 were created for embeddors to implement/use so that nsIBaseWindow didn't have to be exposed, but we need to follow up with Adam on this.
[09/19/02]
  • While it is true that embeddors should be creating the window by using the nsIEmbeddingSiteWindow interfaces, we still require that they "talk" to the window via nsIBaseWindow since we're not 
  • Adam will investigate what the work needed to move the remaining methods that embeddors care about in nsIBaseWindow to a new interface so that we don't have to keep it public.

nsIWebBrowser

public: y
status: completed
implemented by: Gecko
owner(s):
Notes:
  • All listeners should be registered through the addWebBrowserListener method.We should look for cases in other interfaces that have listener registration methods.
  • SDK documentation should list all listener interfaces that canbe implementedby the embedder.
  • [done] topLevelWindow renamed to containerWindow
[2/20/01]
  • listeners should all be consoldated into BrowserListener attributeandfan out.
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIEmbeddingSiteWindow2

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s):
Notes:

[09/16/02]
  • Need to figure out what other methods might be necessary here before freezing a one-method interface
  • For example: when the assumption that the browser window is not the top level window or not the only web browser inside the top-level window (could have multiple browsers, some chromed, some non-chromed) the APIs in nsIEmbeddingSiteWindow and nsIEmbeddingSiteWindow2 might have to change.
[09/19/02]
  • Nothing comes up that we can think of.  Will freeze.

nsIWebBrowserChrome

public: y
status: in-flux
implemented by: embeddor
owner(s):
Notes:
  • [done] setJSStatus, setJSDefaultStatus, setOverlink should becollapsedinto asingle method that takes a nsINotification.
    • consolodated into setStatus(), but it doesn't take nsINotification. Here'sthe current signature.
      const unsigned long STATUS_SCRIPT         = 0x00000001;
      const unsigned long STATUS_SCRIPT_DEFAULT = 0x00000002;
      const unsigned long STATUS_LINK           = 0x00000003;
       
      /*
          Called when the status text in the chrome needs to be updated.
          The statusType indicates what is setting the text, the text is nsnull
          when there is no longer any status
      */
        void setStatus(in unsigned long statusType, in wstring status);
       
  • [done] getNewBrowser should be renamed to createWindow
    • renamed to createBrowserWindow().
  • [done]Should new window be visible? And what size?
    • it's visible, and size is an arg to the createBRowserWindow()method.
  • [done]constant names should be Java-style  - all caps withunderscoresbetweenwords
  • need to reconcile with nsIDocShellTreeOwner
    • nsIDocShellTreeItem and nsIDocShellTreeNode will not be publicinterfaces
    • Option 1
      • findNamedBrowserItem() will now return an nsISupports/nsIInterfaceRequestor (so that it is opaque to the embedding app)
      • findNamedBrowserItem() will be added to nsIWebBrowser alsoreturningansISupports/nsIInterfaceRequestor
      • SDK documentation says that nsIWebBrowserChrome::findNamedBrowserItem() should enumerate it's nsIWebBrowser list (except the one through whichthe call came in) and call nsIWebBrowser::findNamedBrowserItem() on each.
    • Option 2
      • embedding application provides an interface that allows usto enumerateallof its nsIWebBrowsers.
    • Strong preference for Option 1
  • ShowAsModal() stays for spinning an event loop for modal dialogs. Needs better documentation to explain what's necessary in the implementation and when exactlythe window in question is made visible (our understanding isthat it's made visibleusingShowAsModal in the modal case and usingnsIBaseWindow::SetVisibility inthe non-modal case).
  • [done]chromeMask renamed to chromeFlags and continues to be settable (changingchromeon the fly)
  • [done]Need to add exitModalLoop() to balance out showModal().Breakingoutofthe modal event loop shouldn't necessarily be tied to window destruction andshouldbe something that we can programmtically invoke.

[1/4/01]

  • [done] Option 3. nsIWebBrowserChrome may not need FindNamedBrowserItem().The windowmediator iface would find the root which could be walked fromthere.
[2/5/01]
  • [done] need ability to kill the modal event loop if ShowAsModal() is called.
    • This is done via nsIWebBrowserChrome::exitModalEventLoop().
  • remove SizeBrowserTo() (adamlock@netscape.com).
  • [done] FindNamedBrowserItem() can be removed as it's believed we can handle this internally (danm@netscape.com)
  • (69918) get rid of persistence methods (danm@netscape.com)
  • (70481) isModal, isWindowModal, redundancy  


nsIBaseWindow

public: n
status: in-flux
implemented by: Gecko
owner(s): adamlock@netscape.com
Notes:
  • [done] needs to be split into two interfaces (46852):
  • The methods implemented by the embedding application shouldstayin nsIBaseWindow-destroy(), setPosition(), getPosition(), setSize(),getSize(),setPositionAndSize(),getPositionAndSize(),visibility, setFocus(),title,repaint()
  • The down call methods used by the embedding application couldbemovedintoa new public interface - initWindow(), create(), destroy(), setSize(),repaint(), setFocus(). Both nsIBaseWindow and the new interface will beimplementedby nsWebBrowser.
[2/5/01]                      
  • embeddor still uses this to set position and size.
  • embeddor no longer needs to impl this.
  • the up calls are now in nsIWebBrowserSiteWindow.
  • nsIBaseWin nsIWebBrowserChromedow still exposes nsIWidget.
[2/20/01]
  • size parameters, such as -1 for size to content, should be documented in iface file.
  • see nsIWebBrowserWindow belowfor more info


nsIDocShellTreeOwner

public: n
status: in-flux
implemented by: Gecko
owner(s):
Notes:
  • Will no longer be a public interface
  • Will be implemented by nsWebBrowser. In the embedding case, somemethodswillbe forwarded up to the nsIWebBrowserChrome implementation


nsIDocShell

public: n
status: in-flux
implemented by: Gecko
owner(s):
Notes:
  • We're considering not exposing nsIDocShell in the first pass
    • Move up (copy) anything we need from here for the top-level content doc to nsIWebNavigation,nsIWebBrowserSetup, etc.
    • Remove the docshell attribute from nsIWebBrowser. In a pinchit canbeobtainedby QIing to nsIDocShellTreeOwner
    • Add a getter to nsIWebBrowser for nsIDOMWindow or nsIDOMDocumentforthetop-level content.
  • loadURI doesn't need to be noscript. An equivalent already existson WebNavigation
  • Can we get rid of presContext, presShell?
  • Move subset of document CharsetInfo up to nsIWebNavigation
  • allowPlugins to nsIWebBrowserSetup - maybe flags for general control of plugins,applets, etc. (really just a shortcut for prefs?)
  • May want to get rid of viewMode attribute and move purely toview-source: (implementedby Adam). The external interface should only beable to do view source byprependinga view-source: to the loaded URL.


nsIWebNavigation

public: y
status: in-flux
implemented by: Gecko
owner(s):
Notes:
  • nsIWebNavigation will be implemented by the browser component.Thisis theonly instance of nsIWebNavigation that will be exposed to theembeddingapp.
  • We don't want to expose nsISHistory, but we need to add an interface thatallows you to enumerate URLs that are in history - history count, current position and enumerator for URLs.
  • [done]Need to add a goto() method that takes a relative index.The indexcorresponds to entries in the nsISHistory replacement.
    • it's called gotoIndex()
  • Each entry in the nsISHistory replacement also indicates whetheritreflectsa new top-level URL or a change to a contained sub-frame. Thisallowssomeoneto implement a Goto menu item or a back-button context menuwith thesamebehavior as Nav.
  • Need something like nsIHistoryObserver with notifications for
    • something was added
    • we are about to go forward or back (with the option of cancelling the forwardorback)
    • we trimmed history
  • [done] We'll remove setDocument() from this interface. It willstayon nsIDocShellandnsIContentViewer for internal use.
  • We might want to expose nsIDOMWindow instead of nsIDOMDocument.
  • [done]loadURI should take an additional parameter that specifieswhethertheURIshould go into history.
  • [done]currentURI is just a short cut to get the current URL inhistory.Shouldbea nsIURI.
  • [done]reload flag names need to be Java-style. Consider renamingtomakethemmore intuitive. How is reloadBypassProxy different from reloadBypassProxyAndCache?
  • Need to distinguish between stop all loading and stop browser activity (animatedGIFsand JavaScript timeouts, etc.). Add bitfield flags to stop()- WEB_NAVIGATION_STOP_LOAD,WEB_NAVIGATION_STOP_DOCUMENTand WEB_NAVIGATION_STOP_ALL.
  • LoadURI()
    • Requirement for a way to (46870)
      • Get the post data from a form in the current document
      • Specify the post data as a parameter to LoadURI
  • LoadStream()
    • [done]Currently exists on nsIDocShell. Needs to move up tonsIWebNavigationforthe top-level content document.
    • Need to deal with linked data such as images, CSS, JS files.The suggestionisthat only a single (not multi-part) stream is expected.Anylinked datathatcan't be expressed as a URL for an existing protocolmustusethedata:protocol


nsIWebProgress

public: y
status: completed (really?  Not according to LXR!)
implemented by: Gecko
owner(s): rpotts@netscape.com
Notes:
  • [done]Get rid of progressStatusFlags, curSelfProgress, maxSelfProgress, curTotalProgress,maxTotalProgress (and all related flag constants). If you want this information, you have to be a listener.
  • Might want the implementation to also implement nsIRequest. The other option is toadd certain methods onto nsIWebProgress - isPending(), etc.
[09/10/02]
  • Questioned status of "completed" since it is not so according to LXR on the trunk.

nsIWebProgressListener

public: y
status: completed (really?  Not according to LXR!)
implemented by: embeddor
owner(s): rpotts@netscape.com
Notes:
  • [done]Need to split out aStateFlags for onStateChange into "who"and"what"parameters.
  • [done]constant names need to be Java style and need a commonprefix.
  • [done]Need a name attribute in nsIRequest.
  • Consider onStatusChange for error notification and get rid ofstatusparametertoonStateChange
  • Need a way to correlate a notification with a nsIWebBrowser instance. You should be able to do a GetInterface() on the nsIWebProgress passed into the notificationmethod to get a nsIWebBrowser.
  • [done] Rick to consider adding nsIDOMWindow as a parameter tothe notificationmethods.
  • Need to add a filterMask attribute that is queried on registrationand isusedto filter which notifications get to the listener.
  • OnSecurityStateChange()
    • [done]  We'll have a enum for the different security states(secure,non-secure, broken)
    • One notification happens at transition time. This one is cancellable -the notification method returns a PRBool.
    • Another happens when we're done loading (this is really forthe brokencase).This is not cancellable.
    • Dougt to figure details out here
[09/10/02]
  • Questioned status of "completed" since it is not so according to LXR on the trunk.

nsIScrollable

public: n
status:
implemented by: Gecko
owner(s):
Notes:
  • Don't want to expose this interface. Similar functionality available in nsIDOMWindow.


nsITextScroll

public: n
status:
implemented by: Gecko
owner(s):
Notes:
  • Don't want to expose this interface. Need to add similar methods to nsIDOMWindow

nsIAboutModule

public: y
status: freezing (1.2 target)
implemented by: embeddor
owner(s): ccarlen@netscape.com
Notes:

[09/12/02]
  • Cleanup interface IDL file, ready to freeze.

nsIPrompt

public: y
status: in-flux
implemented by: embeddor 
owner(s): ccarlen@netscape.com
Notes:
  • Is currently being implemented as a service in appshell/src.Thisiswrong!!nsIPrompt was meant to be an interface implemented by theembeddingappandmade available through nsIInterfaceRequestor::GetInterface().Current(internal)callers to the service are probably not creating modalwindows.Dougt isfilinga bug about this.
  • What's the deal with universalDialog?!! We don't want the embedding applicationtohave to implement this method. Existing users of this method shoulddo oneof the following:
    • Use one of the other methods in nsIPrompt (we may be able tomassagetheirsignaturesto acccomodate simple cases).
    • Switch over to using XUL dialogs for more complicated cases(we should make surethat GetInterface on the interface requestor that currently gets you a nsIPrompt also gets you a nsIDOMWindow).
  • Consider getting rid of select() as well.


[1/4/01] 

  • (46859) UniversalDialog needs to go away. More complex UI needs tobe builtusing XUL.
  • Maybe more complex UI is stuffed behind it's own UI interface (nsICookieManagerUIfor example); component specific UI interfaces.?
  • *Our* impl can just use XUL.
  • nsIPrompt should be massaged a bit to accommodate *most* of theUniversalDialogmethods.
[2/27/01]
  • when nsISingleSignOnPrompt is used internally (70380), we can factor nsIPromptto just contain dialog methods (70379); see nsIPromptAuth :
    • prompt*() would lose passwordRealm, and savePassword parameters,and have checkbox state added.
    • we'd need a new authentication interface that would be used internally at the callsites to provide passwordRealm, and savePassword into to theinternal singlesignon object.

nsIPromptService

public: y
status: freezing (1.2 target)
implemented by: embeddor
owner(s): ccarlen@netscape.com
Notes:

[09/16/02]
  • See bug 95649, need to take comments into account but put these actions into a new interface since the current one if pretty mature and widely used.
  • Need to document the inclusion of windows-style & (ampersand) for keyboard accelerators.
  • Get rid of IID since it is now automatically generated.

Editor

[09/09/02]

See nsICommandManager and nsICommandParams as well.

nsIEditingSession

public: y
status: freezing (1.4 target)
implemented by: Gecko
owner(s): sfraser@netscape.com, mjudge@netscape.com
Notes:

[09/09/02]
  • Need a new API on this interface (bug 132700 logged on this) for handling of subframes.
  • Split interface into two, so that init(...), setupEditorOnWindow(...) and tearDownEditorWindow(...) can be separate and private.
  • Need to add a way to make a window non-editable.
  • Cannot control what kind of editor is created (we pass no flags down to the editor code), like mail editing-type or HTML vs. plaintext.
  • Remove nsIEditingShell from includes.
  • Also need to figure out a way to handle the types of content that cannot be edited.
  • Remove nsIEditor as well, since the whole idea going forward is to have the CommandManager/CommandParams mechanism to access the editor functionality.
[01/30/03]
  • Have bug 168597 logged, progress?
  • Need to add a way to enumerate the editors inside an editing session.
  • Most of the work in the 9/9 comments above still need to be taken care of.

nsIEditor
 nsIHTMLEditor
 nsIPlaintextEditor

public: n
status:
implemented by: Gecko
owner(s): akkana@netscape.com
Notes:

[09/09/02]
  • These interfaces should remain private to be consistent with the nsIEditingSession/commands model.
  • Agreement with embeddor (Angelo Nunes on the call) that as soon as they move to the trunk they'll migrate off these interfaces with Gecko folks adding the necessary commands to support their needs.

 nsISpellChecker

public: n
status:
implemented by: Gecko
owner(s): kin@netscape.com
Notes:

[09/09/02]
  • Ran out of time.  The spell check APIs are nowhere ready to be made public/frozen, design work needs to happen first to come up with a workable embedding model.
[01/30/03]
  • Will be splitting this interface up into two (public ones)
  • New work started over at bug 180346, targetted at the earliest for 1.4alpha.

 nsITextServicesDocument

public: y
status: under_review
implemented by: Gecko
owner(s): kin@netscape.com
Notes:

[09/09/02]
  • Ran out of time.  The spell check APIs are nowhere ready to be made public/frozen, design work needs to happen first to come up with a workable embedding model.
[01/30/03]
  • To be renamed TextBlockIterator or similar.
  • Will become public since the work for making a public spell checking API requires it.
  • New work started over at bug 180346, targetted at the earliest for 1.4alpha.

nsISelectionDisplay

public: (y?)
status:
implemented by: Gecko
owner(s): mjudge@netscape.com
Notes:

[01/30/03]
  • License differences between this and nsISelectionController

nsISelectionController

public: (y?)
status:
implemented by: Gecko
owner(s): mjudge@netscape.com
Notes:

[01/30/03]
  • License differences between this and nsISelectionDisplay
  • Unnecessary forward declarations of SelectionType and SelectionRegion?
  • Do we have all flags that we believe will be necessary in the forseeable future?
  • Any advantage in using PRBool over boolean?
  • Get rid of CID?

 nsIStyleContext

public: n
status:
implemented by: Gecko
owner(s): dbaron@fas.harvard.edu
Notes:

[11/07/02]
  • Two alternatives:
    • The bad:
      • QI the global window and/or the document to an nsIDOMViewCSS and/or nsIDOMDocumentCSS, then get the computedStyle with the element.
      • The computedStyle on the content declaration.
    • The good:
      • Conrad checked some helper function code in to fix a bugscape bug.
      • nsIContextMenuInfo, getbacgroundimagecontainer/source does exactly what the client of this non-public API is trying to do.

 nsICSSLoader

public: n
status:
implemented by: Gecko
owner(s): dbaron@fas.harvard.edu
Notes:

[11/07/02]
  • Layout needs a user service where you can define a user stylesheet.
  • One common RFE is to be able to load a user-defined CSS off the network.
  • New interface would need to load/unload, register/unregister) CSS based on URI, 
  • nsIStyleSet would need to access some of the methods from this new interface, but those we would not want to make public, so we probably need a public and a private complement of the new interface that inherits from the public one.  That way nsIStyleSet can access the methods from the private signatures.
  • Need to support observers.
  • Major motivation is code cleanup, lighten up the chrome registry, get RFEs implemented.

DOM

[09/05/02]

General comments that apply to all DOM APIs:
  • Pull out nsIDOMWindowInternal, crypto interfaces from domstubs.idl
  • Comment the usage of DOMException.
  • Follow up on the freezing status of AString.
  • Go through the rest of domstubs.idl to make sure it is freezable, pull out what isn't needed/ready to be frozen.

nsIContent

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[09/05/02]
  • Some usages that we found of this API are:
    • Copying images to the clipboard
    • Saving images as wallpaper
    • Blocking of image download in mail until after text is displayed
    • Page info/image info dialogs
    • Document charset operations
  • Need to find alternate ways to access these types of functionality.

nsIDocument

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[09/05/02]

Usages of this API we went over in embeddors code (nsContextMenu.cpp):
  • GetAbsoluteLinkNode can be written using public nsIDOM*, GetPageURL and GetNodeURL they'll be able to get through a new interface (this is also seen inside nsChromeWindow.cpp, helpers.cpp, GBrowser.cpp)
  • IsContextInFrame can be implemented using standar public interfaces that are there today.
  • GetDOMWindowFromDocument, GetWebNavigationFromDocument, RefreshThe_Page_Frame needs to get a real implementation that gets window from document (which will get you window navigation to document through window) so that it doesn't need to be hacked by embeddors.
  • Get/SetDocumentCharset has to get public interfaces to avoid hacks.
  • InitFormOptions can be written with public DOM APIs.
  • CWebBrowserContainer::OnShowContextMenu can be written with public DOM APIs
More usage (nsObserver.cpp):
  • AddDomEventListener can use the nsIDOMDocument to get the nsIDOMEventTarget
  • CWebBrowserContainer::HandleEvent needs to get the URL from the DOMEvent, which they'll be able to do once we create a new interface that gets URL from DOM
  • CWebBrowserContainer::OnLocationChange will be able to use that same said URL. 

nsIDOMWindow

public: y
status: completed
implemented by: Gecko
owner(s):
Notes:
  • [done]This interface should be split into a public (embedding client visible) part anda private part. The properties/methods that go in the public part are:
    • GetDocument
    • GetParent
    • GetTop
    • GetScrollbars (in lieu of the scrolling interfaces that we decided not toexpose)
    • GetFrames
    • GetName/SetName
    • GetScrollX/GetScrollY
    • ScrollTo/ScrollBy
    • GetSelection
  • [done]Need to add ScrollByLines/ScrollByPage (similar to the methods defined innsITextScroll)

[2/20/01]                             
  • nsIMarkupDocumentViewer::zoom should be exposed through nsIDOMWindow. (aaronl@chorus.net)
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIDOMCSSStyleSheet

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.  Peter believes that it is so (spec open in front of him)
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMStyleSheet

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.  Peter believes that it is so (spec open in front of him)
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)
  • Freeze nsIDOMMediaList

nsIDOMMediaList

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMCSSRule

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMCSSRuleList

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMCSSStyleDeclaration

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)
  • Needs to freeze nsIDOMCSSValue

nsIDOMCSSValue

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMCSSPrimitiveValue

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)
  • Freeze nsIDOMCounter, nsIDOMRect, nsIDOMRGBColor

nsIDOMCSSValueList

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMDocumentRange

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)
  • Freeze nsIDOMRange

nsIDOMRange

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMDocumentStlye

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMEventReceiver

public: n
status:
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Document that it is not public and suggest alternative methods to access this functionality.

nsIDOMHTMLAppletElement

public: y
status: freezing (1.2 target may be missed)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Tracking the spec. As soon as the spec freezes this will too.

nsIDOMHTMLAreaElement
nsIDOMHTMLBaseElement
 nsIDOMHTMLBodyElement
 nsIDOMHTMLCollection
 nsIDOMHTMLDocument
 nsIDOMHTMLElement
 nsIDOMHTMLFrameElement
 nsIDOMHTMLIFrameElement
 nsIDOMHTMLImageElement

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMMouseEvent

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)
  • Freeze nsIDOMUIEvent, nsIDOMAbstractView

nsIDOMUIEvent

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMAbstractView

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Verify that it is according to spec.
  • Javadoc cleanup (point to the spec in the Javadoc, don't try to re-state here)

nsIDOMMouseListener

public: n
status:
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Use nsIDOMEventTarget instead.

nsIDOMWindowInternal

public: n
status:
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • All uses should be avoidable and/or replaceable by nsIDOMWindow usage.

nsIDOMNSDocument

public: n
status:
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • Being used to GetContentType().
  • Currently not possible through any other interfaces.
  • Need to come up with an alternate one.

nsIDOMNSHTMLInputElement
nsIDOMNSHTMLTextAreaElement
 nsIEventStateManager

public: n
status:
implemented by: Gecko
owner(s): jst@netscape.com
Notes:

[09/05/02]
  • nsIDOMNSHTML* should be able to just the same with regular public DOM interfaces.
  • Embeddor seems to be using the nsIEventStateManager to gather the focused element, see if it is a selection element and avoid our bug (number?), which if we fix could remove this usage.
  • Could keep the hack going if the use the getFocusedNode in nsISelection if worse comes to worst.

nsIPref

public: y
status: in-flux
implemented by: Gecko
owner(s):
Notes:
  • Need a way to modify the behavior of the browser - proxies, cachesize,etc.,but do we want to expose nsIPref as it exists right now?
  • nsIPrefsManager and nsIBrowserPrefsManager were created in Classicto dividetheprefs API into public and private interfaces. They are not implemented in Mozilla.
  • Suggestion that we collapse the setters and getters into a singleonethatdealswith nsISupportsPrimitives. We might not want to deal with thisifit'stoo muchwork. (In that world, we need a solution for binary prefs.)
  • (46863) Decision to revive nsIPrefsManager and nsIBrowserPrefsManagerto replacensIPref.

[01/25/01]
  • see nsIPrefsService, and nsIPrefBranch for direction.


nsIPrefsManager

public: n
status:
implemented by: Gecko
owner(s):
Notes:
  • Get rid of Get/Set/SetDefaultColorPref, Get/Set/SetDefaultColorPrefDWord, Get/Set/SetDefaultRectPref.
  • Add Get/Set/SetDefaultUnicharPref.
  • Need to add Get/Set/SetDefaultUnsignedInt to replace the colorprefmethods.
  • Need to fix the callbacks to be done throug interface.
  • Need to figure out what to do with localized prefs - they shouldbedealtwithinternally and not exposed.
  • Get rid of PrefIsLocked from public interface.
  • Need to move SavePrefFile() here.

[01/25/01]
  • see nsIPrefsService, and nsIPrefBranch for direction.


nsIPrefService

public: y
status: completed
implemented by: Gecko
owner(s): bnesse@netscape.com
Notes:

[01/25/01]
  • (46863) used for saving and loading prefs files
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.


nsIPrefBranch

public: y
status: completed
implemented by: Gecko
owner(s): bnesse@netscape.com
Notes:

[01/25/01]
  • for getting and setting individual prefs
  • Conrad would like to collapse the setter/getters with the ones for defaults.
  • Datatype for color preference is ambiguous. Rick thinks that the   DWORD used is platform-specific. Conrad would like to change thisto   separate out the R,G and B components.
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIWebBrowserSetup

public: y
status: completed
implemented by: Gecko
owner(s):
Notes:
  • [done]Need to change userList getter to return a nsISimpleEnumerator(). Whatdoes it return?
    • accomplished through nsIProfile, it returns a delimited stringthough.
  • [done] ChangeCurrentUser->setCurrentUser.
    • nsIProfile
  • Need a method to set to the default user.
  • Should we keep this interface or move these to a base interfacefornsIProfile(likensIPrefs)? Wait till Conrad is done with his implementationbeforewe makea decision.

[2/20/01]
  • per top level window "capabilities" should hang off of here.
  • generic capability attribute for getting/setting. Takes an enum(the specific capability to toggle) and a boolean (toggle on/off).
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIPipe

public: n
status: in-flux
implemented by: Gecko
owner(s):
Notes:
  • Needed for loadAsStream() method.
  • [done]Rather than expose nsIPipe and nsIPipeObserver, we'll have nsIInputStreamObserver and nsIOutputStreamObserver.  There will be setters for each on the correspondingnsIFooStreaminterface.The  loadAsStream() methodwill just take a nsIInputStream.Theembedder canimplement  nsIInputStreamasthey want and has to dealwiththensIInputStreamObserverimplemented.
    • see nsIInput|OutputStream.idl
  • Move readonly attribute boolean NonBlocking from nsIBufferInputStream tonsIInputStream.


nsIRequest

public: y
status: completed
implemented by: Gecko/embeddor
owner(s):
Notes:
  • Needed in nsIWebProgress and nsIWebProgressListener.
  • [done]Need a name attribute to identify request - a string representing the URIif the Request is a channel.
    • returns a wstring.
  • Are suspend() and resume() necessary anymore?
[01/18/01]
  • suspend and resume are indeed needed

[03/06/01]
  • see nsIChannel for more changes. some methods/attributes are beingpromotedfrom nsIChannel to nsIRequest.
[03/20/01]
  • the owner() attribute promoted from nsIChannel, should be considered a nsIPrinciple. The access method to get the principle from the request via QI on the request, thus nsIPrinciple does not need to be exposed publically.


nsIProfile

public: y
status: completed
implemented by: Gecko
owner(s): ccarlen@netscape.com
Notes:
  • [done]Conrad to split into public and private interfaces
  • [done]Public interface to contain methods for enumeration, creation, selectionanddeletion of profiles.
    • public is nsIProfile
  • Directory service is where the profile directory is set.
[2/8/01]
  • should use nsIObserverList weakref list and impl nsINotifierintself
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIProfileInternal

public: n
status:
implemented by: Gecko
owner(s): ccarlen@netscape.com
Notes:

[09/16/02]
  • The only usage found here is GetProfileDir and GetCurrentProfile dir.  Will be moved into a new interface nsIProfile2(?) since nsIProfile is frozen.

nsIClipboardCommands

public: y
status: completed
implemented by: Gecko
owner(s): pinkerton@netscape.com
Notes:
  • You get it by doing a GetInterface on the web browser object.
  • nsIContentViewerEdit is not needed.
  • nsIClipboard is a lower-level interface that we might want toexposeaswellfor X selection.
  • [done] SelectNone() semantics need to be specified - where is the insertion point (collapsed selection)
  • [done] CanPasteSelection() should be renamed to CanPaste()
  • [done] PasteSelection() should be renamed to Paste()

[12/14/00]

  • impl: need image support (gif, jpeg). windows clipboard requires abitmap handle(native) (21747).
  • api/impl: need to "select"/"focus" the particular item (such as the image). textworks fine because it's the current "selection". do we linka clipboardcommandto a DOM node?
    • This will be handled behind the scenes so the embeddor doesn'thave to know about the underlying type (pinkerton)
  • impl: no copy on request. what gets copied goes right to theclipboard.
  • impl: what text encoding do we use when text goes to the clipboard(bstell asks)?
    • from pinkerton "We use the platform plain text encoding, obtained from a service."

[12/15/00]

  • [done] api/impl: (63001), need copyLinkLocation() method.
[1/4/01]
  • impl: (64329) copyLinkLocation() needs to be impled by editor
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIDOMSelection

public: n
status: DNE (anymore)
implemented by: Gecko
owner(s):
Notes:
  • Need an accessor from one of the nsIWebBrowser family of interfaces - probablyjust nsIWebBrowser. What about framsets?
  • [done] Should really not be a nsIDOM interface, since it's nota standardDOMinterface.
  • [done] Should be defined in xpidl instead of idlc.
  • [done] Needs to be broken into public and private sections (it'shugeasis). Composer team owns this task.

[1/4/01]

  • The private iface is spread out all over the place
[09/10/02]
  • Marked interface non-public/DNE since it can't be found any longer in the source code base.

nsITextServices

public: n
status:
implemented by: Gecko
owner(s):
Notes:
  • This is not the level we want to expose.
  • Conrad to convert http://lxr.mozilla.org/seamonkey/source/embedding/browser/powerplant/source/CFindComponent.h into an xpidl interface and move both the interface and the implementation into the core.
  • FindAll to be removed from the interface.
  • nsString& and PRBool& to be converted to XPCOM equivalents

[2/26/01]
  • nsIWebBrowserFind is our public support for this. see the news posting news://news.mozilla.org/3A82C49E.1080208@netscape.com

nsIDiskDocument

public: n
status:
implemented by: Gecko
owner(s):
Notes:
  • Need a way to implement SaveAs and Print functionality.
  • We're not going to deal with throwing up dialogs. We expect theembeddingappto throw them up itself.
  • We want to add a new nsIPersistenceManager interface (per nsIDOMWindow) that can be getInterfaced from nsIDOMWindow.
  • Currently has two methods:
    • SaveAs method that takes some form of a filespec (probablynsIFile)
    • Print method that takes an optional nativeDeviceContext argument.
  • Revisit issue of getting a stream from documents and linked elements


nsIURIContentListener

public: y
status: completed
implemented by: embeddor
owner(s):
Notes:
  • (46853) onStartURIOpen and specifically the ability to abort aURI loading should move into nsIWebProgressListener. Would need to add new state before"start". Aborting couldbe done via nsIRequest::Cancel.
  • Need to figure out a way to get the mimetype of a request (after we know it). QIingto nsIChannel from the nsIRequest is one way, but we've talked about not exposingnsIChannel. Should we consider exposing nsIChannel.
  • The interface also allows the embedding application to field a specific content type(canHandleContent, isPreferred, doContent). We think this isimportant functionalityand should go in the bucket of networking interfacespendingreview.
  • (70223) getProtocol() should go away - no one uses it
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIContextMenuListener

public: y
status: completed
implemented by: embeddor
owner(s):
Notes:
  • [done]context flags are conveniences for common element types.CONTEXT_UNKNOWN->CONTEXT_OTHER.
  • [done]This is for the case where the embedder always brings upthecontextmenu.
  • Embedder implements nsIContextMenuListener and makes it availablethroughtheInterfaceRequestor passed into nsIWebBrowser::AddWebBrowserListener
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsICommandHandler

public: y
status: in-flux
implemented by: Gecko
owner(s):
Notes:
  • This is for the case where the embedder wants to modify the existing XULcontextmenus.
  • Implemented by embedder - currently obtained by calling do_GetInterface on the web browser chrome instance.
  • Samples to be provided to show how XUL can be modified and howto invokensICommandHandler.(news://news.mozilla.org/39896D6C.22CEC233%40iol.ie)
  • If the embedder wants to look exactly like Mozilla, they mighthavetocopyout XUL from our source tree (both for the context menus and forchromethatcontext menu commands bring up)

nsIPrint

public: y
status: in-flux
implemented by: Gecko
owner(s): dcone@netscape.com
Notes:

[12/14/00]                                                                                
  • api: may need to be re-named.
  • api: breaking it away from nsIPersist. printing will have seperateapi(s)from save as (nsIWebBrowserPersist).
  • api/impl: default dialog option and context parameters option.
  • impl: we currently throw the dialog, we shouldn't be doing this,embeddorshould have the option/control.
  • api/impl: we need print range support (only through page preview).problemis you have to have laid out the pages before  you know whata"page"is.
  • impl: frameset consolodation, currently we print a page per page.
  • impl: scale to fit (conrad raised this issue) (page setup)
  • impl: headers/footers (page setup)
  • impl: margins (page setup)
  • impl: print preview (potts has some info here)
  • api: embeddor throws the dialog, gathers attributes and givesthemto us(nsIPrint?) via nsIPrintContext or Set|GetPrintingProperty().
  • api/impl: print alert (Printing: OK, CANCEL) support, possiblyprogressviansIWebProgress|Listener (start/stop, onProgress() callback providespercentagecompletioninfo, *not* pages). Progress listener would be passedin whencontext/propertyinfo ispassed in.
[01/11/01]
  • retrieve from webbrowser some public printing iface (or hangpertinentmethods off of nsIWebBrowserPersist) which provides *what* to print:all,currently focused, certain window (DOMWindow), certain object (image,selection).
  • PrintElement(nsIDOMElement);
  • PrintRange(nsIDOMRange); // for object/text range selections(notpage range)
[01/18/01]
  • seperate interface from nsIPersist iface, the concepts of savingand printingwill not be shared.
  • there are some global printing settings that could/should beina printingservice, but we will expose them through nsIPrintOptions.
  • this document level iface will pass pertinent nsIPrintOptionsdata ontoit.
  • doc level seetings "should" be (currently are not):
    • page range
    • margins (maybe?)
    • black text
  • This is printing's equivelent to nsIWebBrowserPersist (docuementlevelprinting); maybe call it nsIWebBrowserPrint.
  • Printing options are passed into nsIPrint via nsIPrintOptions(the newversion which represents, at a high level, document level printingoptions.


nsIWebBrowserPersist

public: y
status: in-flux
implemented by: Gecko
owner(s): adamlock@netscape.com
Notes:

[12/14/00]
  • [done] api/impl: current impl allows document level saving (doesn't reloadURIs)as well as new URI retrieval saving (right-click "save-link-as"forexample). URI level saving only goes one document deep. document levelsavingretrieves inline content though.
[01/18/01]
  • currently cannot "save as" html source plain text. SaveDocument() case should be able to save as text (html source). Some enumeration would define types to save as.
  • printing will indeed remain a seperate interface
[09/19/02]
  • There might be outstanding bugs that would affect the interface when fixing them.  Not sure.
  • Should saveURI include a cache key?  We need to document that the caching flags in this interface are misleading in the POST case since calling saveURI is not guaranteed in the cases where it is a POST we are trying to save and there is no cache key provided.
  • Need to run this interface by the editor group to see if they have any concerns over this interface freezing (WebDAV concerns as well.)
  • Will add a couple of reserved  flags for future use.
  • Should be freezable if we can document the flag peculiarities of our implementation in the implementor classes.

nsIWebBrowserFocus

public: y
status: freezing (target 1.3)
implemented by: Gecko
owner(s): blizzard@mozilla.org, saari@netscape.com
Notes:

[12/14/00]                                                                                
  • Proposed idl
    •        void activate();

    •        void deactivate();

              // Give the firstelementfocus within mozilla
             // (ie. TAB was pressedandfocus should enter mozilla)
             void setFocusAtFirstElement();

             // Give the last elementfocuswithin mozilla
                    // (ie ALT-TAB was pressed andfocus should enter mozilla)
             void setFocusAtLastElement();
             attribute nsIDOMWindowfocusedWindow;
             attribute nsIDOMElementfocusedElement;

  • nsWebBrowser.cpp has some Activate() impl that could/should be leveraged here.
[01/11/01]
  • embeddor must maintain focus memory up to our "boundary"/box,*we* maintain focusmemory inside our content area.
  • activate(): top level window getting focus via mouse click. maybe mouse clickevents are enough.
  • activate/deactivate must be called by the embedding app in order for us to maintain our internal focus memory. called when the top level window gets focus *and* we are determined to receive focus, vise versa for deactivate.
  • [done] hangs off of the webBrowser.
[09/20/02]
  • We probably want to freeze this as is, but ...
  • Should rename activate(...) and deactivate(...) to onActivate(...) and onDeactivate(...), and create two new methods that will allow us to make Gecko differentiate between ativation of the top-level window vs. activation of the Gecko widget itself.
  • Chris will decide as to whether it will be best to freeze this as is and add the new behavior to a separate interface or update this one first.
[01/24/03]
  • Will freeze as is, disambiguating the activate/deactivate calls will happen in the new rev. of this interface.
  • Updated freeze target.  Missed 1.2 milestone.
  • Bug logged to track this 191236.

nsIWebBrowserChromeFocus

public: y
status: feezing (1.3 target)
implemented by: Gecko
owner(s): blizzard@mozilla.org, saari@netscape.com
Notes:

[12/14/00]
  • (70224) needs to be created and implemented.
  • proposed idl
    • // ALT-TAB waspressedand focus should leave mozilla.

    •         void setFocusAtPreviousElement();
    • // TAB was pressedandfocus should leave mozilla

    •         void setFocusAtNextElement();
[01/11/01]
  • focus notification going from us, to the embeddor
[09/10/02]
  • Marked status "in-flux" since this exists now and it is so according to LXR on the trunk.
[09/20/02]
  • Will freeze, remaining administrative steps (Javadoc, etc.)
[01/24/03]
  • Updated freeze target.  Missed 1.2 milestone.
  • Bug logged to track this 191236.

nsIHistoryObserver

public: y
status: DNE
implemented by: Gecko
owner(s): radha@netscape.com
Notes:

[1/4/01]
  • Too complicated to have embedding app impl the current sessionhistoryinterfaces.
  • See nsIWebNavigation for other notes.
  • We have to maintain loaded state internally. It's not enoughthatthe embeddingapp maintain a list of URLs which they LoadURI() on whentheuserjumpsaround in the history list.
  • It's not clear whether or not we should be index (number) basedor cookie(history entry interface) based.
  • Maybe the embedding app tells us *when* to trim, thus makingtheindex optionmore attractive.

[2/5/01]                                                                        
  • should provide a general entryAdded() type notification thatcanbe used across session history and global history.


nsIDOMWindowManager

public: y
status: DNE
implemented by: Gecko
owner(s): danm@netscape.com
Notes:

[1/4/01]
  • Out of proc issues (not addressing these right now).
  • Currently always passing around/using nsIPrompt as a generalhandle.
  • Similair idea to a JS context? A "current" window concept. Passing"handles"around is bad (hard/impossible).
  • We currently get nsIPrompts by QI'ing or IFaceRequest objectsfor nsIPrompt.
  • Should be using nsIDOMWindow as the root iface and QI that fornsIPromptwhen needed.
  • Currently all of our internal uses of nsIPrompt, don't causetheembeddor'simpl of nsIPrompt methods to get called. This is due to inconsistenciesin howour subsystems acquire nsIPrompts (either the netDialogService/windowmediator, or by walking up the content model until we find an nsIPrompt).
  • [done] This interface would provide the following functionality/apis(it'sbasicallya boiled down version of nsIWindowMediator):
    • Ability to create new top level window via this service.
    • Access all top level DOM windows.
    • Access to currently focused/active window.
    • Access to "current" window (the one currently getting events).
  • [done] nsIWindowMediator name changes to nsIWindowMediatorInternal, and the above functionalitywould be factored into the higher level/public nsIWindowWatcher.
[01/11/01]
  • component impl now lives in embedding/componets.
  • add/removeWindow() *may* be different from embedding and mozillacases.if the impl is different, one impl could live in xpfe, and anotherinembedding/base.
    • this happens internally so it doesn't impact the embeddor.
[06/06/01]

nsIWindowWatcher

public: y
status: completed
implemented by: Gecko
owner(s): danm@netscape.com
Notes:

[06/06/01]
  • This handles window creation and management. It is the actual incanation of nsIDOMWindowManager interface described above.
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.


nsISelection

public: y
status: completed
implemented by: Gecko
owner(s):
Notes:

[1/4/01]                                                                                
  • [done] (64327) remove nsISelectionListener forward declarion (and it'sidlinclude)from  nsISelection.idl.
  • [done] (64327) same for nsIEnumerator.
  • nsISelection methods look clean, and it's accessible from nsIDOMWindow which is good


nsIPrintContext

public: n
status:
implemented by: Gecko
owner(s): dcone@netscape.com
Notes:

[01/11/01]
  • consolodation of various printing contextual info.


nsIPrintOptions

public: n
status:
implemented by: Gecko
owner(s): dcone@netscape.com
Notes:

[01/11/01]
  • currently a singleton service. should be an arg to a Print()methodhangingoff a top level printing iface (maybe nsIWebBrowserPersistora newtoplevelprinting iface), turning it around, the embedding app willneed toinstanciatethisand pass it in.
  • multi window printing is currently not supported.
  • options get set/dumped in here. it's the bridge between settingsgatheringand the backend printing.
  • print page ranges
  • print selection
  • headers/footers
  • date
  • displayNativeDialog()
[01/18/01]
  • page range should *not* be application wide, it should be doclevel.
  • Current nsIPrintOptions implementation is a singleton serviceand shouldbe renamed to nsIPrintOptionsInternal or something else
[09/13/02]
  • This should not be public anymore.  nsIPrintSettings should be used.
  • Get rid of @status in IDL to avoid making it seem public.

nsIPrintSettings

public: y
status: in-flux
implemented by: Gecko
owner(s): rods@netscape.com
Notes:

[01/18/01]
  • Holds print settings. We may expose global and/or document levelsettings off of this interface.
  • embeddor can instanciate one and manipulate the attributes.
  • This gets passed into nsIWebBrowserPrint to provide the printingsettings.

[01/25/01]
  • needs to be idl'ized
[02/01/01]
  • now in idl
[09/13/02]
  • Will eliminate including of nsMargin (by moving methods that use MarginInTwips out) and nsFont (not used)
  • Need to change the way the constants are specified.  Should be changed to all caps to be Javadoc compliant.
  • Change method names to intercaps, first letter lowercase.
  • Change PRBools into boolean.  Can leave PRInt32 in, but could also change to a long.
  • Follow up with Conrad as to whether we can move nsIPrintSession into a separate interface.
  • Figure out how soon we'll support multiple page ranges, maybe get the IDL done sooner in order to freeze.
  • Javadoc it.
  • Internal AOL embeddors are just setting the print range and frame settings (to the default values anyway) ... they could remove these two calls in most likelihood.

nsIPrintingPromptService

public: y
status: feezing (1.2 target)
implemented by: embeddor
owner(s): rods@netscape.com
Notes:

[09/13/02]

  • Ready to be frozen.
  • nsIObserver usage cleanup (null topic)
  • Need to freeze nsIPrintingProgressParams (after we Javadoc/clean it up)
  • Cleanup the old IID from the IDL.

nsICommandManager

public: y
status: freezing (1.4 target)
implemented by: Gecko
owner(s): sfraser@netscape.com, mjudge@netscape.com
Notes:

[01/18/01]
  • Interface proposed to provide UI updating dynamically. Allows embeddor to update commands via notifications from us, rather than pollingus forcommand state.
  • commands are identified by name (strings).
  • see http://www.mozilla.org/projects/embedding/commandhandling.html for docs.
  • embeddor registers nsICommandUpdaters w/ this service.
  • possible conflict w/ nsIObserver
  • nsWebBrowser should impl nsICommandManager. That's where theembeddor wouldaccess the interface.
  • how much redundancy are we introducing?
  • what commands do we support?
  • bi-directional, embeddor can impl this as well.
  • potts is going to genereate a content area command list and senditout.
[09/09/02]
  • Redundancy of usage with nsIObserver is gone by eliminating nsICommandUpdaters
  • Need to document commands and publish on mozilla.org
  • Need to clarify what the string usage is so that embeddors know what to expect
  • Need to make sure that we don't rely on window focus for the target of the commands
  • Freeze nsICommandParams as well.
[01/30/03]
  • Most of old comments are solved.
  • In the future we'd like to support a way for embeddors to add their own commands, or pre-op/post-op sorts of additions to command operations.  Won't happen on the first revision of this interface, using observers should suffice for now.
  • Updated target to 1.4 (was 1.2)

nsICommandParams

public: y
status: freezing (1.4 target)
implemented by: Gecko
owner(s): sfraser@netscape.com, mjudge@netscape.com
Notes:

[09/09/02]
  • Need to figure out if an Enumerator is what should be used to replace to first(...), hasMoreElements
  • Add comments regarding the fact that removeValue does not require a type because no duplicate values can exist for different types.
  • Add Javadoc comments, make sure we specify that no duplicate values are allowed.
[01/30/02]
  • Should we use nsISupportsPrimitives instead to hide the different types?  No, too much burden on the embeddors.
  • Instead take nsICommandParams and make it into the generic parameters interface, splitting the enumeration APIs into a private interface.
  • We'll need a way to expose the enumerator out in this interface.
  • Add new types to this interface (looked at nsISupportsPrimitives): time/date, ID.
  • New target is 1.4 (was 1.2)
  • Bug number for the enumerator work is 173601.

nsICommandUpdater

public:
status: DNE
implemented by: Gecko
owner(s): sfraser@netscape.com, hyatt@netscape.com
Notes:

[01/18/01]
  • embeddor impls this interface and gets called back when commands(UI events)change.
  • similair to nsIObserver.
  • nsICommandHandler should change over to nsICommandUpdater
[01/30/03]
  • At this point it was decided to use nsIObserver instead.
  • Move along ... nothing to see here!

nsIObserver

public: y
status: completed
implemented by: Gecko
owner(s):
Notes:

[01/18/01]
  • current thinking is that we will not expose this
[03/26/01]
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIObserverService

public: y
status: completed
implemented by: Gecko
owner(s):
Notes:

[09/10/02]
  • Made public and marked status "completed" since it is so according to LXR on the trunk.

nsIWebBrowserPrint

public: y
status: completed
implemented by: Gecko
owner(s): dcone@netscape.com, rods@netscape.com
Notes:

[01/25/01]
  • [done] obtained by QI'ing or GI'ing the nsIWebBrowser
  • methods
    • printWindow - takes a nsIDOMWindow, null would mean use the  top-level window
    • printWindow would also take a nsIPrintSettings
[02/01/01]
  • impl needs to get the correct content model. laid out docshellsarerequired. vidur can provide pointer to where to get a docshell in thechain.

[03/20/01]
  • (72691) print preview should be exposed via a ShowPrintPreview(nsIPrintSettings, nsIPrintPreviewNavigation **out), and restore() methods hanging off of nsIWebBrowserPrint. Once in the mode, subsequent nsIWebNavigation::Back() calls travers the history list, presenting the documents in print preview mode.
  • (72691) nsIPrintSettings should be an attribute, rather than being passed into the print method.
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIPrintPreviewNavigation

public: y
status:
implemented by: Gecko
owner(s): dcone@netscape.com
Notes:

[03/20/01]
  • (72692) need to create interface
  • next/previous page support.
  • gotoPage()
  • pageCount()
  • multiple page navigation too (one page up, two page down, etc).
[09/10/02]
  • Marked status empty since the interface exists now (DNE does not apply any longer!)

[09/13/02]
  • Belief is that this is not needed/used any more.
  • Will make sure that it is not used.  CVS rm it from the trunk.
  • nsIWebBrowserPrint is what we actually want to support and provides this functionality.

nsIURIFixup

public: n
status:
implemented by: Gecko
owner(s): rpotts@netscape.com
Notes:

[01/25/01]
  • Currently, nsURIFixup service does a preload fixup, webshelldoes  the postload (failure) fixup.
  • nsIURIFixup should include both preload and postload methods,both  of which should be implemented by the service.
  • We'd like to allow the embedder to override the existing service.
  • nsServiceManager::RegisterService would be one way to do this,but  there are no guarantees about registration order.
  • A nother option is to factor this service out into its own DLLwhich  can be optionally included.

i18n

public: y
status: in-flux
implemented by: Gecko
owner(s): bstell@netscape.com, yokoyama@netscape.com
Notes:

[01/25/01]
  • Problems displaying non-Latin pages in winembed, gtkembed. In  December, it seemed that unicode converter DLLs were not included in  these packages. (Adam says he sees them today).
  • META tag charset and HTTP header charset information seemed tobe  ignored. This could also be related to the missing DLL problem.
  • Should also allow the end-user to override the default charset-  would also need to be exposed through the embedding interface.
  • The embedding interface will need ways to:
    •   1) Set a default character set
    •   2) Get current document character set
    •   3) Override current document character set
    •   4) Set or get hint character set (needs investigation)
    •   5) Ennumerate all supported/in use character sets (needsinvestigation)
  • May warrant a new interface that can be QIed or GIed from the  nsIDOMWindow (since there is a desire to do this per frame)
[02/01/01]
  • Based on bstell's suggested api:
    • interface nsIDocumentCharacterSetEncoding : nsISupports
      {

      /*
      * Set fallback encoding
      */
      void SetDefaultCharacterSetEncoding(in nsIAtom fallbackCharacterSetEncoding);

      /*
      * Force an override encoding
      * (requires a reload to update display)
      */
      void SetOverrideCharacterSetEncoding(in nsIAtom overrideCharacterSetEncoding);

      /*
      * Get encoding used for this page and from where
      * (where: http header / meta tag / auto detect / fallback)
      */
      nsIAtom GetCharacterSetEncoding(out nsIAtom characterSetEncodingFrom);

      };
  • do we need to expose "where" the  charset encoding camefrom?either way.
  • attributes would be - read/write, DefaultCharSet, read/writeCurDocCharSet()
  • strings instead of atoms
  • no need for "hint" charset info at the high embedding level.
  • enumeration of encodings would be done in a new service iface.
  • suggested nsIDocumentCharSetEncoding level is document window(nsIDOMWindow/per document). should be able to GetInterface() a nsIDOMWindowfor new iface.We'd like to support document/frame level (not just top levelwindow) encodings

Font Downloading

public: y
status: in-flux
implemented by: Gecko
owner(s): ftang@netscape.com
Notes:

[02/01/01]
  • triggered by a lacking document language encoding.
  • notification that a font is needed. and ability to reload fontsandpotentially reload windows.
  • this would be a global service that the embeddor registers ahandler with. global service maintains whether or not an outstanding requestis attempting a download.
  • The handler signature needs to indicate the action taken (downloaddo
  • [done] The handler callback provides the result of the font load(loaded/notloaded), font family name, reload hint (don't reload pages, reloadpages)
  • [done] the string monikers need to be defined.
[2/8/01]
  • lowercase the first characters in the method names of nsIFontPackageService, nsIFontPackageProxy, nsIFontPackageHandler, to comply w/ JS method standards.

nsICharsetAlias

public: n
status:
implemented by: Gecko
owner(s): ftang@netscape.com
Notes:

[09/12/02]
  • We don't plan to expose CharsetAlias functionality (add/remove/list) since this is a static mapping list we provide, so all that needs to happen is to find a place for the only use we can find by embeddors -GetPreferred(...) methods- to be accessible. Some other Charset interface, nsICharsetConverterManager2 seems like a possible candidate.
  • Need to come up with a better name than GetPreferred(...) for the method.

nsIDocCharset

public: n
status:
implemented by: Gecko
owner(s): ftang@netscape.com
Notes:

[09/12/02]
  • From alecf@flett.org via mail: this interface seems bogus - why not just put a string charset on whichever interface is using this. we should dump this interface entirely.
  • Interface is misleadingly named, since we're not actually talking about the charset of the document.
  • We need to find a place for this as well as other web container attributes.

 nsIFontList

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): ftang@netscape.com
Notes:

[09/12/02]
  • Need to clarify if this is a CSS font list specific interface and maybe rename it as such (nsICSSFontList?)
  • Document interface and drive towards freeze.

nsIFontPackageService
 nsIFontPackageHandler

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): ftang@netscape.com
Notes:

[09/12/02]
  • We need to make it clear in these interfaces whether NeedFontPackage(...) is a blocking call or not.  Need to decide if it should or not first, of course ...
  • If the call is made to be blocking need to change the name of the method to downloadFontPackage(...) or something similar, plus the return value should be the boolean success value, with and out boolean param for redrawPages.

nsICaseConversion

public: n
status:
implemented by: Gecko
owner(s): ftang@netscape.com
Notes:

[09/12/02]
  • Not a public interface.  We don't plan on supplying case conversion libraries to embeddors, who shouldn't be using our internal classes for this.

nsICharsetConverterManager2

public: y
status: in-flux
implemented by: Gecko
owner(s): ftang@netscape.com
Notes:

[09/12/02]
  • It would probably be a good idea to get rid of nsICharsetConverterManager.h and rename this second version of it to take over its place.
  • Being used by embeddor (Galeon) to make a list of charsets and charset titles.  Not acutally being used to get to the converter, like the name would imply.
  • Suggestion is to replace usage of nsIAtom by nsICharacterSet like the comment in the file actually suggests (nsIAtom is not public): 
    * Here Charsets are indentified by nsIAtom's. I know, we could have our own 
    * interface for charsets (something like nsICharacterSet). But for now, I
    * will attempt to use Atom's. That is because it requires minimal work, all
    * the support stuff is already there. The drawback is that we might have some
    * performance loss from going to the Atom engine. Another possible problem is
    * people creating directly the Atom instead of going through GetCharsetAtom()
    * If these problems will hurt us, we'll switch to nsICharacterSet. The
    * implementation of this interface is ment to be quite flexible.
  • Eliminate the non-scriptable methods.  Make the Unicode decoder/encoder scriptable.
  • GetEncoder/DecoderList(...), GetCharacterDetectorList(...) would return an nsISimpleArray/nsIArray to stop usage of nsISupportsArray.
  • Maybe have a singe getCharsetFromString(...) method that takes a US-ASCII string.
  • GetCharsetTitle(...) could live inside the new nsICharacterSet interface.
  • Lots of work needs to happen here, probably won't happen in the1.2 timeframe.

nsIWebBrowserSiteWindow

public: y
status: in-flux
implemented by: Gecko
owner(s):adamlock@netscape.com
Notes:

[2/5/01]
  • primarily concerned w/ positioning of the container rectangle.
  • need minimize() and visibility() ability. hiding a window fromJS is a requirement.
  • merge this w/ nsIWebBrowserChrome and renaming the resultingiface?
  • clean/consolodate sizing methods (bitmask?). need to be clearaboutinner content resizing and outer chrome resizing.
  • it's not a nsIBaseWindow anymore.
  • rename to nsIEmbeddingSiteWindow.

nsIEmbeddingSiteWindow

public: y
status: completed
implemented by: Gecko
owner(s):adamlock@netscape.com
Notes:

[09/10/02]
  • Documented the (frozen) existance of this API.

appshell components

public: n
status:
implemented by: Gecko
owner(s): chak@netscape.com, alecf@flett.org
Notes:

[2/5/01]
  • components needs to be registered for startup initialization.alec has a startup category that components can listen.


global history

public: n
status:
implemented by: Gecko
owner(s): alecf@flett.org
Notes:

[2/5/01]
  • pulls in mork database.
  • needed for link colorization.
  • nsIGlobalHistory could be abstracted into simple AddPage() and QueryURL() for existance interface.


nsIBrowserHistory

public: n
status: 
implemented by: Gecko
owner(s): alecf@flett.org
Notes:


nsIGlobalHistory

public: y
status: completed
implemented by: Gecko
owner(s): alecf@flett.org
Notes:

[03/09/01]
  • Based on phone conversation w/ radha@netscape.com and alecf@flett.org
  • (71511) addTitle() should be moved out to the private global history iface(currently nsIBrowserHistory). So what's left should be
    • addPage() - tells an embeddor when to add a pacticular page to their list
    • isVisited() - is consulted when Gecko wants to determine whetheror not a link should be colored w/ the "visited" link color.
  • If an embeddor wants to provide their own global history implementation, this interface must be implemented and the nsIGlobalHistory.idl contractID must be used for registration on the part of the embeddor.
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIWebBrowserHistoryEntry

public: y
status: DNE
implemented by: Gecko
owner(s): radha@netscape.com
Notes:

[03/09/01]
  • (71436) from the newsgroup
  • needs to include
    • readonly URI attribute
    • readonly string title attribute
    • readonly flag indicating top-level or subframe entry.
  • This is the super class for nsISHistoryEntry


nsISHistoryEntry

public: n
status: completed
implemented by: Gecko
owner(s): radha@netscape.com
Notes:

[2/5/01]
  • we will internally prune branches.
  • nsISHistoryEntry iface should be refactored to expose URI and title ina new interface.
  • no explicit pruning notifiaction, their entry just goes stale.
  • checkout MSFT apis (adamlock@netscape.com)
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIDirectoryServiceProvider

public: y
status: completed
implemented by: Gecko
owner(s): ccarlen@netscape.com
Notes:

[2/8/01]
  • allows for installation independence.
  • allows for customization of directory locations.
  • rename to something that includes "files" as well as "dirs?"
  • this is passed into INITEmbedding() so we know where to get files.


nsIDirectoryService

public: y
status: completed
implemented by: Gecko
owner(s): ccarlen@netscape.com
Notes:

[2/8/01]
  • could/should init() just be called by the factory and removedfrom the iface?


nsSupportsWeakReference

public: y
status: completed
implemented by: embeddor
owner(s): scc@mozilla.org
Notes:

[2/8/01]
  • a class wanting to support weak references (a listener classforexample) derrives from. nsSupportsWeakReferenc.


nsIWeakReference

public: y
status: completed
implemented by: Gecko
owner(s): scc@mozilla.org
Notes:


nsIObserverService

public: n
status: completed
implemented by: Gecko
owner(s): scc@mozilla.org
Notes:

[2/8/01]
  • Service - nsIEnumerator is depricated to nsISimpleEnumerator.
  • lower case first char in method names.
  • nsINotifier is the new name. Provide a global notifier impl (ourcurent one).
  • change global impl to use atoms.
  • currenty used as a global list/hub of topics for registration.it'sintent was to be implemented by individual services rather than globally.
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsICookieService

public: y
status: in-flux
implemented by: Gecko
owner(s): morse@netscape.com
Notes:

[2/8/01]
  • (46783) seperate into permission iface, and a cookie iface, and animageiface.
    • permissions (maybe image):
      • Permission_Add
    • image
      • Image_Block
      • Image_CheckForPermission
    • nsICookieService (the public one)
      • remove(in string name, in string domain);
      • nsISimpleEnumerator enumerate();
      • clearAll(); // deletes the cookie list, *not* persistingit.
  • SetCookieString()'s nsIDocument (which is private) needs to becomean nsIDOMDocument which can internally be QI'd to a nsIDocument.
  • SetCookieString() and SetCookieStringFromHttp() should be combined.
  • CookieEnabled() should be removed in favor of direct pref manipulation
[09/12/02]
  • Need to determine what is actually being used inside get/setCookieStringFromHttp(...) that comes from the nsIHttpChannel parameter being passed.
  • Should probably not have an nsICookieManager as well as a nsICookieService interface.  What does each one abstract?  Are both necessary?
  • Short term task is to figure out what the embeddor needs to do with this interface since only GetCookieStringFromHttp(...) is used and they could have probably used GetCookieString(...) instead since the "Http" is irrelevant here.

nsIDownloadObserver

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[9/12/02]
  • Embeddor has it #if 0'ed out.  No real usage.
  • This is a private interface regardless.

nsITransport

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[9/12/02]
  • Embeddor only includes, does not actually use this interface.
  • This is a private interface regardless.

nsIExternalHelperAppService

public: y
status:
implemented by: Gecko
owner(s): mscott@netscape.com, law@netscape.com
Notes:

[09/26/02]
  • The applyDecodingForType and need to move out of the generic public interface.
  • Fix typo on apply
  • Need to follow up

nsIExternalHelperAppLauncher

public: y
status:
implemented by: Gecko
owner(s): mscott@netscape.com, law@netscape.com
Notes:

[09/26/02]
  • fdsafdsa

nsIHelperAppLauncher

public: y
status:
implemented by: Gecko
owner(s): mscott@netscape.com, law@netscape.com
Notes:

[09/26/02]
  • Split this interface into a file of its own.
  • Need to rationalize the use of the aRememberThisPreference boolean in launchWithApplication since the implementation currently does nothing.
  • Need to consider whether sing nsIFile in launchWithApplication will be limiting in the future as far as parameter passing to applications.
  • Convert getDownloadInfo into attributes.
  • Make all strings AStrings.
  • Consider inheriting from nsIWebProgress, rather than register a nsIWebProgressListener.

nsIHelperAppLauncherDialog

public: y
status: in-flux
implemented by: Gecko
owner(s): mscott@netscape.com, law@netscape.com
Notes:

[2/20/01]
  • out params should be return values instead (from "void foo(outabc);" to "abc foo();"
  • better split between the dialog and the launcher?
  • exposing nsIMIMEInfo
  • should be it's own independent .idl file in the URI loader.
[09/20/02]
  • Change wstring to ACString, capitalization of Cancel(...) method
  • long long type in getDownloadInfo used to mimic the PRTime type.
[09/20/

nsIMemory

public: y
status: completed
implemented by: Gecko
owner(s): scc@mozilla.org
Notes:

[2/20/01]
  • better way to write the idl? currently not scriptable, no needfor it to be as far as we can tell.
  • uses another thread to determine memory levels, is this necessaryin an embedding world? Probably not. This impl should be optional as a component, and refactored. over to appshell?
  • (70225) isLowMemory() should be moved off to a private interface.
  • in order to replace nsIMemory, we'd need to fix it's static initialization, among other issues.
  • Rather than replace the impl, perhaps we should expose settings(such as max allowable alloc) for memory. Maybe this is a mac specific iface?
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIMarkupDocumentViewer

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[2/20/01]
  • sizeToContent() should be hidden, and implicit if there's nosizeavailable. (danm@netscape.com)
  • (70219) zoom method should hang off of nsIDOMWindow


Accessibility

public: y
status: DNE
implemented by: Gecko
owner(s): aaronl@chorus.net
Notes:

[2/20/01]
  • Based on Aaron's posting to .embedding regarding accesibilityattributes, it looks like almost all settings should be app level globalwhichshouldbe driven using nsIPref and prefs keys.
  • Question: what is the query for images in current document used for? This is a per top-level window setting who's use isn't clear.


nsIWebBrowserWindow

public: y
status: DNE
implemented by: Gecko
owner(s): adamlock@netscape.com, ccarlen@netscape.com
Notes:

[2/20/01]
  • (Bug 70226) need iface and impl.
  • different name?
  • carry over from nsIBaseWindow to bury nsIBaseWindow from embeddors. This will allow us to expose sizeToContent as well, without creating a dependency between the widgets (nsIBaseWindow) and nsIMarkupDocumentViewer.
  • init, create, destroy, positioning (size, positioning), repaint, focus, title, focusAvailable?, sizeToContent (from nsIMarkupDocumentViewer).


nsIFile

public: y
status: completed
implemented by: Gecko
owner(s): petejc@optonline.net, dougt@netscape.com
Notes:

[2/22/01]
  • root of nsILocalFile
  • there's a contract id for nsIFile and nsILocalFile, yet we onlycreate via nsILocalFile. NS_FILE_CONTRACTID should go away as it doesn'tdoanything.
  • methods w/ [const] can remove those usages as "in" parameterspecification implies "const"
  • ditch the char * method versions in favor of unicode versions
  • consolodate copyTo and copyToFollowingLinks so copyTo just takes a boolean flag to specify link following. The Links info should be promoted to a general flag (attribute) that the various "FollowingLinks" heuristics leverage; thus cleaning out the "Followlinks" verbage.
  • fully document semantics of the methods. make assumptions clear.
  • spawn should go away.
  • should we seperate the file descriptor operation stuff, frombuilding a path. separation of operations (load, reveal, launch, copy, create,clone, etc) stuff from file representation (including stat info). The operations stuff would be in a filesystem type service.
  • persistent description needed to represent XP relative paths (some XP portable path representation)
[08/07/01]
  • consent that nsIFileSystem isn't needed. these type of methods will hang off of nsIFile (moved from nsILocalFile). 
  • NS_NewLocaleFile() stays.
  • UTF8 for strings, or nsAString? (ftang, scc)
  • spawn() goes away; consensus.
  • "Links" (CopyToFollowingLinks()) methods go away. the followLinks attribute will apply to all methods.
      • clone, copy, permissions, modificationDate, isExecutable, moveTo, remove, fileSize, append, exists, is*() (isSymlink() is an exception?), equals, contains, parent, directory entries, URL.
  • append() assumes resolution, regardless of followLinks state.
  • file locations should be returned as relative, not absolute. this will allow profiles to be moved around. This would require an XP path format.
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.


nsILocalFile

public: y
status: completed
implemented by: Gecko
owner(s): dougt@netscape.com
Notes:

[2/22/01]
  • init XPCOM needs this, as does ProfileManager, as does nsIHelperAppLauncer. it's the connonicalfile representation we use.
  • nsILocalFile derrives from nsIFile
  • created via NS_NewLocalFile(), and via the nsIDirectoryService,or via the raw component manager (which wouldn't necessarily be initilized w/ apath)
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsISimpleEnumerator

public: y
status: completed
implemented by: Gecko
owner(s): scc@mozilla.org
Notes:

[2/22/01]
  • used by nsIFile (and others) for enumeration.


nsIHelperAppLauncherDialog

public: y
status: in-flux
implemented by: embeddor
owner(s): mscott@netscape.com, law@netscape.com
Notes:

[2/22/01]
  • (70228) should be moved to the URI loader dir.
  • if embeddors want to override this functionality, they need to replace our implementation of this.
  • (70228) We need to instanciate this internally as a component rather than a service(needs to do a do_CreateInstance())
  • expose backend rdf datasource manipulation for mime mappings. thiswouldbe a service.


nsIExternalHelperAppService

public: n
status:
implemented by: Gecko
owner(s):
Notes:


nsISingleSignonPrompt

public: n
status:
implemented by: Gecko
owner(s): morse@netscape.com
Notes:

[2/27/01]
  • not really an iface, it inherits from nsIPrompt
  • it acts as a go between for nsIPrompt
  • setPromptDialogs() just sets an internal delegate nsIPrompt iface.
  • currently the embeddor has to impl this, *and* instanciates the single sign on service
  • (70380) should be connected to the embeddor's nsIPrompt impl at the internaldocshellTreeOwner level. this will hide nsISingleSignonPrompt from the embeddor.We have different docshell tree owner impls between the embedding case andthe seamonkey case.
  • currently stored in a text file which is either ecnrypted or scrambled
    • in the encrypted case, PSM is used for encryption.


nsIWallet

public: n
status:
implemented by: Gecko
owner(s): morse@netscape.com
Notes:

[2/27/01]
  • need to make a logical functional break:
    • form management
      • WALLET_* goes into one iface
      • no need for public exposure at this time.
    • password management
      • SI_* methods + haveData().
      • This iface is nsISingleSignonManager (see its notes)
      • everything else should go into a private interface.


nsISingleSignonManager

public: y
status: DNE
implemented by: Gecko
owner(s): morse@netscape.com, ccarlen@netscape.com
Notes:

[2/27/01]
  • (70382) need to create this interface out of nsIWallet methods.
  • enumeration of elements - Get*List() strings should turn into standard enumeration arrays so delimiter info is implicity.
  • need the ability to purge an indivudual list item
  • need ability to purge entire list
  • see nsICookieService - we basically want to mirror that functionality.


nsIPromptAuth

public: n
status: DNE
implemented by: Gecko
owner(s): morse@netscape.com, ccarlen@netscape.com
Notes:

[2/27/01]
  • (70379) this iface provides internal nsIPrompt usages that providethe singlesign on object w/ passwordRealm and savePassword parameters intheauth methods(prompt*). The implementor of this ultimately delegates totheembeddor's(external) nsIPrompt.
  • nsWebBrowser would impl nsIPromptAuth. Callsites would get nsIPromptAuth ifaces and nsWebBrowser would act as the negotiator between nsIPromptAuth (internal) and nsIPrompt (external).
[09/10/02]

nsIAuthPrompt

public: n
status:
implemented by: Gecko
owner(s): morse@netscape.com, ccarlen@netscape.com
Notes:

[09/10/02]
  • Added the interface that was actually created here.  Will get discussed soon.
[09/11/02]
  • Need to rename prompt(...) to authPrompt(...), to avoid conflicts when the same object implements both nsIPrompt and nsIAuthPrompt interfaces.

nsIProperties

public: y
status: completed
implemented by: Gecko
owner(s): ccarlen@netscape.com
Notes:

[2/27/01]
  • (70349) should be buried internally.
  • we need an alternative mechanism for mapping.
[09/10/02]
  • Marked public and status as "completed" since it is so according to LXR on the trunk.

nsIProtocolHandler

public: y
status: completed
implemented by: Gecko and embeddor
owners(s): darin@netscape.com, dougt@netscape.com
Notes:

[03/06/01]
  • (71053) nsILoadGroup and nsIInterfaceRequestor need to be removed.
  • (71053) if not a socket using handler, the return code of defaultPort needs to be defined as -1, and documented.
  • (71053) baseURI in newURI() method needs to be documented that it can take null.
  • Should ERROR code be in the idl?
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIChannel

public: y
status: completed
implemented by: Gecko
owners(s): darin@netscape.com, dougt@netscape.com
Notes:

[03/06/01]
  • [done] (71054) nsIStreamProvider/nsIOutputStream/nsIStreamObserver needs to   go away.
  • [done] (71054) URI attributes should be readonly. mail/news should not call nsIChannel::SetURI(), they need to handle this internally.
  • [done] (71054) owner() attribute needs to be moved to nsIRequest and better commenting (it's an opaque pointer that the implementor just needs to hang on to and pass through. it cannot be abitrarily used.).
  • [done] (71054) securityInfo() should be moved into it's own iface (nsISecureChannel?) so HTTP leverages it directly.
  • [done] (71054) loadGroup attribute should be promoted to nsIRequest.
  • [done] (71054) loadAttributes attribute (along w/ LOAD_NORMAL and LOAD_BACKGROUND. the other enumerations stay in nsIChannel) should be promoted to nsIRequest.
  • [done] (71054) notificationCallbacks gives the caller access to nsIWebProgress and nsIPrompt. This needs to be documented.
  • [done] nsIFileChannel and   nsIStreamIOChannel should be moved into their own respective idl files.   
[09/10/02]
  • Marked public and status as "completed" since it is so according to LXR on the trunk.

nsIFileChannel

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[03/06/01]
  • [done] (71055) should be moved from nsIChannel.idl into its own idl file.
[09/09/02]
  • Still non-public.  Need use getFile() nsIURI to get the information needed.

nsIFTPChannel

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[09/09/02]
  • Only being used by Galeon to figure out if the download can be suspended/resumed
  • Need to figure out if nsIResumableChannel should be used instead of nsIFTPChannel

nsIHttpProtocolHandler

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[09/09/02]
  • Only use we can find in embeddors is to set user agent vendor and version, should set it in preferences and it should work fine (though it might have not in the past)
  • In the future, should we actually try to freeze this interface, a different name should be given to it, and private vs. public versions of the attributes kept here should be maintained.  That way they chrome, will no be hurt by people spoofing the UAs.

nsICacheService

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[09/09/02]
  • The only use that embeddors have for the cache right now is to clear the cache (either from a UI event or on a profile switch, though we might be doing it automatically already)
  • Will provide a new API in the embedding area to support this functionality only.
  • Need to figure out any other uses that might have to go into this new API.

nsIIOService

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s):
Notes:

[09/09/02]
  • Cleanup contract IDs in nsIProtocolHandler.
  • Move getURLSpecFromFile(...) and getFileFromURLSpec(...), nsIFileProtocolHandler.

nsIStreamIOChannel

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[03/06/01]
  • [done] (71056) should be moved from nsIChannel.idl into its own idl file.


nsIURI

public: y
status: completed
implemented by: Gecko and embeddor
owners(s):
Notes:

[03/06/01]
  • [done] (70743) schemeIs() should take a string and do a strcmp (optimixedw/ first char check). Current impl is not extensible.
  • undefs are fine. leaving them in.
  • ERROR definition in the idl file again. is this ok?
  • [done] (71058) NS_SIMPLEURI_CID should be moved to Darin's nsNetCID.h
  • simpleURI and stdURL implementations are exposed for use, their contract IDs should be used for creation.
[05/11/01]
  • proposed internal URI representation to be UTF8 encoding. for potocols that can't speak UTF8, a charset attribute hanging off of nsIURI would be used to convert back to the original charset.
  • ASCII % encoding would be removed from URI implementations and pushed out to the protocol handler and URI users if they needed it.
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIURL

public: y
status: completed
implemented by: Gecko and embeddor
owner(s): dougt@netscape.com, darin@netscape.com
Notes:

[03/06/01]
  • [done] nsIChannel/nsIEventSinkGetter interface pre-defines need to   go away; they're leftover cruft.
  • [done] NS_STANDARDURL_CID should be moved to Darin's nsNetCID.h
[09/10/02]
  • Marked status "completed" since it is so according to LXR on the trunk.

nsIFileURL

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): dougt@netscape.com
Notes:

[03/06/01]
  • [done] (71060) should be pulled out of nsIURL.idl into its own iface.
  • [done] (71060) nsIFileURL::file attribute should be readonly
[9/12/02]
  • Ready to be made public.  Trying to make sure that we can convert file URLs to files simply.
  • Ready to freeze, simply document that it may fail since there might be no file that follows to that URL.

nsIProtocolProxyService

public: n
status:
implemented by: Gecko
owner(s): darin@netscape.com
Notes:

[9/12/02]
  • Internal implementation detail of Necko.  The embeddor (Galeon) should trust that we take care of PAC preference setting ourselves, which is the only usage it is giving to this interface.

nsIPrompt

public: y
status:
implemented by: Gecko
owner(s): ccarlen@netscape.com
Notes:

[9/12/02]
  • Will be discussed at the embedding API review meeting coming up.
  • Move all auth related methods into nsIAuthPrompt?
  • Darin needs to get "promptUsernamePasswordDomain(...)" in so that we can authenticate against NT domains that ask for domain info.
[9/16/02]
  • Clean up method names that conflict between nsIAuthPrompt and nsIPrompt.

nsILoadGroup

public: y
status: completed
implemented by: Gecko
owner(s): rpotts@netscape.com
Notes:

[03/06/01]
  • [done] NS_LOADGROUP_CID should be moved out to Darin's nsNetCID.h file.
[03/08/01]
  • only being dragged in if nsIRequest brings it in as an attribute.
  • exposes nsIStreamObserver.
  • [done] rip out nsILoadGroupListenerFactory as its no longer used, it's  cruft.
  • [done] extraneous inface declarations can be removed: nsIChannel, nsIStreamListener,  nsIInputStream.
  • [done] pull out the init() method in favor of the read/write observer   attribute.
  • [done] pull groupListenerFactory.
  • [done] methods need documentation.
  • This is private pending nsIRequest modification discussion.
[03/20/01]
  • activeCount() stays.
  • nsIRequest is going to promote the load group from nsIChannel to nsIRequest, and subsequently drags this in.
  • [done] remove defaultLoadAttributes() as they can be pulled from the  default request.
[09/10/02]
  • Marked public and status as "completed" since it is so according to LXR on the trunk.

nsIStreamObserver

public: y
status: deprecated - renamed nsIRequestObserver
implemented by: Gecko
owner(s):
Notes:

[03/08/01]
  • [done] nsIStreamObserverProxy and nsIAsyncStreamObserver should move   to their own idl, along w/ the interface pre def for nsIEventQueue.
  • [done] rename to nsIRequestObserver.
  • This is private pending the status of nsILoadGroup.
[03/20/01]
  • nsILoadGroup drags in nsIStreamObserver.
  • [done] onStopRequest() should lose its status string. OnStatus() is  the correct method.
[09/10/02]
  • Marked status as "deprecated", since it was renamed to nsIRequestObserver.

nsIMIMEInfo

public: ?
status:
implemented by: Gecko
owner(s):
Notes:

[08/29/02]
  • Ran out of time.  Will talk about it at our next meeting.
[09/04/02]
  • This interface is not ready to be frozen as is.  The embeddors need to be given a way to get to MIME handling information however.  Will have to take a separate meeting involving Bill Law to discuss this.
  • A few other APIs are involved in here, nsIAppLauncherInfo being one of them.
[09/26/02]
  • Use an Enumerator rather than the array
  • Naming of functions to intercaps with lowercase first letters.
  • Run by plugins people to figure out if there are any new ideas that need to be supported.
  • Clean up MIME service that is inside Necko.
  • Clean up the DataURI member since it is probably not used.
  • Needs work if OS MIME type handling is necessary.

nsIMIMEService

public: y
status:
implemented by: Gecko
owner(s): darin@netscape.com
Notes:

[09/26/02]
  • Clean up nsIMIMEDataSource from includes list.
  • Add a GetFromMIMETypeAndExtension, maybe remove the other two and pass empty ones.
  • Naming of methods, intercaps.

nsIHttpChannel

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): darin@netscape.com
Notes:

[03/08/01]
  • nsIHTTPChannel is private, use nsIHTTPTransaction instead.
[09/04/02]

Revisiting the decision to keep nsIHttpChannel private, these are the things that would be needed to make it public:
  • For setReferrer we can move the referrerType into a privave header file -in case we don't want to expose the functionality to embeddors- or document the current intended use (which never even made much sense to the people in the room).
  • documentURI first went in for third party cookie blocking and is now being used by other modules.  Should stay in the frozen interface.
  • get/set/visitRequestHeader(s) are needed as part of the frozen interface.  Document them and freeze.
  • The uploadStream will be removed from here by adding a getter in nsIUploadChannel.
  • Response info in the form of responseStatus, responseStatusText and requestSucceeded
[09/09/02]
  • We're getting rid of the referrerType altogether, after further discussion.
  • Move isNoStoreResponse() and isNoCacheResponse() to the nsICachingChannel?
  • Move contentEncodings to a new Netlib interface so that other non-HTTP channels can take advantage of it.
  • Remove nsIHttpHeaderVisitor and move to its own IDL.
  • Going back and revisiting the decision to keep documentURI in this interface.  The third party cookie-blocking code will be given an alternate way to get to this information.
  • Need to go back and take a look at HTTP 1.1 to see if anything from the spec is not reflected here.

nsIHTTPTransaction

public: y
status: DNE
implemented by: Gecko
owner(s): darin@netscape.com
Notes:

[03/08/01]
  • This iface is an abstraction of existing methods in nsIHTTPChannel, as well as some clean up.
  • (71333) abstract out HTTP response info into new nsIHTTPTransaction. This iface would include
    • request header access
    • request method
    • response header access
    • response code access
    • response code string access
    • enumeration for responses/requests these types are nsIHTTPHeader
    • remove atoms in favor of const char *.


nsIHTTPHeader

public: y
status: in-flux
implemented by: Gecko
owner(s): darin@netscape.com, gagan@netscape.com
Notes:

[03/08/01]
  • This is the header wrapper interface which enumerating headers from nsIHTTPTransaction produces.
  • (71334) nsIAtom needs to be removed in favor of char *.


nsIAtom

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[03/08/01]
  • This was going to be exposed/made public if via nsIHTTPTransaction, but because we're ditching atoms in favor of const char *'s it's no longer relevant.
[08/29/02]
  • Unless performance requirements cannot be met other than by using nsIAtom, we need to keep clients using DOM APIs where possible.  If DOM APIs don't do what is needed we can certainly create services that would enable the operations without touching the internals. Remains private.

nsICategoryManager

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s):
Notes:

[08/29/02]
  • Ready to be frozen.  Waiting for "administrative" steps.

 nsIEventQueue
 nsIEventQueueService

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[08/29/02]
  • Tabled for further future discussion.  Need to figure out how the event loop will be handled in embedding situations.
[02/06/03]
  • Will keep these private.
  • Implement a way to achieve synchronous IO on necko protocls so that the current usage of the EventQueue/Service interfaces can be avoided.
  • Bug 192284 tracks that work.

nsISupportsArray

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[08/29/02]
  • Replace with nsISimpleEnumerator wherever it is used.

nsIGenericFactory

public: y
status:
implemented by: Gecko
owner(s):
Notes:

[08/29/02]
  • Already "frozen" by glue library.

nsITimer
nsITimerCallback

public: y
status: freezing (1.4 target)
implemented by: Gecko
owner(s): dougt@netscape.com
Notes:

[08/29/02]
  • Being cleaned up, but under review to decide whether we want to expose our timers or not.
[02/06/03]
  • Cleaned up, ready to freeze now.

nsISupportsWString

public: n
status:
implemented by: Gecko
owner(s):
Notes:

[08/29/02]
  • Replaced by nsISupportsStrings, which will be frozen by 1.2

AString

public: y
status: in-flux
implemented by: Gecko
owner(s): scc@mozilla.org
Notes:

[04/24/01]
  • mozilla's string implementation provides two main benefits: performance gain, and utility.
    • Performance - The AString implementation reduces allocations and de-allocations by sharing memory and by being smarter about ownership boundaries.
    • Utility - The AString interface/methods provide common string manipluation capabilities: append, concatenate, find (search), etc.
  • Public interfaces (embedding related or otherwise)should use AStrings as in/out parameters when there is a performance (DOM interfaces for example) or utility (more rare) justification.
  • Current embedding interfaces will not be retro-fitted to use AString, primarily because the current ifaces' usage would not benefit from any real performance gain.
  • Embedding ifaces will stick go raw, flat, "char *" and "PRUnichar *" pointers for in/out params (again, unless performance reasons dictate otherwise) in order to provide the lowest common denominator of strings for clients. Generally people want to use the raw pointers.

IMozNode

public: y
status: in-flux
implemented by: Gecko
owner(s): aaronl@netscape.com
Notes:

[06/06/01]
  • QI'd to from IAccessible. Provides DOM level attribute representation and more depth than IAccessible in a win32 accessibility (screen reading) realm.
  • needs comments.
  • node types should be prefixed for clarity.
  • nodeInfo && attributes::nameSpaceID should be a nameSpaceURI (strcmps will be necessary), for extensibility. we don't expose this notion. A new document level iface for nameSpaceURI/ID mapping would help. This doc level iface could cough up the doc's URI as well (named IMozDoc maybe?).
  • nodeInfo::tagName renamed to nodeName
  • styleRules method name renamed to styleDeclaration or styleProperties or computedStyle ("Rules" is misrepresentative). Bug: all of the style properties are not preserved. Need to talk to the style folks before freezing this.
  • maybe call it IMozDOMNode.? something representing "DOM" reflection.

 nsISoftwareUpdate

public: y
status: in flux
implemented by: Gecko
owner(s): dveditz@netscape.com
Notes:

[10/31/02]
  • Make it into IDL
  • Split public/private methods: probably don't need RegisterListener as a public method.
  • Everything in InstallJar is frozen (but only works in local files)
  • Should InstallJar also allow to install from URLs?  No real need since the current UI that downloads the JAR is overridable and will pass the 

nsSecurityManagerComponent

public: y
status: deprecated
implemented by: Gecko
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Wallet code in Seamonkey seems to be using it.  The implementation of getPassword simply returns a null.
  • Should be able to get rid of it since the current PSM implementation does not use it/need it.
  • Will send mail to Steve Morris and get Wallet to stop using it.
  • Deprecate and eliminate.

PSM

nsICrlEntry

public: y
status: freezing (target 1.2)
implemented by: Gecko (PSM)
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Pull out of nsIX509CertDB into its own IDL file.
  • Change name to nsICRLDisplayData, since there are actual entries inside of the list and this represents just the list display values, not the actual data.
  • Lowercase method computeNextAutoUpdateTime and move it into another interface.
  • The *UpdateLocale attributes need to be PRTimes.
  • Need to add Javadoc-style comments for the member variables and interface usage in general.
[09/13/02]
(from status update by Kai)
  • Instead of renaming to nsIDisplayData, I renamed to nsICRLInfo
  • ComputeNextAutoUpdateTime moved to nsICRLManager
  • Instead of changing *UpdateLocale to PRTime,  I decided to leave the current strings in, because that greatly simplifies our JavaScript implementation which needs the formatted strings, and I would have a hard time to add that logic to the JavaScript code.  Instead, I added new PRTime attributes that represent the raw time. I think that's acceptable.

 nsIX509Cert

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Get rid of view method.
[09/12/02]
  • Replace nsISupportsArray usage with nsIArray/nsISimpleArray
  • Make verifyForUsage(...) return type to be the verificationResult iself so that JS can use it.
  • Move nsIX509CertValidity, nsIASN1Object, nsIASN1Sequence, nsIASMIPrintableItem to their own IDL file.
  • Change output type of getRawDER(...) to the charPtr out value.
  • Change PRBool to boolean in isSameCert(...)
  • Move saveSMimeProfile() to a new interface where it makes more sense.

 nsIX509CertDB

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Didn't get to it, will discuss at next meeting.
[09/12/02]
  • Really big interface, we need to split it into two (nsIX509CertDB vs. nsICRLManager -name still to be determined-)
  • Not really sure if the rescheduleCRLAutoUpdate() interface belongs here to begin with.  The only current usage by our embeddors is to simply set the first auto-update of the CRL, which is automatically set by the PSM module anyway.  Embeddors should rely on that automatic mechanism, unless they need the update of the CRL to happen within the same browser session.
    Decided to move rescheduleCRLAutoUpdate() into new "nsICRLManager" intfc.
  • OCSP methods in this interface are very basic, so they could still live them here (also considered splitting them up from here)
  • Get rid of nsISupportsArray in favor of nsIArray/nsISimpleArray
  • Rather than freeze nsIPK11Token interface, use nsISupports.
    Make sure that it is allowed to pass null as the nsIPK11Token parameter (nsISupports to be) in all methods that use it.
  • Move out nsCertCompareFunc into new interface since it is not used by embeddors.
  • Remove nsAutoString* definitions which seem to be no longer used.
  • Move out nsIOCSPResponder, nsICrlEntry and nsINSSCertCache into separate IDL files.
  • Move out getCertsByType(...) and getCertsByTypeFromCache(...) - which means we can get rid of native nsCertCompareFunc(...)
  • In all import* methods Get rid of noscript and charPtr so that they can become scriptable.  Makes sense to leave these here.
  • Document trust type enums.
  • Return nsIArray/nsISimpleArray from getOCSPResponders(...)
  • The importCrl(...), updateCRLFromURL(...), getCrls(...), updateCRLFromURL(...), deleteCrl(...) methods will be moved into their own CRL manager interface.
[09/13/02]
(from status update by Kai)
  • All CRL functionality moved to nsICRLManager
  • I confirm it is indeed allowed to pass in NULL wherever a token parameter is present

 nsIX509CertValidity

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Didn't get to it, will discuss at next meeting.
[09/12/02]
  • Ready to be frozen.  Already moved out into its own IDL file.

 nsIASN1Sequence

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Didn't get to it, will discuss at next meeting.
[09/12/02]
  • Replace nsISupportsArray usage.
  • Ready to freeze otherwise, already being moved to it's own IDL file.

 nsIASN1Object

public: y
status: freezing (1.2 target)
implemented by: Gecko
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Didn't get to it, will discuss at next meeting.
[09/12/02]
  • Document tag's type.
  • Ready to freeze otherwise since it is already being moved to it's own IDL file.

 nsIASN1Tree

public: n
status:
implemented by: Gecko
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Didn't get to it, will discuss at next meeting.
[09/12/02]
  • Not an interface that we want to expose.  Embeddors can get rid this usage, seems like it can be bypassed to get the data directly from the individual nsIASN1Object's display data.

 nsINSSDialogs

public:
status:
implemented by: embeddors.
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Will eliminate this empty interface which is simply being used as a base class., which is meaningless in how we use it.
  • Will introduce new contract IDs of the necessary callbacks that embeddors can implement..

 nsICertificateDialogs

public: y
status: freezing (target 1.2)
implemented by: embeddor
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Pull out of nsINSSDialogs and into its own IDL file.
  • Holds the list of certificate-related prompts that we might want to present to the user.
  • New ones could be added in a new interface definition when and if they become necessary.
  • Where the IDL asks for a call-by reference output boolean value, we want to change the return types to boolean values before freezing for the benefit of scripting.
  • Need to add Javadoc-style documents.
  • Document that the trust argument bits come from nsIX509Cert.idl.

 nsIBadCertListener

public: y
status: freezing (1.2 target)
implemented by: embeddor
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Ready to be frozen, though nsITransportSecurityInfo is not.
  • Need to change the way a transport is passed into the interfaces.  Other interfaces use nsIInterfaceRequestor so that the embeddor may use that as a means of getting context, will do the same here.
  • String usage-wise we would like to move to AUTF8String when dealing with URLs.
  • Need to add comments before freeze.  Javadoc-style.
[09/13/02]
(from status update by Kai)
  • Will NOT replace change the type of the URL, since Alec said, wstring is ok

 nsITransportSecurityInfo

public: y
status: in-flux
implemented by: Gecko
owner(s): kaie@netscape.com
Notes:

[09/12/02]
  • Need to make sure that the securityState enum list that comes right now from nsIWebProgressListener gets defined here.

 nsISecurityWarningDialogs

public: y
status: freezing
implemented by: embeddor
owner(s): kaie@netscape.com
Notes:

[09/04/02]
  • Linked to bug 62178, for all alert* methonds will return boolean and make a note of impeding bug fix.

Plugins

nsIClassInfo

public: y
status: completed
implemented by: plugin
owner(s): jband@netscape.com
Notes:

[10/11/01]
  • the "XXX comment should be removed"
  • needs "@status FROZEN" added to the comments. http://bugzilla.mozilla.org/show_bug.cgi?id=99158

Depricated Plugin APIs

[10/11/01]

These interfaces have minimal (if any) support for backwards compatibility. If you're not already using these interfaces, don't start. These interfaces will be moved to obsolete status once the appropriate number of users of them dwindles to a reasonable threshold. Instead of using these, use the NP_API with the addition of nsIClassInfo.

nsIClassicPluginFactory
nsIEventHandler
nsIFileUtilities
nsIHTTPHeaderListener
nsIPIPluginHost
nsICookieStorage
nsIPlugin
nsIPluginInputStream
nsIPluginInputStream2
nsIPluginInstance
nsIPluginInstancePeer
nsIPluginInstancePeer2
nsIPluginManager
nsIPluginManager2
nsIPluginManagerMac
nsIPluginStream
nsIPluginStreamInfo
nsIPluginStreamListener
nsIPluginStreamListener2
nsIPluginStreamPeer
nsIPluginStreamPeer2
nsIPluginTagInfo
nsIPluginTagInfo2
nsIPluginViewer
nsISeekablePluginStreamPeer
nsIWindowlessPlugInstPeer
nsIScriptablePlugin
nsplugin.h
nsplugindefs.h
nsPluginLogging.h

Obsolete Plugin APIs

[10/11/01]

http://bugzilla.mozilla.org/show_bug.cgi?id=104298

nsIMalloc.h
nsIJRILiveConnectPlugInstPeer
nsIJRILiveConnectPlugin
nsILiveConnectPlugInstPeer
nsILiveConnectPlugin


key:

Interface Name

public: ['y' = the interface is intended for public consumption | 'n' = the interface is private]
status: ['' = the interface is not public, therefore status is irrelevent | 'DNE' = the iface doesn't yet exist | 'in-flux' = the interface is changing | 'completed' = the iface is frozen and cannot be changed]
implemented by: ['Gecko' = Gecko implements the iface, and the embeddor can use it | 'embeddor' = the embeddor implements the interface]
owner(s): [the best known owner of the interface]
Notes: [latest notes taken regarding the interface]