Revising nsIChannel to allow for overlapped i/o. This consists of three parts:
1. Factoring nsIChannel into a protocol specific part, the nsIChannel, and a socket specific, the nsITransport.
2. Derive the nsIChannel from a nsIRequest.
2. Changes the notification system from necko and the URILoader to pass the nsIRequest interface instead of nsIChannel interface.
This goal stems from wanting to be able to have active AsyncRead and AsyncWrite operations on nsSocketTransport.
This is desired because it would greatly simplify the task of maintaining persistent/reusable socket connections
for FTP, HTTP, and Imap (and potentially other protocols). The problem with the existing nsIChannel interface is
that it does not allow one to selectively suspend just one of the read or write operations while keeping the other active.
r=darin@netscape.comsr=rpotts@netscape.com
git-svn-id: svn://10.0.0.236/trunk@87587 18797224-902f-48f8-a5cc-f745e15eee43
1. Factoring nsIChannel into a protocol specific part, the nsIChannel, and a socket specific, the nsITransport.
2. Derive the nsIChannel from a nsIRequest.
2. Changes the notification system from necko and the URILoader to pass the nsIRequest interface instead of nsIChannel interface.
This goal stems from wanting to be able to have active AsyncRead and AsyncWrite operations on nsSocketTransport.
This is desired because it would greatly simplify the task of maintaining persistent/reusable socket connections
for FTP, HTTP, and Imap (and potentially other protocols). The problem with the existing nsIChannel interface is
that it does not allow one to selectively suspend just one of the read or write operations while keeping the other active.
The full details of the change on written up in the netlib newsgroup.
r=darin@netscape.comsr=rpotts@netscape.com
git-svn-id: svn://10.0.0.236/trunk@86717 18797224-902f-48f8-a5cc-f745e15eee43
and a docshell load tye. Unify nsIURILoadCommand and nsIDocShellLoadType enums so they
can be treated as the same type. This allows the uriloader to pass the correct load info
from the docshell that originates the load over to the docshell that actually
ends up loading the url.
r=radha, sr=rpotts
git-svn-id: svn://10.0.0.236/trunk@80964 18797224-902f-48f8-a5cc-f745e15eee43
chrome window instead of with the content window. And the window sizes were coming from the
hidden window instead of the parent window the url originated from.
r=travis
a=jevering
git-svn-id: svn://10.0.0.236/trunk@62463 18797224-902f-48f8-a5cc-f745e15eee43
add get content listener parent and load cookie attributes to nsIURIContentListener
Bug #21173 --> set the redirected flag on the channel if we are going to redirect the url. Add load cookie
support.
build nsDocLoader in the uriloader.
r=travis
git-svn-id: svn://10.0.0.236/trunk@59159 18797224-902f-48f8-a5cc-f745e15eee43
the unknown content handler dialog. we should only be bringing up the compose window =)
r=sspitzer
git-svn-id: svn://10.0.0.236/trunk@58039 18797224-902f-48f8-a5cc-f745e15eee43
several fields from OpenURI interface and allows us to remove the private
post data interface. Now the nsIURILoader interface doesn't need to take
all of the arguments necessary to create a channel.
r=rpotts.
git-svn-id: svn://10.0.0.236/trunk@58022 18797224-902f-48f8-a5cc-f745e15eee43
When creating the channel, if the uri load command is viewBackground then set the load flag
on the channel appropriately.
git-svn-id: svn://10.0.0.236/trunk@55555 18797224-902f-48f8-a5cc-f745e15eee43
// to distinguish between incoming urls that are a result of user
// clicks vs. normal views, view source and requires new window
nsIURIContentListener.idl--> doContent and canHandleContent now take a nsIURILoadCommand enum
nsURILoader.cpp --> changes to account for load command enum.
AsyncRead pass in the window context as the url context
(waterson will need this for his chrome cache work)
if we can't find a content handler for the content then go
back to the original window that loaded the url and force
them to handle the content...this is a HACK to force us to run
through the old code path for handling unknown content types
until the new version is online.
r=travis
git-svn-id: svn://10.0.0.236/trunk@55041 18797224-902f-48f8-a5cc-f745e15eee43
removed content listener and progress sink interfaces from
OpenURI and friends. Instead, pass in a nsISupports window
context. We can use the requestor interface to ask the
window context for the content listener and progress sink.
This reduced the number of arguments to OpenURI by one.
And eventually we'll query the window context for a
docshell / webshell interface which we could pass around.
r=travis
git-svn-id: svn://10.0.0.236/trunk@54577 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 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
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