Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1242)

Unified Diff: net/quic/chromium/quic_stream_factory.cc

Issue 2334943002: Add a new QuicChromiumClientSession::Handle class (Closed)
Patch Set: fixes Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/chromium/quic_stream_factory.h ('k') | net/quic/chromium/quic_stream_factory_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/chromium/quic_stream_factory.cc
diff --git a/net/quic/chromium/quic_stream_factory.cc b/net/quic/chromium/quic_stream_factory.cc
index 61f79e0a5a2950db56e2a25fc78d12b0377add60..1dc3c599751ac4b3f50eefb8dff811469b8d48ee 100644
--- a/net/quic/chromium/quic_stream_factory.cc
+++ b/net/quic/chromium/quic_stream_factory.cc
@@ -607,9 +607,9 @@ int QuicStreamRequest::Request(const HostPortPair& destination,
return rv;
}
-void QuicStreamRequest::SetSession(QuicChromiumClientSession* session) {
- DCHECK(session);
- session_ = session->GetWeakPtr();
+void QuicStreamRequest::SetSession(
+ std::unique_ptr<QuicChromiumClientSession::Handle> session) {
+ session_ = move(session);
}
void QuicStreamRequest::OnRequestComplete(int rv) {
@@ -624,16 +624,19 @@ base::TimeDelta QuicStreamRequest::GetTimeDelayForWaitingJob() const {
}
std::unique_ptr<HttpStream> QuicStreamRequest::CreateStream() {
- if (!session_)
+ if (!session_ || !session_->IsConnected())
return nullptr;
- return base::MakeUnique<QuicHttpStream>(session_, http_server_properties_);
+
+ return base::MakeUnique<QuicHttpStream>(std::move(session_),
+ http_server_properties_);
}
std::unique_ptr<BidirectionalStreamImpl>
QuicStreamRequest::CreateBidirectionalStreamImpl() {
- if (!session_)
+ if (!session_ || !session_->IsConnected())
return nullptr;
- return base::MakeUnique<BidirectionalStreamQuicImpl>(session_);
+
+ return base::MakeUnique<BidirectionalStreamQuicImpl>(std::move(session_));
}
QuicStreamFactory::QuicStreamFactory(
@@ -874,7 +877,7 @@ int QuicStreamFactory::Create(const QuicServerId& server_id,
static_cast<QuicChromiumClientSession*>(promised->session());
DCHECK(session);
if (session->server_id().privacy_mode() == server_id.privacy_mode()) {
- request->SetSession(session);
+ request->SetSession(session->CreateHandle());
++num_push_streams_created_;
return OK;
}
@@ -890,7 +893,7 @@ int QuicStreamFactory::Create(const QuicServerId& server_id,
SessionMap::iterator it = active_sessions_.find(server_id);
if (it != active_sessions_.end()) {
QuicChromiumClientSession* session = it->second;
- request->SetSession(session);
+ request->SetSession(session->CreateHandle());
return OK;
}
}
@@ -915,7 +918,7 @@ int QuicStreamFactory::Create(const QuicServerId& server_id,
QuicChromiumClientSession* session = key_value.second;
if (destination.Equals(all_sessions_[session].destination()) &&
session->CanPool(server_id.host(), server_id.privacy_mode())) {
- request->SetSession(session);
+ request->SetSession(session->CreateHandle());
return OK;
}
}
@@ -949,7 +952,7 @@ int QuicStreamFactory::Create(const QuicServerId& server_id,
if (it == active_sessions_.end())
return ERR_QUIC_PROTOCOL_ERROR;
QuicChromiumClientSession* session = it->second;
- request->SetSession(session);
+ request->SetSession(session->CreateHandle());
}
return rv;
}
@@ -1014,7 +1017,7 @@ void QuicStreamFactory::OnJobComplete(Job* job, int rv) {
for (QuicStreamRequest* request : requests_iter->second) {
DCHECK(request->server_id() == server_id);
// Do not notify |request| yet.
- request->SetSession(session);
+ request->SetSession(session->CreateHandle());
}
}
}
« no previous file with comments | « net/quic/chromium/quic_stream_factory.h ('k') | net/quic/chromium/quic_stream_factory_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698