bug 378637 part 10 - implement nsAHttpTransaction::ConnectionInfo r=hurley

--HG--
extra : rebase_source : b4b955c652b14e750013130428b71e2e308fead3
This commit is contained in:
Patrick McManus 2014-04-20 12:01:35 -04:00
Родитель 7df71d973e
Коммит b48b19cab3
12 изменённых файлов: 90 добавлений и 3 удалений

Просмотреть файл

@ -191,6 +191,19 @@ Http2PushTransactionBuffer::OnTransportStatus(nsITransport* transport,
{ {
} }
nsHttpConnectionInfo *
Http2PushTransactionBuffer::ConnectionInfo()
{
if (!mPushStream) {
return nullptr;
}
if (!mPushStream->Transaction()) {
return nullptr;
}
MOZ_ASSERT(mPushStream->Transaction() != this);
return mPushStream->Transaction()->ConnectionInfo();
}
bool bool
Http2PushTransactionBuffer::IsDone() Http2PushTransactionBuffer::IsDone()
{ {

Просмотреть файл

@ -2553,6 +2553,14 @@ Http2Session::Close(nsresult aReason)
mSegmentWriter = nullptr; mSegmentWriter = nullptr;
} }
nsHttpConnectionInfo *
Http2Session::ConnectionInfo()
{
nsRefPtr<nsHttpConnectionInfo> ci;
GetConnectionInfo(getter_AddRefs(ci));
return ci.get();
}
void void
Http2Session::CloseTransaction(nsAHttpTransaction *aTransaction, Http2Session::CloseTransaction(nsAHttpTransaction *aTransaction,
nsresult aResult) nsresult aResult)

Просмотреть файл

@ -161,6 +161,12 @@ NullHttpTransaction::Close(nsresult reason)
mIsDone = true; mIsDone = true;
} }
nsHttpConnectionInfo *
NullHttpTransaction::ConnectionInfo()
{
return mConnectionInfo;
}
nsresult nsresult
NullHttpTransaction::AddTransaction(nsAHttpTransaction *trans) NullHttpTransaction::AddTransaction(nsAHttpTransaction *trans)
{ {

Просмотреть файл

@ -32,8 +32,6 @@ public:
uint32_t caps); uint32_t caps);
~NullHttpTransaction(); ~NullHttpTransaction();
nsHttpConnectionInfo *ConnectionInfo() { return mConnectionInfo; }
// Overload of nsAHttpTransaction methods // Overload of nsAHttpTransaction methods
bool IsNullTransaction() MOZ_OVERRIDE MOZ_FINAL { return true; } bool IsNullTransaction() MOZ_OVERRIDE MOZ_FINAL { return true; }
bool ResponseTimeoutEnabled() const MOZ_OVERRIDE MOZ_FINAL {return true; } bool ResponseTimeoutEnabled() const MOZ_OVERRIDE MOZ_FINAL {return true; }

Просмотреть файл

