Bug 1067346 - Fix "apply conversion" when channel is diverted to parent. r=jduell

This commit is contained in:
Dragana Damjanovic 2014-09-16 06:30:00 -04:00
parent 47710df06a
commit 7adc5b3ce4
2 changed files with 12 additions and 9 deletions

View File

@ -611,9 +611,11 @@ HttpBaseChannel::DoApplyContentConversions(nsIStreamListener* aNextListener,
nsISupports *aCtxt)
{
*aNewNextListener = nullptr;
nsCOMPtr<nsIStreamListener> nextListener = aNextListener;
if (!mResponseHead)
if (!mResponseHead || ! aNextListener) {
return NS_OK;
}
nsCOMPtr<nsIStreamListener> nextListener = aNextListener;
LOG(("HttpBaseChannel::DoApplyContentConversions [this=%p]\n", this));
@ -681,7 +683,7 @@ HttpBaseChannel::DoApplyContentConversions(nsIStreamListener* aNextListener,
}
}
*aNewNextListener = nextListener;
NS_ADDREF(*aNewNextListener);
NS_IF_ADDREF(*aNewNextListener);
return NS_OK;
}

View File

@ -326,17 +326,21 @@ HttpChannelChild::OnStartRequest(const nsresult& channelStatus,
return;
}
if (mResponseHead)
SetCookie(mResponseHead->PeekHeader(nsHttp::Set_Cookie));
mSelfAddr = selfAddr;
mPeerAddr = peerAddr;
if (mDivertingToParent) {
mListener = nullptr;
mListenerContext = nullptr;
if (mLoadGroup) {
mLoadGroup->RemoveRequest(this, nullptr, mStatus);
}
return;
}
if (mResponseHead)
SetCookie(mResponseHead->PeekHeader(nsHttp::Set_Cookie));
nsCOMPtr<nsIStreamListener> listener;
rv = DoApplyContentConversions(mListener, getter_AddRefs(listener),
mListenerContext);
@ -345,9 +349,6 @@ HttpChannelChild::OnStartRequest(const nsresult& channelStatus,
} else if (listener) {
mListener = listener;
}
mSelfAddr = selfAddr;
mPeerAddr = peerAddr;
}
class TransportAndDataEvent : public ChannelEvent