Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(584)

Unified Diff: net/http/http_network_transaction.cc

Issue 862133002: Update from https://crrev.com/312398 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/http/http_network_transaction.cc
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index 97fc7db7664c419b8a492a871bb2927ca0b99e9a..8f33e20f3de4fc7845afade160064a802fe73de4 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -570,6 +570,11 @@ bool HttpNetworkTransaction::is_https_request() const {
return request_->url.SchemeIs("https");
}
+bool HttpNetworkTransaction::UsingHttpProxyWithoutTunnel() const {
+ return (proxy_info_.is_http() || proxy_info_.is_https()) &&
+ !(request_->url.SchemeIs("https") || request_->url.SchemeIsWSOrWSS());
+}
+
void HttpNetworkTransaction::DoCallback(int rv) {
DCHECK_NE(rv, ERR_IO_PENDING);
DCHECK(!callback_.is_null());
@@ -834,12 +839,13 @@ int HttpNetworkTransaction::DoGenerateServerAuthTokenComplete(int rv) {
return rv;
}
-void HttpNetworkTransaction::BuildRequestHeaders(bool using_proxy) {
+void HttpNetworkTransaction::BuildRequestHeaders(
+ bool using_http_proxy_without_tunnel) {
request_headers_.SetHeader(HttpRequestHeaders::kHost,
GetHostAndOptionalPort(request_->url));
// For compat with HTTP/1.0 servers and proxies:
- if (using_proxy) {
+ if (using_http_proxy_without_tunnel) {
request_headers_.SetHeader(HttpRequestHeaders::kProxyConnection,
"keep-alive");
} else {
@@ -882,7 +888,8 @@ void HttpNetworkTransaction::BuildRequestHeaders(bool using_proxy) {
request_headers_.MergeFrom(request_->extra_headers);
- if (using_proxy && !before_proxy_headers_sent_callback_.is_null())
+ if (using_http_proxy_without_tunnel &&
+ !before_proxy_headers_sent_callback_.is_null())
before_proxy_headers_sent_callback_.Run(proxy_info_, &request_headers_);
response_.did_use_http_auth =
@@ -911,9 +918,8 @@ int HttpNetworkTransaction::DoBuildRequest() {
// This is constructed lazily (instead of within our Start method), so that
// we have proxy info available.
if (request_headers_.IsEmpty()) {
- bool using_proxy = (proxy_info_.is_http() || proxy_info_.is_https()) &&
- !is_https_request();
- BuildRequestHeaders(using_proxy);
+ bool using_http_proxy_without_tunnel = UsingHttpProxyWithoutTunnel();
+ BuildRequestHeaders(using_http_proxy_without_tunnel);
}
return OK;
@@ -1417,8 +1423,7 @@ void HttpNetworkTransaction::ResetConnectionAndRequestForResend() {
}
bool HttpNetworkTransaction::ShouldApplyProxyAuth() const {
- return !is_https_request() &&
- (proxy_info_.is_https() || proxy_info_.is_http());
+ return UsingHttpProxyWithoutTunnel();
}
bool HttpNetworkTransaction::ShouldApplyServerAuth() const {

Powered by Google App Engine
This is Rietveld 408576698