@ -215,6 +215,19 @@ SpdyPush3TransactionBuffer::OnTransportStatus(nsITransport* transport,
{ {
} }
nsHttpConnectionInfo *
SpdyPush3TransactionBuffer::ConnectionInfo()
{
if (!mPushStream) {
return nullptr;
}
if (!mPushStream->Transaction()) {
return nullptr;
}
MOZ_ASSERT(mPushStream->Transaction() != this);
return mPushStream->Transaction()->ConnectionInfo();
}
bool bool
SpdyPush3TransactionBuffer::IsDone() SpdyPush3TransactionBuffer::IsDone()
{ {

Просмотреть файл

@ -213,6 +213,19 @@ SpdyPush31TransactionBuffer::OnTransportStatus(nsITransport* transport,
{ {
} }
nsHttpConnectionInfo *
SpdyPush31TransactionBuffer::ConnectionInfo()
{
if (!mPushStream) {
return nullptr;
}
if (!mPushStream->Transaction()) {
return nullptr;
}
MOZ_ASSERT(mPushStream->Transaction() != this);
return mPushStream->Transaction()->ConnectionInfo();
}
bool bool
SpdyPush31TransactionBuffer::IsDone() SpdyPush31TransactionBuffer::IsDone()
{ {

Просмотреть файл

@ -2210,6 +2210,14 @@ SpdySession3::Close(nsresult aReason)
mSegmentWriter = nullptr; mSegmentWriter = nullptr;
} }
nsHttpConnectionInfo *
SpdySession3::ConnectionInfo()
{
nsRefPtr<nsHttpConnectionInfo> ci;
GetConnectionInfo(getter_AddRefs(ci));
return ci.get();
}
void void
SpdySession3::CloseTransaction(nsAHttpTransaction *aTransaction, SpdySession3::CloseTransaction(nsAHttpTransaction *aTransaction,
nsresult aResult) nsresult aResult)

Просмотреть файл

@ -2344,6 +2344,14 @@ SpdySession31::Close(nsresult aReason)
mSegmentWriter = nullptr; mSegmentWriter = nullptr;
} }
nsHttpConnectionInfo *
SpdySession31::ConnectionInfo()
{
nsRefPtr<nsHttpConnectionInfo> ci;
GetConnectionInfo(getter_AddRefs(ci));
return ci.get();
}
void void
SpdySession31::CloseTransaction(nsAHttpTransaction *aTransaction, SpdySession31::CloseTransaction(nsAHttpTransaction *aTransaction,
nsresult aResult) nsresult aResult)

Просмотреть файл

@ -21,6 +21,7 @@ class nsAHttpSegmentWriter;
class nsHttpTransaction; class nsHttpTransaction;
class nsHttpPipeline; class nsHttpPipeline;
class nsHttpRequestHead; class nsHttpRequestHead;
class nsHttpConnectionInfo;
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// Abstract base class for a HTTP transaction: // Abstract base class for a HTTP transaction:
@ -132,6 +133,9 @@ public:
// return the load group connection information associated with the transaction // return the load group connection information associated with the transaction
virtual nsILoadGroupConnectionInfo *LoadGroupConnectionInfo() { return nullptr; } virtual nsILoadGroupConnectionInfo *LoadGroupConnectionInfo() { return nullptr; }
// return the connection information associated with the transaction
virtual nsHttpConnectionInfo *ConnectionInfo() = 0;
// The base definition of these is done in nsHttpTransaction.cpp // The base definition of these is done in nsHttpTransaction.cpp
virtual bool ResponseTimeoutEnabled() const; virtual bool ResponseTimeoutEnabled() const;
virtual PRIntervalTime ResponseTimeout(); virtual PRIntervalTime ResponseTimeout();
@ -174,6 +178,7 @@ public:
nsresult ReadSegments(nsAHttpSegmentReader *, uint32_t, uint32_t *); \ nsresult ReadSegments(nsAHttpSegmentReader *, uint32_t, uint32_t *); \
nsresult WriteSegments(nsAHttpSegmentWriter *, uint32_t, uint32_t *); \ nsresult WriteSegments(nsAHttpSegmentWriter *, uint32_t, uint32_t *); \
void Close(nsresult reason); \ void Close(nsresult reason); \
nsHttpConnectionInfo *ConnectionInfo(); \
void SetProxyConnectFailed(); \ void SetProxyConnectFailed(); \
nsHttpRequestHead *RequestHead(); \ nsHttpRequestHead *RequestHead(); \
uint32_t Http1xTransactionCount(); \ uint32_t Http1xTransactionCount(); \

Просмотреть файл

@ -529,6 +529,16 @@ nsHttpPipeline::OnTransportStatus(nsITransport* transport,
} }
} }
nsHttpConnectionInfo *
nsHttpPipeline::ConnectionInfo()
{
nsAHttpTransaction *trans = Request(0) ? Request(0) : Response(0);
if (!trans) {
return nullptr;
}
return trans->ConnectionInfo();
}
bool bool
nsHttpPipeline::IsDone() nsHttpPipeline::IsDone()
{ {

Просмотреть файл

@ -938,6 +938,12 @@ nsHttpTransaction::Close(nsresult reason)
"net::http::transaction"); "net::http::transaction");
} }
nsHttpConnectionInfo *
nsHttpTransaction::ConnectionInfo()
{
return mConnInfo;
}
nsresult nsresult
nsHttpTransaction::AddTransaction(nsAHttpTransaction *trans) nsHttpTransaction::AddTransaction(nsAHttpTransaction *trans)
{ {

Просмотреть файл

@ -86,7 +86,6 @@ public:
nsIAsyncInputStream **responseBody); nsIAsyncInputStream **responseBody);
// attributes // attributes
nsHttpConnectionInfo *ConnectionInfo() { return mConnInfo; }
nsHttpResponseHead *ResponseHead() { return mHaveAllHeaders ? mResponseHead : nullptr; } nsHttpResponseHead *ResponseHead() { return mHaveAllHeaders ? mResponseHead : nullptr; }
nsISupports *SecurityInfo() { return mSecurityInfo; } nsISupports *SecurityInfo() { return mSecurityInfo; }