summaryrefslogtreecommitdiff
path: root/chromium/net/http/http_stream_factory_job_controller.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-24 11:40:17 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-24 12:42:11 +0000
commit5d87695f37678f96492b258bbab36486c59866b4 (patch)
treebe9783bbaf04fb930c4d74ca9c00b5e7954c8bc6 /chromium/net/http/http_stream_factory_job_controller.cc
parent6c11fb357ec39bf087b8b632e2b1e375aef1b38b (diff)
downloadqtwebengine-chromium-5d87695f37678f96492b258bbab36486c59866b4.tar.gz
BASELINE: Update Chromium to 75.0.3770.56
Change-Id: I86d2007fd27a45d5797eee06f4c9369b8b50ac4f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/net/http/http_stream_factory_job_controller.cc')
-rw-r--r--chromium/net/http/http_stream_factory_job_controller.cc139
1 files changed, 6 insertions, 133 deletions
diff --git a/chromium/net/http/http_stream_factory_job_controller.cc b/chromium/net/http/http_stream_factory_job_controller.cc
index 7c53ba12c9f..e1ce6fdda9d 100644
--- a/chromium/net/http/http_stream_factory_job_controller.cc
+++ b/chromium/net/http/http_stream_factory_job_controller.cc
@@ -183,7 +183,6 @@ LoadState HttpStreamFactory::JobController::GetLoadState() const {
void HttpStreamFactory::JobController::OnRequestComplete() {
DCHECK(request_);
- RemoveRequestFromSpdySessionRequestMap();
CancelJobs();
request_ = nullptr;
if (bound_job_) {
@@ -212,40 +211,6 @@ void HttpStreamFactory::JobController::SetPriority(RequestPriority priority) {
}
}
-void HttpStreamFactory::JobController::OnStreamReadyOnPooledConnection(
- const SSLConfig& used_ssl_config,
- const ProxyInfo& proxy_info,
- std::unique_ptr<HttpStream> stream) {
- DCHECK(request_->completed());
- DCHECK(!is_websocket_);
- DCHECK_EQ(HttpStreamRequest::HTTP_STREAM, request_->stream_type());
-
- main_job_.reset();
- alternative_job_.reset();
- ResetErrorStatusForJobs();
-
- factory_->OnStreamReady(proxy_info, request_info_.privacy_mode);
-
- delegate_->OnStreamReady(used_ssl_config, proxy_info, std::move(stream));
-}
-
-void HttpStreamFactory::JobController::
- OnBidirectionalStreamImplReadyOnPooledConnection(
- const SSLConfig& used_ssl_config,
- const ProxyInfo& used_proxy_info,
- std::unique_ptr<BidirectionalStreamImpl> stream) {
- DCHECK(request_->completed());
- DCHECK(!is_websocket_);
- DCHECK_EQ(HttpStreamRequest::BIDIRECTIONAL_STREAM, request_->stream_type());
-
- main_job_.reset();
- alternative_job_.reset();
- ResetErrorStatusForJobs();
-
- delegate_->OnBidirectionalStreamImplReady(used_ssl_config, used_proxy_info,
- std::move(stream));
-}
-
void HttpStreamFactory::JobController::OnStreamReady(
Job* job,
const SSLConfig& used_ssl_config) {
@@ -384,7 +349,8 @@ void HttpStreamFactory::JobController::OnStreamFailed(
RunLoop(status);
return;
}
- delegate_->OnStreamFailed(status, *job->net_error_details(), used_ssl_config);
+ delegate_->OnStreamFailed(status, *job->net_error_details(), used_ssl_config,
+ job->proxy_info());
}
void HttpStreamFactory::JobController::OnFailedOnDefaultNetwork(Job* job) {
@@ -487,69 +453,6 @@ bool HttpStreamFactory::JobController::OnInitConnection(
request_info_.privacy_mode);
}
-void HttpStreamFactory::JobController::OnNewSpdySessionReady(
- Job* job,
- const base::WeakPtr<SpdySession>& spdy_session) {
- DCHECK(job);
- DCHECK(job->using_spdy());
- DCHECK(!is_preconnect_);
-
- bool is_job_orphaned = IsJobOrphaned(job);
-
- // Cache these values in case the job gets deleted.
- const SSLConfig used_ssl_config = job->server_ssl_config();
- const ProxyInfo used_proxy_info = job->proxy_info();
- const bool was_alpn_negotiated = job->was_alpn_negotiated();
- const NextProto negotiated_protocol = job->negotiated_protocol();
- const bool using_spdy = job->using_spdy();
- const NetLogSource source_dependency = job->net_log().source();
-
- // Cache this so we can still use it if the JobController is deleted.
- SpdySessionPool* spdy_session_pool = session_->spdy_session_pool();
-
- // Notify |request_|.
- if (!is_preconnect_ && !is_job_orphaned) {
-
- DCHECK(request_);
-
- // The first case is the usual case.
- if (!job_bound_) {
- BindJob(job);
- }
-
- MarkRequestComplete(was_alpn_negotiated, negotiated_protocol, using_spdy);
-
- if (is_websocket_) {
- // TODO(bnc): Re-instate this code when WebSockets over HTTP/2 is
- // implemented. https://crbug.com/801564.
- NOTREACHED();
- } else if (job->stream_type() == HttpStreamRequest::BIDIRECTIONAL_STREAM) {
- std::unique_ptr<BidirectionalStreamImpl> bidirectional_stream_impl =
- job->ReleaseBidirectionalStream();
- DCHECK(bidirectional_stream_impl);
- delegate_->OnBidirectionalStreamImplReady(
- used_ssl_config, used_proxy_info,
- std::move(bidirectional_stream_impl));
- } else {
- std::unique_ptr<HttpStream> stream = job->ReleaseStream();
- DCHECK(stream);
- delegate_->OnStreamReady(used_ssl_config, used_proxy_info,
- std::move(stream));
- }
- }
-
- // Notify other requests that have the same SpdySessionKey.
- // |request_| and |bound_job_| might be deleted already.
- if (spdy_session && spdy_session->IsAvailable()) {
- spdy_session_pool->OnNewSpdySessionReady(
- spdy_session, used_ssl_config, used_proxy_info, was_alpn_negotiated,
- negotiated_protocol, using_spdy, source_dependency);
- }
- if (is_job_orphaned) {
- OnOrphanedJobComplete(job);
- }
-}
-
void HttpStreamFactory::JobController::OnPreconnectsComplete(Job* job) {
DCHECK_EQ(main_job_.get(), job);
main_job_.reset();
@@ -660,35 +563,6 @@ bool HttpStreamFactory::JobController::ShouldWait(Job* job) {
return true;
}
-void HttpStreamFactory::JobController::SetSpdySessionKey(
- Job* job,
- const SpdySessionKey& spdy_session_key) {
- DCHECK(!job->using_quic());
-
- if (is_preconnect_ || IsJobOrphaned(job))
- return;
-
- session_->spdy_session_pool()->AddRequestToSpdySessionRequestMap(
- spdy_session_key, request_);
-}
-
-void HttpStreamFactory::JobController::
- RemoveRequestFromSpdySessionRequestMapForJob(Job* job) {
- DCHECK(!job->using_quic());
-
- if (is_preconnect_ || IsJobOrphaned(job))
- return;
-
- RemoveRequestFromSpdySessionRequestMap();
-}
-
-void HttpStreamFactory::JobController::
- RemoveRequestFromSpdySessionRequestMap() {
- DCHECK(request_);
- session_->spdy_session_pool()->RemoveRequestFromSpdySessionRequestMap(
- request_);
-}
-
const NetLogWithSource* HttpStreamFactory::JobController::GetNetLog() const {
return &net_log_;
}
@@ -804,7 +678,8 @@ int HttpStreamFactory::JobController::DoResolveProxyComplete(int rv) {
ProxyServer::SCHEME_HTTP | ProxyServer::SCHEME_HTTPS |
ProxyServer::SCHEME_SOCKS4 |
ProxyServer::SCHEME_SOCKS5;
- if (session_->IsQuicEnabled())
+ // WebSockets is not supported over QUIC.
+ if (session_->IsQuicEnabled() && !is_websocket_)
supported_proxies |= ProxyServer::SCHEME_QUIC;
proxy_info_.RemoveProxiesWithoutScheme(supported_proxies);
@@ -944,7 +819,6 @@ void HttpStreamFactory::JobController::CancelJobs() {
void HttpStreamFactory::JobController::OrphanUnboundJob() {
DCHECK(request_);
DCHECK(bound_job_);
- RemoveRequestFromSpdySessionRequestMap();
if (bound_job_->job_type() == MAIN && alternative_job_) {
DCHECK(!is_websocket_);
@@ -1081,7 +955,8 @@ void HttpStreamFactory::JobController::MaybeNotifyFactoryOfCompletion() {
void HttpStreamFactory::JobController::NotifyRequestFailed(int rv) {
if (!request_)
return;
- delegate_->OnStreamFailed(rv, NetErrorDetails(), server_ssl_config_);
+ delegate_->OnStreamFailed(rv, NetErrorDetails(), server_ssl_config_,
+ ProxyInfo());
}
GURL HttpStreamFactory::JobController::ApplyHostMappingRules(
@@ -1367,8 +1242,6 @@ int HttpStreamFactory::JobController::ReconsiderProxyAfterError(Job* job,
return error;
}
- if (!job->using_quic())
- RemoveRequestFromSpdySessionRequestMap();
// Abandon all Jobs and start over.
job_bound_ = false;
bound_job_ = nullptr;