зеркало из https://github.com/mozilla/gecko-dev.git
e10s http: Document channels' cache descriptor causes hang on reloads r=honza
--HG-- branch : GECKO20b5pre_20100820_RELBRANCH
This commit is contained in:
Родитель
a2ca26e719
Коммит
9a698c4b42
|
@ -428,6 +428,7 @@ HttpChannelChild::OnStopRequest(const nsresult& statusCode)
|
|||
// We need to keep the document loading channel alive for further
|
||||
// communication, mainly for collecting a security state values.
|
||||
mKeptAlive = true;
|
||||
SendDocumentChannelCleanup();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -259,6 +259,16 @@ HttpChannelParent::RecvRedirect2Result(const nsresult& result,
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
HttpChannelParent::RecvDocumentChannelCleanup()
|
||||
{
|
||||
// We must clear the cache entry here, else we'll block other channels from
|
||||
// reading it if we've got it open for writing.
|
||||
mCacheDescriptor = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// nsIRequestObserver and nsIStreamListener methods equivalents
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
@ -109,6 +109,7 @@ protected:
|
|||
const PRInt32& low,
|
||||
const PRInt32& broken,
|
||||
const PRInt32& no);
|
||||
virtual bool RecvDocumentChannelCleanup();
|
||||
|
||||
virtual void ActorDestroy(ActorDestroyReason why);
|
||||
|
||||
|
|
|
@ -94,6 +94,11 @@ parent:
|
|||
// Reports approval/veto of redirect by child process redirect observers
|
||||
Redirect2Result(nsresult result, RequestHeaderTuples changedHeaders);
|
||||
|
||||
// For document loads we keep this protocol open after child's
|
||||
// OnStopRequest, and send this msg (instead of __delete__) to allow
|
||||
// partial cleanup on parent.
|
||||
DocumentChannelCleanup();
|
||||
|
||||
child:
|
||||
OnStartRequest(nsHttpResponseHead responseHead,
|
||||
PRBool useResponseHead,
|
||||
|
|
Загрузка…
Ссылка в новой задаче