|
|
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?
| |