Bug 1416529. r=mcmanus, a=ritu

MozReview-Commit-ID: CD1l5vLB4yy

--HG--
extra : rebase_source : d74f8ca96dab4e0d25d79948fcddbf8dab98bb36
This commit is contained in:
Nicholas Hurley 2018-02-02 11:03:08 -08:00 committed by Roy Tam
commit b49b2afc58
3 changed files with 24 additions and 9 deletions

View file

@ -103,10 +103,20 @@ Http2Stream::Http2Stream(nsAHttpTransaction *httpTransaction,
Http2Stream::~Http2Stream()
{
ClearPushSource();
ClearTransactionsBlockedOnTunnel();
mStreamID = Http2Session::kDeadStreamID;
}
void
Http2Stream::ClearPushSource()
{
if (mPushSource) {
mPushSource->SetConsumerStream(nullptr);
mPushSource = nullptr;
}
}
// ReadSegments() is used to write data down the socket. Generally, HTTP
// request data is pulled from the approriate transaction and
// converted to HTTP/2 data. Sometimes control data like a window-update is
@ -1083,6 +1093,10 @@ Http2Stream::ConvertPushHeaders(Http2Decompressor *decompressor,
void
Http2Stream::Close(nsresult reason)
{
// In case we are connected to a push, make sure the push knows we are closed,
// so it doesn't try to give us any more DATA that comes on it after our close.
ClearPushSource();
mTransaction->Close(reason);
}