DocShell: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 1: Line 1:
== Interfaces Implemented by Docshell ==


Docshell + webshell implement the following interfaces
Webshell:
* nsIWebShell                [http://lxr.mozilla.org/mozilla/source/webshell/public/nsIWebShell.h#75 LXR]
* nsIWebShellContainer        [http://lxr.mozilla.org/mozilla/source/webshell/public/nsIWebShell.h#66 LXR]
* nsIWebShellServices        [http://lxr.mozilla.org/mozilla/source/webshell/public/nsIWebShellServices.h#52 LXR]
* nsILinkHandler              [http://lxr.mozilla.org/mozilla/source/webshell/public/nsILinkHandler.h#70 LXR]
* nsIClipboardCommands (why?) [http://lxr.mozilla.org/mozilla/source/webshell/public/nsIClipboardCommands.idl#42 LXR]
Docshell:
* nsIDocShell                [http://lxr.mozilla.org/mozilla/source/docshell/base/nsIDocShell.idl#68 LXR]
* nsIDocShellTreeItem        [http://lxr.mozilla.org/mozilla/source/docshell/base/nsIDocShellTreeItem.idl#45 LXR]
* nsIDocShellTreeNode        [http://lxr.mozilla.org/mozilla/source/docshell/base/nsIDocShellTreeNode.idl#44 LXR]
* nsIDocShellHistory          [http://lxr.mozilla.org/mozilla/source/docshell/base/nsIDocShellHistory.idl#42 LXR]
* nsIWebNavigation            [http://lxr.mozilla.org/mozilla/source/docshell/base/nsIWebNavigation.idl#42 LXR]
* nsIBaseWindow              [http://lxr.mozilla.org/mozilla/source/widget/public/nsIBaseWindow.idl#51 LXR]
* nsIScrollable              [http://lxr.mozilla.org/mozilla/source/docshell/base/nsIScrollable.idl#42 LXR]
* nsITextScroll              [http://lxr.mozilla.org/mozilla/source/docshell/base/nsITextScroll.idl#43 LXR]
* nsIDocCharset              [http://lxr.mozilla.org/mozilla/source/intl/chardet/public/nsIDocCharset.idl#41 LXR]
* nsIContentViewerContainer  [http://lxr.mozilla.org/mozilla/source/webshell/public/nsIContentViewerContainer.idl#43 LXR]
* nsIInterfaceRequestor      [http://lxr.mozilla.org/mozilla/source/xpcom/base/nsIInterfaceRequestor.idl#42 LXR]
* nsIScriptGlobalObjectOwner  [http://lxr.mozilla.org/mozilla/source/dom/public/nsIScriptGlobalObjectOwner.h#50 LXR]
* nsIRefreshURI              [http://lxr.mozilla.org/mozilla/source/webshell/public/nsIRefreshURI.idl#43 LXR]
* nsIWebProgressListener      [http://lxr.mozilla.org/mozilla/source/uriloader/base/nsIWebProgressListener.idl#47 LXR]
* nsIEditorDocShell          [http://lxr.mozilla.org/mozilla/source/docshell/base/nsIEditorDocShell.idl#45 LXR]
* nsIWebPageDescriptor        [http://lxr.mozilla.org/mozilla/source/docshell/base/nsIWebPageDescriptor.idl#38 LXR]
In my view, nsIDocShellTree* and nsIWebShellContainer should all be merged into a single "tree node" interface.  nsIWebShell should merge into nsIDocShell.  nsILinkHandler, not sure.  nsIContentViewerContainer and nsIScriptGlobalObjectOwner, do we really need those?  nsIRefreshURI is probably something to merge into nsIDocShell (or even nsIWebNavigation?).  nsIEditorDocshell also doesn't really need to be a separate interface.
Then again, do we want to just dump all sorts of stuff onto nsIDocShell?  Not sure about that.  Maybe we should look at who uses nsIDocShell and these other interfaces and why?

Revision as of 04:44, 9 October 2005