DocShell
Jump to navigation
Jump to search
Interfaces Implemented by Docshell
Docshell + webshell implement the following interfaces
Webshell:
- nsIWebShell LXR
- nsIWebShellContainer LXR
- nsIWebShellServices LXR
- nsILinkHandler LXR
- nsIClipboardCommands (why?) LXR
Docshell:
- nsIDocShell LXR
- nsIDocShellTreeItem LXR
- nsIDocShellTreeNode LXR
- nsIDocShellHistory LXR
- nsIWebNavigation LXR
- nsIBaseWindow LXR
- nsIScrollable LXR
- nsITextScroll LXR
- nsIDocCharset LXR
- nsIContentViewerContainer LXR
- nsIInterfaceRequestor LXR
- nsIScriptGlobalObjectOwner LXR
- nsIRefreshURI LXR
- nsIWebProgressListener LXR
- nsIEditorDocShell LXR
- nsIWebPageDescriptor 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?