| Index: net/quic/quic_stream_factory.cc
|
| diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
|
| index 03fb2cc213e8d2904166cd9a5e9b465c21ad5c01..9f633d5aa8f12b4d4ea34a1ef339f8b598a6ed21 100644
|
| --- a/net/quic/quic_stream_factory.cc
|
| +++ b/net/quic/quic_stream_factory.cc
|
| @@ -61,11 +61,6 @@
|
| #include "base/cpu.h"
|
| #endif
|
|
|
| -#if BUILDFLAG(ENABLE_BIDIRECTIONAL_STREAM)
|
| -#include "net/http/bidirectional_stream_job.h"
|
| -#include "net/quic/bidirectional_stream_quic_impl.h"
|
| -#endif
|
| -
|
| using std::min;
|
| using NetworkHandle = net::NetworkChangeNotifier::NetworkHandle;
|
|
|
| @@ -518,11 +513,11 @@
|
| base::StringPiece method,
|
| const BoundNetLog& net_log,
|
| const CompletionCallback& callback) {
|
| + DCHECK(!stream_);
|
| DCHECK(callback_.is_null());
|
| DCHECK(factory_);
|
| origin_host_ = url.host();
|
| privacy_mode_ = privacy_mode;
|
| -
|
| int rv = factory_->Create(host_port_pair, privacy_mode, cert_verify_flags,
|
| url, method, net_log, this);
|
| if (rv == ERR_IO_PENDING) {
|
| @@ -533,13 +528,13 @@
|
| factory_ = nullptr;
|
| }
|
| if (rv == OK)
|
| - DCHECK(session_);
|
| + DCHECK(stream_);
|
| return rv;
|
| }
|
|
|
| -void QuicStreamRequest::SetSession(QuicChromiumClientSession* session) {
|
| - DCHECK(session);
|
| - session_ = session->GetWeakPtr();
|
| +void QuicStreamRequest::set_stream(scoped_ptr<QuicHttpStream> stream) {
|
| + DCHECK(stream);
|
| + stream_ = std::move(stream);
|
| }
|
|
|
| void QuicStreamRequest::OnRequestComplete(int rv) {
|
| @@ -554,20 +549,10 @@
|
| QuicServerId(host_port_pair_, privacy_mode_));
|
| }
|
|
|
| -scoped_ptr<QuicHttpStream> QuicStreamRequest::CreateStream() {
|
| - if (!session_)
|
| - return nullptr;
|
| - return make_scoped_ptr(new QuicHttpStream(session_));
|
| -}
|
| -
|
| -#if BUILDFLAG(ENABLE_BIDIRECTIONAL_STREAM)
|
| -scoped_ptr<BidirectionalStreamJob>
|
| -QuicStreamRequest::CreateBidirectionalStreamJob() {
|
| - if (!session_)
|
| - return nullptr;
|
| - return make_scoped_ptr(new BidirectionalStreamQuicImpl(session_));
|
| -}
|
| -#endif
|
| +scoped_ptr<QuicHttpStream> QuicStreamRequest::ReleaseStream() {
|
| + DCHECK(stream_);
|
| + return std::move(stream_);
|
| +}
|
|
|
| QuicStreamFactory::QuicStreamFactory(
|
| HostResolver* host_resolver,
|
| @@ -795,7 +780,7 @@
|
| static_cast<QuicChromiumClientSession*>(promised->session());
|
| DCHECK(session);
|
| if (session->server_id().privacy_mode() == privacy_mode) {
|
| - request->SetSession(session);
|
| + request->set_stream(CreateFromSession(session));
|
| ++num_push_streams_created_;
|
| return OK;
|
| }
|
| @@ -813,7 +798,7 @@
|
| QuicChromiumClientSession* session = it->second;
|
| if (!session->CanPool(url.host(), privacy_mode))
|
| return ERR_ALTERNATIVE_CERT_NOT_VALID_FOR_ORIGIN;
|
| - request->SetSession(session);
|
| + request->set_stream(CreateFromSession(session));
|
| return OK;
|
| }
|
| }
|
| @@ -869,7 +854,7 @@
|
| QuicChromiumClientSession* session = it->second;
|
| if (!session->CanPool(url.host(), privacy_mode))
|
| return ERR_ALTERNATIVE_CERT_NOT_VALID_FOR_ORIGIN;
|
| - request->SetSession(session);
|
| + request->set_stream(CreateFromSession(session));
|
| }
|
| return rv;
|
| }
|
| @@ -947,7 +932,7 @@
|
| request->OnRequestComplete(ERR_ALTERNATIVE_CERT_NOT_VALID_FOR_ORIGIN);
|
| continue;
|
| }
|
| - request->SetSession(session);
|
| + request->set_stream(CreateFromSession(session));
|
| ++request_it;
|
| }
|
| }
|
|
|