DocShell

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