network/module/Makefile -
1. 310133 - Added nsIRefreshUrl.h to the list of exports. network/module/makefile.win - 1. 310133 - Added nsIRefreshUrl.h to the list of exports. network/module/nsIHttpUrl.h - 1. 310133 - Extended the nsIHttpUrl interface to include the AddMimeHeader() method which adds an http header to the url. network/module/nsHttpUrl.cpp - 310133 - 1. Added support for the AddMimeHeader() method so http urls can have headers added outside of the actual data retrieval in netlib. This method calls NET_ParseMimeHeader() directly. 2. Added a public member, a pointer to the netlib URL_Struct that was created for this nsHttpUrlImpl. This pointer is the link between netlib and the outside world; the adhesive agent between url structs and nsURLImpls. network/module/nsNetStream.h - 1. 310133 - Added a public memeber variable to nsConnectionInfo. It's a bool that tells us whether or not a redirect has occurred. network/module/nsNetStream.cpp - 1. 310133 - Added initialization (FALSE) of new redirect member. network/module/nsNetStubs.cpp - 1. 310133 - Implemented FE_SetRefreshURLTimer(). This function is called from NET_GetURL() when we recognize that we have a url to refresh. network/module/nsStubContext.cpp - 1. 310133 - Added check to see if we're redirecting in stub_complete() which gets called when a stream completes. If we are, we don't want to release/destroy the pConsumer, this will happen in nsNetService's bam_exit_routine(). network/module/nsNetService.cpp - 1. 310133 - added nsConnectionInfo->redirect check in bam_exit_routine() so we give the consumer a successful binding event if the consumer is still around. This is iffy. git-svn-id: svn://10.0.0.236/trunk@7956 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -123,7 +123,7 @@ nsNetlibService::nsNetlibService(nsINetContainerApplication *aContainerApp)
|
||||
NET_ChunkedDecoderStream);
|
||||
|
||||
mPollingTimer = nsnull;
|
||||
|
||||
|
||||
RL_Init();
|
||||
|
||||
mContainer = aContainerApp;
|
||||
@@ -493,10 +493,6 @@ void nsNetlibService::NetPollSocketsCallback(nsITimer* aTimer, void* aClosure)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
extern "C" {
|
||||
|
||||
static nsNetlibService *pNetlib = NULL;
|
||||
@@ -587,7 +583,18 @@ static void bam_exit_routine(URL_Struct *URL_s, int status, MWContext *window_id
|
||||
if (pConn->pConsumer) {
|
||||
nsAutoString status;
|
||||
|
||||
pConn->pConsumer->OnStopBinding(pConn->pURL, NS_BINDING_FAILED, status);
|
||||
/* If we were redirected, the Data Consumer will still be
|
||||
* around (not released in the stream completion routine.
|
||||
* In this case we want to notify the consumer that the
|
||||
* binding completed. This leaves a hole: when we're
|
||||
* redirected, and we're in this if statement because
|
||||
* the stream was never "competed". */
|
||||
if (pConn->redirect) {
|
||||
pConn->pConsumer->OnStopBinding(pConn->pURL, NS_BINDING_SUCCEEDED, status);
|
||||
} else {
|
||||
pConn->pConsumer->OnStopBinding(pConn->pURL, NS_BINDING_FAILED, status);
|
||||
}
|
||||
|
||||
pConn->pConsumer->Release();
|
||||
pConn->pConsumer = NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user