invoke the uri loader instead of opening the document ourselves.
Various changes for uri dispatching....
r=travis
git-svn-id: svn://10.0.0.236/trunk@53853 18797224-902f-48f8-a5cc-f745e15eee43
CanHandleContent now has an out parameter for desired content type.
Minor re-write of uri loder logic to incorporate stream conversion. If the content listener passes back
a desired content type that is different from the content type that we asked it to handle, we'll
automatically invoke a stream converter. This allows a doc shell which wants to handle say message/rfc822
to request that content be in the form of text/xul (i.e. if it was presenting the content).
git-svn-id: svn://10.0.0.236/trunk@53798 18797224-902f-48f8-a5cc-f745e15eee43
Revamp the uri loader to excusively use AsyncRead instead of AsyncOpen and AsyncRead. With these changes,
we now only need to add the ability to retarget to our protocol channels instead of requiring both
retargeting and AsyncOpen support.
In order to do this, the DocumentOpenInfo object needed to become a nsIStreamListener instead of just
a stream observer.
git-svn-id: svn://10.0.0.236/trunk@53544 18797224-902f-48f8-a5cc-f745e15eee43
Clean up OpenURI api. get rid of the verb, the channel context and the loadgroup as required arguments
to OpenURI.
Add nsUriLoaderEventSinkGetter class. Many method signatures
changed to match the changes to nsIURILoader::OpenURI.
git-svn-id: svn://10.0.0.236/trunk@53074 18797224-902f-48f8-a5cc-f745e15eee43
Clean up OpenURI api. get rid of the verb, the channel context and the loadgroup as required arguments
to OpenURI.
Add the notion of a open uri context as an in and an out parameter. The open uri context is a cookie which
the caller can later give back to the uri loader when running another url in the same context. It's an ISupports
right now and the type should be opaque to the caller.
Don't require the caller to pass in an event sink getter. We can generate this for them. Do give them the ability
to pass in a nsIProgressEventSink. Note: this parameter is actually going to get changed into a nsIProgressListener
real soon as well. So don't get to used to it.
git-svn-id: svn://10.0.0.236/trunk@53073 18797224-902f-48f8-a5cc-f745e15eee43
GetProtcocolHandler needs to pass in the uri we are trying to open so the
listener can pick an appropriate p.h. based on the protocol of the uri. (if
they so choose).
git-svn-id: svn://10.0.0.236/trunk@52885 18797224-902f-48f8-a5cc-f745e15eee43
1) add OpenURIVia support.
2) reimplent DispatchContent so we ask the listener if it can handle the content. Then when (if) we find
a content listener that can handle it, call DoContent.
3) if we can't find a content listener, go to the registry and try to find a registered content handler.
This part isn't finished as eventually i need to be going to the category manager instead of forming
the progid for the content handler myself.
git-svn-id: svn://10.0.0.236/trunk@52884 18797224-902f-48f8-a5cc-f745e15eee43
Add notion of CanHandleContent. This is supposed to be a light weight method for the implementor
such that the uri loader can ask right off the top if the listener can handle a particular content
type. If it can, then later on, the uir loader may call DoContent to actually handle it.
git-svn-id: svn://10.0.0.236/trunk@52882 18797224-902f-48f8-a5cc-f745e15eee43
remove CanHandleConent. I don't think we need this. Also remove notion of getting a parent
content handler. This doesn't make sense anymore for how I'm defining a content handler.
Added progid prefix for content handler.
git-svn-id: svn://10.0.0.236/trunk@52880 18797224-902f-48f8-a5cc-f745e15eee43
define and implement nsDocumentOpenInfo. Implement uri loader::OpenURI. This is the first pass at
my implementation it isn't complete and it doesn't use the registry for getting
protocol handlers and content handlers yet...but it's a start
git-svn-id: svn://10.0.0.236/trunk@52849 18797224-902f-48f8-a5cc-f745e15eee43
expanded OpenURI interface to take all the required arguments we need in order to really open the uri.
This includes adding the command, window target, event sink getter, load group and channel context.
Added dispatchContent method which is used by the doc open info's to talk back to the uri loader.
DispatchContent takes an opened channel and the uri content listener.
git-svn-id: svn://10.0.0.236/trunk@52847 18797224-902f-48f8-a5cc-f745e15eee43
doContent now returns a boolean called abortProcess. if the listener wants to handle the content without
returning a stream listener, i.e. it wants the uri loader to stop doing anything else with this content,
then it returns true for abort process.
git-svn-id: svn://10.0.0.236/trunk@52846 18797224-902f-48f8-a5cc-f745e15eee43
channel to go away after we load the url instead of making it stick around until the next url comes in (that's
when we used to get rid of the previous channel).
r=rpotts.
git-svn-id: svn://10.0.0.236/trunk@48513 18797224-902f-48f8-a5cc-f745e15eee43