Bug 1246778 - dont loop in nshttpconnection during shutdown r=dragana

This commit is contained in:
Patrick McManus 2016-02-08 17:21:43 -05:00
parent 8607044dc5
commit 5b5f27011a
3 changed files with 8 additions and 6 deletions

View File

@ -1647,7 +1647,7 @@ nsHttpConnection::OnSocketWritable()
again = false;
}
// write more to the socket until error or end-of-request...
} while (again);
} while (again && gHttpHandler->Active());
return rv;
}
@ -1790,7 +1790,7 @@ nsHttpConnection::OnSocketReadable()
}
}
// read more from the socket until error...
} while (again);
} while (again && gHttpHandler->Active());
return rv;
}

View File

@ -176,10 +176,10 @@ nsHttpHandler::nsHttpHandler()
, mDoNotTrackEnabled(false)
, mSafeHintEnabled(false)
, mParentalControlEnabled(false)
, mHandlerActive(false)
, mTelemetryEnabled(false)
, mAllowExperiments(true)
, mDebugObservations(false)
, mHandlerActive(false)
, mEnableSpdy(false)
, mSpdyV31(true)
, mHttp2Enabled(true)
@ -247,6 +247,7 @@ nsHttpHandler::Init()
nsresult rv;
LOG(("nsHttpHandler::Init\n"));
MOZ_ASSERT(NS_IsMainThread());
rv = nsHttp::CreateAtomTable();
if (NS_FAILED(rv))
@ -2041,6 +2042,7 @@ nsHttpHandler::Observe(nsISupports *subject,
const char *topic,
const char16_t *data)
{
MOZ_ASSERT(NS_IsMainThread());
LOG(("nsHttpHandler::Observe [topic=\"%s\"]\n", topic));
if (!strcmp(topic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID)) {

View File

@ -479,6 +479,9 @@ private:
bool mSafeHintEnabled;
bool mParentalControlEnabled;
// true in between init and shutdown states
Atomic<bool, Relaxed> mHandlerActive;
// Whether telemetry is reported or not
uint32_t mTelemetryEnabled : 1;
@ -488,9 +491,6 @@ private:
// The value of 'hidden' network.http.debug-observations : 1;
uint32_t mDebugObservations : 1;
// true in between init and shutdown states
uint32_t mHandlerActive : 1;
uint32_t mEnableSpdy : 1;
uint32_t mSpdyV31 : 1;
uint32_t mHttp2Enabled : 1;