| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_stream_factory_impl_job.h" | 5 #include "net/http/http_stream_factory_impl_job.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 554 CHECK_EQ(STATE_NONE, next_state_); | 554 CHECK_EQ(STATE_NONE, next_state_); |
| 555 next_state_ = STATE_START; | 555 next_state_ = STATE_START; |
| 556 int rv = RunLoop(OK); | 556 int rv = RunLoop(OK); |
| 557 DCHECK_EQ(ERR_IO_PENDING, rv); | 557 DCHECK_EQ(ERR_IO_PENDING, rv); |
| 558 return rv; | 558 return rv; |
| 559 } | 559 } |
| 560 | 560 |
| 561 int HttpStreamFactoryImpl::Job::DoStart() { | 561 int HttpStreamFactoryImpl::Job::DoStart() { |
| 562 int port = request_info_.url.EffectiveIntPort(); | 562 int port = request_info_.url.EffectiveIntPort(); |
| 563 origin_ = HostPortPair(request_info_.url.HostNoBrackets(), port); | 563 origin_ = HostPortPair(request_info_.url.HostNoBrackets(), port); |
| 564 origin_url_ = HttpStreamFactory::ApplyHostMappingRules( | 564 origin_url_ = stream_factory_->ApplyHostMappingRules( |
| 565 request_info_.url, &origin_); | 565 request_info_.url, &origin_); |
| 566 http_pipelining_key_.reset(new HttpPipelinedHost::Key(origin_)); | 566 http_pipelining_key_.reset(new HttpPipelinedHost::Key(origin_)); |
| 567 | 567 |
| 568 net_log_.BeginEvent(NetLog::TYPE_HTTP_STREAM_JOB, | 568 net_log_.BeginEvent(NetLog::TYPE_HTTP_STREAM_JOB, |
| 569 base::Bind(&NetLogHttpStreamJobCallback, | 569 base::Bind(&NetLogHttpStreamJobCallback, |
| 570 &request_info_.url, &origin_url_)); | 570 &request_info_.url, &origin_url_)); |
| 571 | 571 |
| 572 // Don't connect to restricted ports. | 572 // Don't connect to restricted ports. |
| 573 if (!IsPortAllowedByDefault(port) && !IsPortAllowedByOverride(port)) { | 573 if (!IsPortAllowedByDefault(port) && !IsPortAllowedByOverride(port)) { |
| 574 if (waiting_job_) { | 574 if (waiting_job_) { |
| (...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1199 // happen, unless this code is used inside sandbox. | 1199 // happen, unless this code is used inside sandbox. |
| 1200 if (ssl_info_.cert == NULL || | 1200 if (ssl_info_.cert == NULL || |
| 1201 !X509Certificate::GetDEREncoded(ssl_info_.cert->os_cert_handle(), | 1201 !X509Certificate::GetDEREncoded(ssl_info_.cert->os_cert_handle(), |
| 1202 &bad_cert.der_cert)) { | 1202 &bad_cert.der_cert)) { |
| 1203 return error; | 1203 return error; |
| 1204 } | 1204 } |
| 1205 bad_cert.cert_status = ssl_info_.cert_status; | 1205 bad_cert.cert_status = ssl_info_.cert_status; |
| 1206 server_ssl_config_.allowed_bad_certs.push_back(bad_cert); | 1206 server_ssl_config_.allowed_bad_certs.push_back(bad_cert); |
| 1207 | 1207 |
| 1208 int load_flags = request_info_.load_flags; | 1208 int load_flags = request_info_.load_flags; |
| 1209 if (HttpStreamFactory::ignore_certificate_errors()) | 1209 if (session_->params().ignore_certificate_errors) |
| 1210 load_flags |= LOAD_IGNORE_ALL_CERT_ERRORS; | 1210 load_flags |= LOAD_IGNORE_ALL_CERT_ERRORS; |
| 1211 if (ssl_socket->IgnoreCertError(error, load_flags)) | 1211 if (ssl_socket->IgnoreCertError(error, load_flags)) |
| 1212 return OK; | 1212 return OK; |
| 1213 return error; | 1213 return error; |
| 1214 } | 1214 } |
| 1215 | 1215 |
| 1216 void HttpStreamFactoryImpl::Job::SwitchToSpdyMode() { | 1216 void HttpStreamFactoryImpl::Job::SwitchToSpdyMode() { |
| 1217 if (HttpStreamFactory::spdy_enabled()) | 1217 if (HttpStreamFactory::spdy_enabled()) |
| 1218 using_spdy_ = true; | 1218 using_spdy_ = true; |
| 1219 } | 1219 } |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1261 return !IsPreconnecting() && !request_; | 1261 return !IsPreconnecting() && !request_; |
| 1262 } | 1262 } |
| 1263 | 1263 |
| 1264 bool HttpStreamFactoryImpl::Job::IsRequestEligibleForPipelining() { | 1264 bool HttpStreamFactoryImpl::Job::IsRequestEligibleForPipelining() { |
| 1265 if (IsPreconnecting() || !request_) { | 1265 if (IsPreconnecting() || !request_) { |
| 1266 return false; | 1266 return false; |
| 1267 } | 1267 } |
| 1268 if (session_->force_http_pipelining()) { | 1268 if (session_->force_http_pipelining()) { |
| 1269 return true; | 1269 return true; |
| 1270 } | 1270 } |
| 1271 if (!HttpStreamFactory::http_pipelining_enabled()) { | 1271 if (!session_->params().http_pipelining_enabled) { |
| 1272 return false; | 1272 return false; |
| 1273 } | 1273 } |
| 1274 if (using_ssl_) { | 1274 if (using_ssl_) { |
| 1275 return false; | 1275 return false; |
| 1276 } | 1276 } |
| 1277 if (request_info_.method != "GET" && request_info_.method != "HEAD") { | 1277 if (request_info_.method != "GET" && request_info_.method != "HEAD") { |
| 1278 return false; | 1278 return false; |
| 1279 } | 1279 } |
| 1280 if (request_info_.load_flags & | 1280 if (request_info_.load_flags & |
| 1281 (net::LOAD_MAIN_FRAME | net::LOAD_SUB_FRAME | net::LOAD_PREFETCH | | 1281 (net::LOAD_MAIN_FRAME | net::LOAD_SUB_FRAME | net::LOAD_PREFETCH | |
| 1282 net::LOAD_IS_DOWNLOAD)) { | 1282 net::LOAD_IS_DOWNLOAD)) { |
| 1283 // Avoid pipelining resources that may be streamed for a long time. | 1283 // Avoid pipelining resources that may be streamed for a long time. |
| 1284 return false; | 1284 return false; |
| 1285 } | 1285 } |
| 1286 return stream_factory_->http_pipelined_host_pool_.IsKeyEligibleForPipelining( | 1286 return stream_factory_->http_pipelined_host_pool_.IsKeyEligibleForPipelining( |
| 1287 *http_pipelining_key_.get()); | 1287 *http_pipelining_key_.get()); |
| 1288 } | 1288 } |
| 1289 | 1289 |
| 1290 } // namespace net | 1290 } // namespace net |
| OLD | NEW |