Index: net/http/http_stream_factory_impl_request.cc |
diff --git a/net/http/http_stream_factory_impl_request.cc b/net/http/http_stream_factory_impl_request.cc |
index 38bc03c6bfb917d2b8407576f61a2617cbf6e3ec..b4618926a05c761bd8c715c987c6f373b6b9766f 100644 |
--- a/net/http/http_stream_factory_impl_request.cc |
+++ b/net/http/http_stream_factory_impl_request.cc |
@@ -292,6 +292,13 @@ HttpStreamFactoryImpl::Request::RemoveRequestFromHttpPipeliningRequestMap() { |
} |
} |
+// TODO(jgraettinger): Currently, HttpStreamFactoryImpl::Job notifies a |
+// Request that the session is ready, which in turn notifies it's delegate, |
+// and then it notifies HttpStreamFactoryImpl so that /other/ requests may |
+// be woken, but only if the spdy_session is still okay. This is tough to grok. |
+// Instead, see if Job can notify HttpStreamFactoryImpl only, and have one |
+// path for notifying any requests waiting for the session (including the |
+// request which spawned it). |
void HttpStreamFactoryImpl::Request::OnNewSpdySessionReady( |
Job* job, |
scoped_ptr<HttpStream> stream, |
@@ -334,7 +341,7 @@ void HttpStreamFactoryImpl::Request::OnNewSpdySessionReady( |
stream.release()); |
} |
// |this| may be deleted after this point. |
- if (spdy_session) { |
+ if (spdy_session && spdy_session->IsAvailable()) { |
factory->OnNewSpdySessionReady(spdy_session, |
direct, |
used_ssl_config, |