diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-24 11:40:17 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-24 12:42:11 +0000 |
commit | 5d87695f37678f96492b258bbab36486c59866b4 (patch) | |
tree | be9783bbaf04fb930c4d74ca9c00b5e7954c8bc6 /chromium/net/http/http_stream_factory_job_controller.cc | |
parent | 6c11fb357ec39bf087b8b632e2b1e375aef1b38b (diff) | |
download | qtwebengine-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.cc | 139 |
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; |