DocShell: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 55: Line 55:
== Bugs that could need some Docshell cleanup [#bugs] ==
== Bugs that could need some Docshell cleanup [#bugs] ==


* http://bugzilla.mozilla.org/show_bug.cgi?id=249751
* [http://bugzilla.mozilla.org/show_bug.cgi?id=249751 bug 249751]
* http://bugzilla.mozilla.org/show_bug.cgi?id=84833
* [http://bugzilla.mozilla.org/show_bug.cgi?id=84833 bug 84833]


== Current plans for docshell [#plans] ==
== Current plans for docshell [#plans] ==

Revision as of 02:54, 25 November 2004

Docshell Documentation

The goal of this page is to serve as a dumping/organization ground for docshell docs. When someone finds out something, it should be added here in a reasonable way. By the time this gets unwieldy, hopefully we will have enough material for several actual docs on what docshell does and why.

Table of Contents

Some of these sections need writing, and we may need other sections... Feel free to rearrange as needed

  • About (What actually is docshell?)
  • [#interfaces Interfaces]
  • [#sh Session history] (needs work)
  • [#uriload URI loading] (needs work)
  • [#progress Progress notifications] (needs work)
  • [#bugs Bugs] (needs work)
  • [#plans Current Plans]

Interfaces Implemented by Docshell [#interfaces]

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?

Bugs that could need some Docshell cleanup [#bugs]

Current plans for docshell [#plans]

nsDocLoaderImpl (nsDocLoader.cpp will be merged into nsDocShell; or rather, nsDocShell will become a subclass of nsDocLoaderImpl (no bug filed yet)

nsWebShell should be merged into nsDocShell

bug 261086 - docshell does not need quite as many things in its GetInterface implementation