| Index: net/http/http_network_transaction.cc
|
| diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
|
| index dd538e27b7e6ba85016deb4b5d98f1280b863a19..6771eb713877664cfa0b7edbb0cefb015a5afdd5 100644
|
| --- a/net/http/http_network_transaction.cc
|
| +++ b/net/http/http_network_transaction.cc
|
| @@ -862,6 +862,23 @@ int HttpNetworkTransaction::DoReadHeadersComplete(int result) {
|
| }
|
| DCHECK(response_.headers);
|
|
|
| + // Server-induced fallback is supported only if this is a PAC configured
|
| + // proxy.
|
| + if (response_.was_fetched_via_proxy && proxy_info_.did_use_pac_script()) {
|
| + if (response_.headers != NULL &&
|
| + response_.headers->HasHeaderValue("connection", "proxy-bypass")) {
|
| + ProxyService* proxy_service = session_->proxy_service();
|
| + if (proxy_service->Fallback(&proxy_info_, net_log_)) {
|
| + // Only retry in the case of GETs. We don't want to resubmit a POST
|
| + // if the proxy took some action.
|
| + if (request_->method == "GET") {
|
| + ResetConnectionAndRequestForResend();
|
| + return OK;
|
| + }
|
| + }
|
| + }
|
| + }
|
| +
|
| // Like Net.HttpResponseCode, but only for MAIN_FRAME loads.
|
| if (request_->load_flags & LOAD_MAIN_FRAME) {
|
| const int response_code = response_.headers->response_code();
|
|
|