How can we set headers?

How can we tell if a request was successul?
(nsIWebProgressListener?)

Split DOM.xs into separate files. I'd like to have ones
for Event, Node, HTMLElement.. (would break interface, though)

Make some methods more perlish. For example,
GetElementsByTagName returns a NodeList,
but it would be nicer if it was a list of Nodes
(or (HTML)Elements...) in list context.
Also, some method arguments could be made optional.

Figure out DOMException.
I'm not sure if DOMException is even relevant from C++,
as I think integers are always returned on failure.
(need to verify)
There isn't any error checking at the moment..

Wrap interfaces like a maniac.
nsIDOMSVG*, CSS*, XPath*, and XUL* anyone? Heh,
maybe those should wait till after I split DOM.xs apart.
Check out content/base/src/ns*.cpp and dom/src/base/ns*.cpp.
What is EventReceiver? WebProgressListener?

Can IInputStream be gotten from IDocShellTreeItem ?
# [note to self: embedding/6496.txt how to create StringInputStream,
#  though I think it's changed to ByteArrayInputStream now;
#  see embedding/6662.txt.]

Find a reference for different interfaces of each class
(DocumentEvent for Document, etc.), what interfaces are
valid to switch to with QueryInterface. It looks like I have
to scour Mozilla's .cpp files. I did
find . -name '*.cpp' -exec fgrep -H _MAP_ {} \;
which seems to kind of list QI-able interfaces.
See dom/src/base/nsDOMClassInfo.cpp.

Fill out missing documentation.
Document how to add this to a module using ExtUtils::Depends.

Tests and more examples....
