DocShell: Difference between revisions
No edit summary |
|||
Line 55: | Line 55: | ||
== Bugs that could need some Docshell cleanup [#bugs] == | == Bugs that could need some Docshell cleanup [#bugs] == | ||
* [ | * [https://bugzilla.mozilla.org/show_bug.cgi?id=249751 bug 249751] Links whose onclick closes the window fail to trigger link | ||
* [ | * [https://bugzilla.mozilla.org/show_bug.cgi?id=84833 bug 84833] Calling self.close() right after calling submit() cancels submission | ||
== Current plans for docshell [#plans] == | == Current plans for docshell [#plans] == |
Revision as of 02:56, 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]
- bug 249751 Links whose onclick closes the window fail to trigger link
- bug 84833 Calling self.close() right after calling submit() cancels submission
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