summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorryansturm <ryansturm@chromium.org>2016-03-03 15:41:07 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-03 23:43:53 +0000
commit4bab0683f19f749d1974944281c07abbc0d814cf (patch)
tree0029717741a2fabbdf00022f0ee0588ab5cfa64a
parent981e50f65b63f960783c8318c2fbc5ad02dc71b7 (diff)
downloadchromium_src-4bab0683f19f749d1974944281c07abbc0d814cf.zip
chromium_src-4bab0683f19f749d1974944281c07abbc0d814cf.tar.gz
chromium_src-4bab0683f19f749d1974944281c07abbc0d814cf.tar.bz2
Bypass the DataReductionProxy for all POST requests
POST requests are non-dempotent, so clients using the Data Reduction Proxy (DRP) can often end up at an error page due to the fact that if the DRP has any problems connecting to the origin, DRP and the client will not be safely able to determine if the post successfully made it to the server. The impact of this change on data compression should be very limited, and it will improve the client's experience. BUG=581750 Review URL: https://codereview.chromium.org/1684123004 Cr-Commit-Position: refs/heads/master@{#379137}
-rw-r--r--chrome/browser/net/predictor.cc2
-rw-r--r--chromeos/dbus/services/proxy_resolution_service_provider.cc6
-rw-r--r--components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc8
-rw-r--r--components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h4
-rw-r--r--components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc28
-rw-r--r--content/browser/renderer_host/pepper/pepper_network_proxy_host.cc1
-rw-r--r--content/browser/resolve_proxy_msg_helper.cc2
-rw-r--r--google_apis/gcm/engine/connection_factory_impl.cc6
-rw-r--r--jingle/glue/proxy_resolving_client_socket.cc4
-rw-r--r--net/base/proxy_delegate.h11
-rw-r--r--net/base/test_proxy_delegate.cc1
-rw-r--r--net/base/test_proxy_delegate.h1
-rw-r--r--net/http/http_stream_factory_impl_job.cc11
-rw-r--r--net/proxy/proxy_service.cc32
-rw-r--r--net/proxy/proxy_service.h9
-rw-r--r--net/proxy/proxy_service_mojo_unittest.cc24
-rw-r--r--net/proxy/proxy_service_unittest.cc641
-rw-r--r--net/url_request/url_request_ftp_job.cc8
-rw-r--r--net/websockets/websocket_end_to_end_test.cc2
19 files changed, 459 insertions, 342 deletions
diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc
index 25a309a..ea20cee 100644
--- a/chrome/browser/net/predictor.cc
+++ b/chrome/browser/net/predictor.cc
@@ -1016,7 +1016,7 @@ bool Predictor::WouldLikelyProxyURL(const GURL& url) {
net::ProxyInfo info;
bool synchronous_success = proxy_service_->TryResolveProxySynchronously(
- url, net::LOAD_NORMAL, &info, NULL, net::BoundNetLog());
+ url, std::string(), net::LOAD_NORMAL, &info, NULL, net::BoundNetLog());
return synchronous_success && !info.is_direct();
}
diff --git a/chromeos/dbus/services/proxy_resolution_service_provider.cc b/chromeos/dbus/services/proxy_resolution_service_provider.cc
index ec1a754..44d4e83 100644
--- a/chromeos/dbus/services/proxy_resolution_service_provider.cc
+++ b/chromeos/dbus/services/proxy_resolution_service_provider.cc
@@ -4,6 +4,7 @@
#include "chromeos/dbus/services/proxy_resolution_service_provider.h"
+#include <string>
#include <utility>
#include "base/bind.h"
@@ -133,8 +134,9 @@ class ProxyResolverImpl : public ProxyResolverInterface {
base::Unretained(request),
origin_thread);
const int result = proxy_service->ResolveProxy(
- GURL(request->source_url_), net::LOAD_NORMAL, &request->proxy_info_,
- completion_callback, NULL, NULL, net::BoundNetLog());
+ GURL(request->source_url_), std::string(), net::LOAD_NORMAL,
+ &request->proxy_info_, completion_callback, NULL, NULL,
+ net::BoundNetLog());
if (result != net::ERR_IO_PENDING) {
VLOG(1) << "Network proxy resolution completed synchronously.";
completion_callback.Run(result);
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc
index 52a7b73..eff9462 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc
@@ -49,11 +49,13 @@ DataReductionProxyDelegate::~DataReductionProxyDelegate() {
void DataReductionProxyDelegate::OnResolveProxy(
const GURL& url,
+ const std::string& method,
int load_flags,
const net::ProxyService& proxy_service,
net::ProxyInfo* result) {
DCHECK(result);
- OnResolveProxyHandler(url, load_flags, configurator_->GetProxyConfig(),
+ OnResolveProxyHandler(url, method, load_flags,
+ configurator_->GetProxyConfig(),
proxy_service.proxy_retry_info(), config_, result);
}
@@ -110,6 +112,7 @@ void DataReductionProxyDelegate::OnTunnelHeadersReceived(
}
void OnResolveProxyHandler(const GURL& url,
+ const std::string& method,
int load_flags,
const net::ProxyConfig& data_reduction_proxy_config,
const net::ProxyRetryInfoMap& proxy_retry_info,
@@ -121,7 +124,8 @@ void OnResolveProxyHandler(const GURL& url,
NULL));
bool data_saver_proxy_used = true;
if (result->is_empty() || !result->proxy_server().is_direct() ||
- result->proxy_list().size() != 1 || url.SchemeIsWSOrWSS()) {
+ result->proxy_list().size() != 1 || url.SchemeIsWSOrWSS() ||
+ method == "POST") {
return;
}
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
index 4e45dff..3f0942e 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
@@ -5,6 +5,8 @@
#ifndef COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_DELEGATE_H_
#define COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_DELEGATE_H_
+#include <string>
+
#include "base/macros.h"
#include "net/base/proxy_delegate.h"
#include "net/proxy/proxy_retry_info.h"
@@ -46,6 +48,7 @@ class DataReductionProxyDelegate : public net::ProxyDelegate {
// net::ProxyDelegate implementation:
void OnResolveProxy(const GURL& url,
+ const std::string& method,
int load_flags,
const net::ProxyService& proxy_service,
net::ProxyInfo* result) override;
@@ -81,6 +84,7 @@ class DataReductionProxyDelegate : public net::ProxyDelegate {
// |result|'s current proxy is the data reduction proxy
// This is visible for test purposes.
void OnResolveProxyHandler(const GURL& url,
+ const std::string& method,
int load_flags,
const net::ProxyConfig& data_reduction_proxy_config,
const net::ProxyRetryInfoMap& proxy_retry_info,
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
index 147a283..00ca8f5 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
@@ -350,7 +350,7 @@ TEST_F(DataReductionProxyDelegateTest, OnResolveProxyHandler) {
net::ProxyInfo result;
// Another proxy is used. It should be used afterwards.
result.Use(other_proxy_info);
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ OnResolveProxyHandler(url, "GET", load_flags, data_reduction_proxy_config,
empty_proxy_retry_info, config(), &result);
EXPECT_EQ(other_proxy_info.proxy_server(), result.proxy_server());
@@ -359,7 +359,7 @@ TEST_F(DataReductionProxyDelegateTest, OnResolveProxyHandler) {
// Another proxy is used. It should be used afterwards.
result.Use(direct_proxy_info);
net::ProxyConfig::ID prev_id = result.config_id();
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ OnResolveProxyHandler(url, "GET", load_flags, data_reduction_proxy_config,
empty_proxy_retry_info, config(), &result);
EXPECT_EQ(data_reduction_proxy_info.proxy_server(), result.proxy_server());
// Only the proxy list should be updated, not he proxy info.
@@ -369,30 +369,39 @@ TEST_F(DataReductionProxyDelegateTest, OnResolveProxyHandler) {
// list. A direct connection should be used afterwards.
result.Use(direct_proxy_info);
prev_id = result.config_id();
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ OnResolveProxyHandler(GURL("ws://echo.websocket.org/"), "GET", load_flags,
+ data_reduction_proxy_config,
data_reduction_proxy_retry_info, config(), &result);
EXPECT_TRUE(result.proxy_server().is_direct());
EXPECT_EQ(result.config_id(), prev_id);
// Test that ws:// and wss:// URLs bypass the data reduction proxy.
result.UseDirect();
- OnResolveProxyHandler(GURL("ws://echo.websocket.org/"), load_flags,
+ OnResolveProxyHandler(GURL("wss://echo.websocket.org/"), "GET", load_flags,
data_reduction_proxy_config, empty_proxy_retry_info,
config(), &result);
EXPECT_TRUE(result.is_direct());
- OnResolveProxyHandler(GURL("wss://echo.websocket.org/"), load_flags,
+ result.UseDirect();
+ OnResolveProxyHandler(GURL("wss://echo.websocket.org/"), "GET", load_flags,
data_reduction_proxy_config, empty_proxy_retry_info,
config(), &result);
EXPECT_TRUE(result.is_direct());
+ // POST methods go direct.
+ result.UseDirect();
+ OnResolveProxyHandler(url, "POST", load_flags, data_reduction_proxy_config,
+ empty_proxy_retry_info, config(), &result);
+ EXPECT_TRUE(result.is_direct());
+
// Without DataCompressionProxyCriticalBypass Finch trial set, the
// BYPASS_DATA_REDUCTION_PROXY load flag should be ignored.
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ result.UseDirect();
+ OnResolveProxyHandler(url, "GET", load_flags, data_reduction_proxy_config,
empty_proxy_retry_info, config(), &result);
EXPECT_FALSE(result.is_direct());
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ OnResolveProxyHandler(url, "GET", load_flags, data_reduction_proxy_config,
empty_proxy_retry_info, config(), &other_proxy_info);
EXPECT_FALSE(other_proxy_info.is_direct());
}
@@ -474,8 +483,9 @@ TEST_F(DataReductionProxyDelegateTest, HTTPRequests) {
net::ProxyInfo result;
result.Use(direct_proxy_info);
- OnResolveProxyHandler(url, net::LOAD_NORMAL, data_reduction_proxy_config,
- empty_proxy_retry_info, config(), &result);
+ OnResolveProxyHandler(url, "GET", net::LOAD_NORMAL,
+ data_reduction_proxy_config, empty_proxy_retry_info,
+ config(), &result);
histogram_tester.ExpectTotalCount(
"DataReductionProxy.ConfigService.HTTPRequests",
tests[i].expect_histogram ? 1 : 0);
diff --git a/content/browser/renderer_host/pepper/pepper_network_proxy_host.cc b/content/browser/renderer_host/pepper/pepper_network_proxy_host.cc
index 58c220e..a65ff09 100644
--- a/content/browser/renderer_host/pepper/pepper_network_proxy_host.cc
+++ b/content/browser/renderer_host/pepper/pepper_network_proxy_host.cc
@@ -149,6 +149,7 @@ void PepperNetworkProxyHost::TryToSendUnsentRequests() {
request.reply_context,
base::Owned(proxy_info));
int result = proxy_service_->ResolveProxy(request.url,
+ std::string(),
net::LOAD_NORMAL,
proxy_info,
callback,
diff --git a/content/browser/resolve_proxy_msg_helper.cc b/content/browser/resolve_proxy_msg_helper.cc
index e189f1c..7b1e04e 100644
--- a/content/browser/resolve_proxy_msg_helper.cc
+++ b/content/browser/resolve_proxy_msg_helper.cc
@@ -92,7 +92,7 @@ void ResolveProxyMsgHelper::StartPendingRequest() {
// Start the request.
int result = proxy_service_->ResolveProxy(
- req.url, net::LOAD_NORMAL, &proxy_info_,
+ req.url, std::string(), net::LOAD_NORMAL, &proxy_info_,
base::Bind(&ResolveProxyMsgHelper::OnResolveProxyCompleted,
base::Unretained(this)),
&req.pac_req, NULL, net::BoundNetLog());
diff --git a/google_apis/gcm/engine/connection_factory_impl.cc b/google_apis/gcm/engine/connection_factory_impl.cc
index 43bac40..de25235 100644
--- a/google_apis/gcm/engine/connection_factory_impl.cc
+++ b/google_apis/gcm/engine/connection_factory_impl.cc
@@ -4,6 +4,8 @@
#include "google_apis/gcm/engine/connection_factory_impl.h"
+#include <string>
+
#include "base/location.h"
#include "base/metrics/histogram.h"
#include "base/metrics/sparse_histogram.h"
@@ -307,6 +309,7 @@ void ConnectionFactoryImpl::ConnectImpl() {
RebuildNetworkSessionAuthCache();
int status = gcm_network_session_->proxy_service()->ResolveProxy(
current_endpoint,
+ std::string(),
net::LOAD_NORMAL,
&proxy_info_,
base::Bind(&ConnectionFactoryImpl::OnProxyResolveDone,
@@ -530,7 +533,8 @@ int ConnectionFactoryImpl::ReconsiderProxyAfterError(int error) {
}
int status = gcm_network_session_->proxy_service()->ReconsiderProxyAfterError(
- GetCurrentEndpoint(), net::LOAD_NORMAL, error, &proxy_info_,
+ GetCurrentEndpoint(),
+ std::string(), net::LOAD_NORMAL, error, &proxy_info_,
base::Bind(&ConnectionFactoryImpl::OnProxyResolveDone,
weak_ptr_factory_.GetWeakPtr()),
&pac_request_,
diff --git a/jingle/glue/proxy_resolving_client_socket.cc b/jingle/glue/proxy_resolving_client_socket.cc
index 92f9e5e..dbafb26 100644
--- a/jingle/glue/proxy_resolving_client_socket.cc
+++ b/jingle/glue/proxy_resolving_client_socket.cc
@@ -5,6 +5,7 @@
#include "jingle/glue/proxy_resolving_client_socket.h"
#include <stdint.h>
+#include <string>
#include "base/bind.h"
#include "base/bind_helpers.h"
@@ -139,6 +140,7 @@ int ProxyResolvingClientSocket::Connect(
// First we try and resolve the proxy.
int status = network_session_->proxy_service()->ResolveProxy(
proxy_url_,
+ std::string(),
net::LOAD_NORMAL,
&proxy_info_,
proxy_resolve_callback_,
@@ -290,7 +292,7 @@ int ProxyResolvingClientSocket::ReconsiderProxyAfterError(int error) {
}
int rv = network_session_->proxy_service()->ReconsiderProxyAfterError(
- proxy_url_, net::LOAD_NORMAL, error, &proxy_info_,
+ proxy_url_, std::string(), net::LOAD_NORMAL, error, &proxy_info_,
proxy_resolve_callback_, &pac_request_, NULL, bound_net_log_);
if (rv == net::OK || rv == net::ERR_IO_PENDING) {
CloseTransportSocket();
diff --git a/net/base/proxy_delegate.h b/net/base/proxy_delegate.h
index 8ff6a7e..f2e6120 100644
--- a/net/base/proxy_delegate.h
+++ b/net/base/proxy_delegate.h
@@ -5,6 +5,8 @@
#ifndef NET_BASE_PROXY_DELEGATE_H_
#define NET_BASE_PROXY_DELEGATE_H_
+#include <string>
+
#include "base/macros.h"
#include "net/base/net_export.h"
@@ -29,10 +31,13 @@ class NET_EXPORT ProxyDelegate {
virtual ~ProxyDelegate() {
}
- // Called as the proxy is being resolved for |url|. Allows the delegate to
- // override the proxy resolution decision made by ProxyService. The delegate
- // may override the decision by modifying the ProxyInfo |result|.
+ // Called as the proxy is being resolved for |url| for a |method| request.
+ // The caller may pass an empty string to get method agnostic resoulution.
+ // Allows the delegate to override the proxy resolution decision made by
+ // ProxyService. The delegate may override the decision by modifying the
+ // ProxyInfo |result|.
virtual void OnResolveProxy(const GURL& url,
+ const std::string& method,
int load_flags,
const ProxyService& proxy_service,
ProxyInfo* result) = 0;
diff --git a/net/base/test_proxy_delegate.cc b/net/base/test_proxy_delegate.cc
index d4a3c61..da7693b 100644
--- a/net/base/test_proxy_delegate.cc
+++ b/net/base/test_proxy_delegate.cc
@@ -40,6 +40,7 @@ void TestProxyDelegate::VerifyOnTunnelHeadersReceived(
}
void TestProxyDelegate::OnResolveProxy(const GURL& url,
+ const std::string& method,
int load_flags,
const ProxyService& proxy_service,
ProxyInfo* result) {}
diff --git a/net/base/test_proxy_delegate.h b/net/base/test_proxy_delegate.h
index a6698c6..0a40d99 100644
--- a/net/base/test_proxy_delegate.h
+++ b/net/base/test_proxy_delegate.h
@@ -51,6 +51,7 @@ class TestProxyDelegate : public ProxyDelegate {
// ProxyDelegate implementation:
void OnResolveProxy(const GURL& url,
+ const std::string& method,
int load_flags,
const ProxyService& proxy_service,
ProxyInfo* result) override;
diff --git a/net/http/http_stream_factory_impl_job.cc b/net/http/http_stream_factory_impl_job.cc
index e5403f8..735629d 100644
--- a/net/http/http_stream_factory_impl_job.cc
+++ b/net/http/http_stream_factory_impl_job.cc
@@ -869,9 +869,11 @@ int HttpStreamFactoryImpl::Job::DoResolveProxy() {
replacements.SetPortStr(new_port);
url_for_proxy = url_for_proxy.ReplaceComponents(replacements);
}
+
return session_->proxy_service()->ResolveProxy(
- url_for_proxy, request_info_.load_flags, &proxy_info_, io_callback_,
- &pac_request_, session_->params().proxy_delegate, net_log_);
+ url_for_proxy, request_info_.method, request_info_.load_flags,
+ &proxy_info_, io_callback_, &pac_request_,
+ session_->params().proxy_delegate, net_log_);
}
int HttpStreamFactoryImpl::Job::DoResolveProxyComplete(int result) {
@@ -1619,8 +1621,9 @@ int HttpStreamFactoryImpl::Job::ReconsiderProxyAfterError(int error) {
}
int rv = session_->proxy_service()->ReconsiderProxyAfterError(
- request_info_.url, request_info_.load_flags, error, &proxy_info_,
- io_callback_, &pac_request_, session_->params().proxy_delegate, net_log_);
+ request_info_.url, request_info_.method, request_info_.load_flags, error,
+ &proxy_info_, io_callback_, &pac_request_,
+ session_->params().proxy_delegate, net_log_);
if (rv == OK || rv == ERR_IO_PENDING) {
// If the error was during connection setup, there is no socket to
// disconnect.
diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc
index d6d410c..01bc3bb 100644
--- a/net/proxy/proxy_service.cc
+++ b/net/proxy/proxy_service.cc
@@ -767,6 +767,7 @@ class ProxyService::PacRequest
public:
PacRequest(ProxyService* service,
const GURL& url,
+ const std::string& method,
int load_flags,
ProxyDelegate* proxy_delegate,
ProxyInfo* results,
@@ -776,6 +777,7 @@ class ProxyService::PacRequest
user_callback_(user_callback),
results_(results),
url_(url),
+ method_(method),
load_flags_(load_flags),
proxy_delegate_(proxy_delegate),
resolve_job_(NULL),
@@ -857,8 +859,8 @@ class ProxyService::PacRequest
// Note that DidFinishResolvingProxy might modify |results_|.
int rv = service_->DidFinishResolvingProxy(
- url_, load_flags_, proxy_delegate_, results_, result_code, net_log_,
- creation_time_, script_executed);
+ url_, method_, load_flags_, proxy_delegate_, results_, result_code,
+ net_log_, creation_time_, script_executed);
// Make a note in the results which configuration was in use at the
// time of the resolve.
@@ -910,6 +912,7 @@ class ProxyService::PacRequest
CompletionCallback user_callback_;
ProxyInfo* results_;
GURL url_;
+ std::string method_;
int load_flags_;
ProxyDelegate* proxy_delegate_;
ProxyResolver::RequestHandle resolve_job_;
@@ -1009,6 +1012,7 @@ scoped_ptr<ProxyService> ProxyService::CreateFixedFromPacResult(
}
int ProxyService::ResolveProxy(const GURL& raw_url,
+ const std::string& method,
int load_flags,
ProxyInfo* result,
const CompletionCallback& callback,
@@ -1016,11 +1020,12 @@ int ProxyService::ResolveProxy(const GURL& raw_url,
ProxyDelegate* proxy_delegate,
const BoundNetLog& net_log) {
DCHECK(!callback.is_null());
- return ResolveProxyHelper(raw_url, load_flags, result, callback, pac_request,
- proxy_delegate, net_log);
+ return ResolveProxyHelper(raw_url, method, load_flags, result, callback,
+ pac_request, proxy_delegate, net_log);
}
int ProxyService::ResolveProxyHelper(const GURL& raw_url,
+ const std::string& method,
int load_flags,
ProxyInfo* result,
const CompletionCallback& callback,
@@ -1049,7 +1054,7 @@ int ProxyService::ResolveProxyHelper(const GURL& raw_url,
int rv = TryToCompleteSynchronously(url, load_flags, proxy_delegate, result);
if (rv != ERR_IO_PENDING) {
rv = DidFinishResolvingProxy(
- url, load_flags, proxy_delegate, result, rv, net_log,
+ url, method, load_flags, proxy_delegate, result, rv, net_log,
callback.is_null() ? TimeTicks() : TimeTicks::Now(), false);
return rv;
}
@@ -1057,8 +1062,9 @@ int ProxyService::ResolveProxyHelper(const GURL& raw_url,
if (callback.is_null())
return ERR_IO_PENDING;
- scoped_refptr<PacRequest> req(new PacRequest(
- this, url, load_flags, proxy_delegate, result, callback, net_log));
+ scoped_refptr<PacRequest> req(new PacRequest(this, url, method, load_flags,
+ proxy_delegate, result, callback,
+ net_log));
if (current_state_ == STATE_READY) {
// Start the resolve request.
@@ -1081,12 +1087,13 @@ int ProxyService::ResolveProxyHelper(const GURL& raw_url,
}
bool ProxyService::TryResolveProxySynchronously(const GURL& raw_url,
+ const std::string& method,
int load_flags,
ProxyInfo* result,
ProxyDelegate* proxy_delegate,
const BoundNetLog& net_log) {
CompletionCallback null_callback;
- return ResolveProxyHelper(raw_url, load_flags, result, null_callback,
+ return ResolveProxyHelper(raw_url, method, load_flags, result, null_callback,
nullptr /* pac_request*/, proxy_delegate,
net_log) == OK;
}
@@ -1246,6 +1253,7 @@ void ProxyService::OnInitProxyResolverComplete(int result) {
}
int ProxyService::ReconsiderProxyAfterError(const GURL& url,
+ const std::string& method,
int load_flags,
int net_error,
ProxyInfo* result,
@@ -1266,7 +1274,7 @@ int ProxyService::ReconsiderProxyAfterError(const GURL& url,
// If we have a new config or the config was never tried, we delete the
// list of bad proxies and we try again.
proxy_retry_info_.clear();
- return ResolveProxy(url, load_flags, result, callback, pac_request,
+ return ResolveProxy(url, method, load_flags, result, callback, pac_request,
proxy_delegate, net_log);
}
@@ -1347,6 +1355,7 @@ void ProxyService::RemovePendingRequest(PacRequest* req) {
}
int ProxyService::DidFinishResolvingProxy(const GURL& url,
+ const std::string& method,
int load_flags,
ProxyDelegate* proxy_delegate,
ProxyInfo* result,
@@ -1376,12 +1385,13 @@ int ProxyService::DidFinishResolvingProxy(const GURL& url,
base::TimeDelta::FromMicroseconds(100),
base::TimeDelta::FromSeconds(20), 50);
}
+
// Log the result of the proxy resolution.
if (result_code == OK) {
// Allow the proxy delegate to interpose on the resolution decision,
// possibly modifying the ProxyInfo.
if (proxy_delegate)
- proxy_delegate->OnResolveProxy(url, load_flags, *this, result);
+ proxy_delegate->OnResolveProxy(url, method, load_flags, *this, result);
net_log.AddEvent(NetLog::TYPE_PROXY_SERVICE_RESOLVED_PROXY_LIST,
base::Bind(&NetLogFinishedResolvingProxyCallback, result));
@@ -1413,7 +1423,7 @@ int ProxyService::DidFinishResolvingProxy(const GURL& url,
// Allow the proxy delegate to interpose on the resolution decision,
// possibly modifying the ProxyInfo.
if (proxy_delegate)
- proxy_delegate->OnResolveProxy(url, load_flags, *this, result);
+ proxy_delegate->OnResolveProxy(url, method, load_flags, *this, result);
} else {
result_code = ERR_MANDATORY_PROXY_CONFIGURATION_FAILED;
}
diff --git a/net/proxy/proxy_service.h b/net/proxy/proxy_service.h
index 377cde35..8cd7071 100644
--- a/net/proxy/proxy_service.h
+++ b/net/proxy/proxy_service.h
@@ -107,6 +107,10 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver,
// TODO(eroman): consider naming this simply "Request".
class PacRequest;
+ // Determines the appropriate proxy for |url| for a |method| request and
+ // stores the result in |results|. If |method| is empty, the caller can expect
+ // method independent resolution.
+ //
// Returns ERR_IO_PENDING if the proxy information could not be provided
// synchronously, to indicate that the result will be available when the
// callback is run. The callback is run on the thread that calls
@@ -127,6 +131,7 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver,
//
// Profiling information for the request is saved to |net_log| if non-NULL.
int ResolveProxy(const GURL& url,
+ const std::string& method,
int load_flags,
ProxyInfo* results,
const CompletionCallback& callback,
@@ -137,6 +142,7 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver,
// Returns true if the proxy information could be determined without spawning
// an asynchronous task. Otherwise, |result| is unmodified.
bool TryResolveProxySynchronously(const GURL& raw_url,
+ const std::string& method,
int load_flags,
ProxyInfo* result,
ProxyDelegate* proxy_delegate,
@@ -157,6 +163,7 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver,
//
// Profiling information for the request is saved to |net_log| if non-NULL.
int ReconsiderProxyAfterError(const GURL& url,
+ const std::string& method,
int load_flags,
int net_error,
ProxyInfo* results,
@@ -333,6 +340,7 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver,
// if |callback.is_null()|, this function becomes a thin wrapper around
// |TryToCompleteSynchronously|.
int ResolveProxyHelper(const GURL& url,
+ const std::string& method,
int load_flags,
ProxyInfo* results,
const CompletionCallback& callback,
@@ -358,6 +366,7 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver,
// asynchronously). Handles logging the result, and cleaning out
// bad entries from the results list.
int DidFinishResolvingProxy(const GURL& url,
+ const std::string& method,
int load_flags,
ProxyDelegate* proxy_delegate,
ProxyInfo* result,
diff --git a/net/proxy/proxy_service_mojo_unittest.cc b/net/proxy/proxy_service_mojo_unittest.cc
index 5dd94b0..6881a19 100644
--- a/net/proxy/proxy_service_mojo_unittest.cc
+++ b/net/proxy/proxy_service_mojo_unittest.cc
@@ -156,9 +156,9 @@ TEST_F(ProxyServiceMojoTest, Basic) {
ProxyInfo info;
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING,
- proxy_service_->ResolveProxy(GURL("http://foo"), LOAD_NORMAL, &info,
- callback.callback(), nullptr, nullptr,
- BoundNetLog()));
+ proxy_service_->ResolveProxy(
+ GURL("http://foo"), std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr, BoundNetLog()));
// Proxy script fetcher should have a fetch triggered by the first
// |ResolveProxy()| request.
@@ -178,9 +178,9 @@ TEST_F(ProxyServiceMojoTest, DnsResolution) {
TestCompletionCallback callback;
BoundTestNetLog bound_net_log;
EXPECT_EQ(ERR_IO_PENDING,
- proxy_service_->ResolveProxy(GURL("http://foo"), LOAD_NORMAL, &info,
- callback.callback(), nullptr, nullptr,
- bound_net_log.bound()));
+ proxy_service_->ResolveProxy(
+ GURL("http://foo"), std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr, bound_net_log.bound()));
// Proxy script fetcher should have a fetch triggered by the first
// |ResolveProxy()| request.
@@ -209,9 +209,9 @@ TEST_F(ProxyServiceMojoTest, Error) {
TestCompletionCallback callback;
BoundTestNetLog bound_net_log;
EXPECT_EQ(ERR_IO_PENDING,
- proxy_service_->ResolveProxy(GURL("http://foo"), LOAD_NORMAL, &info,
- callback.callback(), nullptr, nullptr,
- bound_net_log.bound()));
+ proxy_service_->ResolveProxy(
+ GURL("http://foo"), std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr, bound_net_log.bound()));
// Proxy script fetcher should have a fetch triggered by the first
// |ResolveProxy()| request.
@@ -238,9 +238,9 @@ TEST_F(ProxyServiceMojoTest, ErrorOnInitialization) {
ProxyInfo info;
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING,
- proxy_service_->ResolveProxy(GURL("http://foo"), LOAD_NORMAL, &info,
- callback.callback(), nullptr, nullptr,
- BoundNetLog()));
+ proxy_service_->ResolveProxy(
+ GURL("http://foo"), std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr, BoundNetLog()));
// Proxy script fetcher should have a fetch triggered by the first
// |ResolveProxy()| request.
diff --git a/net/proxy/proxy_service_unittest.cc b/net/proxy/proxy_service_unittest.cc
index a9cb9ed..c595f45 100644
--- a/net/proxy/proxy_service_unittest.cc
+++ b/net/proxy/proxy_service_unittest.cc
@@ -5,6 +5,7 @@
#include "net/proxy/proxy_service.h"
#include <cstdarg>
+#include <string>
#include <vector>
#include "base/format_macros.h"
@@ -171,9 +172,11 @@ class TestResolveProxyDelegate : public ProxyDelegate {
proxy_service_(nullptr) {}
void OnResolveProxy(const GURL& url,
+ const std::string& method,
int load_flags,
const ProxyService& proxy_service,
ProxyInfo* result) override {
+ method_ = method;
on_resolve_proxy_called_ = true;
proxy_service_ = &proxy_service;
DCHECK(!add_proxy_ || !remove_proxy_);
@@ -188,6 +191,8 @@ class TestResolveProxyDelegate : public ProxyDelegate {
return on_resolve_proxy_called_;
}
+ const std::string& method() const { return method_; }
+
void set_add_proxy(bool add_proxy) {
add_proxy_ = add_proxy;
}
@@ -221,6 +226,7 @@ class TestResolveProxyDelegate : public ProxyDelegate {
bool on_resolve_proxy_called_;
bool add_proxy_;
bool remove_proxy_;
+ std::string method_;
const ProxyService* proxy_service_;
};
@@ -232,6 +238,7 @@ class TestProxyFallbackProxyDelegate : public ProxyDelegate {
// ProxyDelegate implementation:
void OnResolveProxy(const GURL& url,
+ const std::string& method,
int load_flags,
const ProxyService& proxy_service,
ProxyInfo* result) override {}
@@ -347,15 +354,16 @@ TEST_F(ProxyServiceTest, Direct) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(
make_scoped_ptr(new MockProxyConfigService(ProxyConfig::CreateDirect())),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback;
BoundTestNetLog log;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, log.bound());
+ int rv =
+ service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr, log.bound());
EXPECT_EQ(OK, rv);
EXPECT_TRUE(factory->pending_requests().empty());
@@ -384,7 +392,7 @@ TEST_F(ProxyServiceTest, OnResolveProxyCallbackAddProxy) {
config.proxy_rules().bypass_rules.ParseFromString("*.org");
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL url("http://www.google.com/");
GURL bypass_url("http://internet.org");
@@ -394,16 +402,18 @@ TEST_F(ProxyServiceTest, OnResolveProxyCallbackAddProxy) {
BoundTestNetLog log;
// First, warm up the ProxyService.
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, log.bound());
+ int rv =
+ service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr, log.bound());
EXPECT_EQ(OK, rv);
// Verify that network delegate is invoked.
TestResolveProxyDelegate delegate;
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), NULL,
- &delegate, log.bound());
+ rv = service.ResolveProxy(url, "GET", LOAD_NORMAL, &info, callback.callback(),
+ nullptr, &delegate, log.bound());
EXPECT_TRUE(delegate.on_resolve_proxy_called());
EXPECT_EQ(&service, delegate.proxy_service());
+ EXPECT_EQ(delegate.method(), "GET");
// Verify that the ProxyDelegate's behavior is stateless across
// invocations of ResolveProxy. Start by having the callback add a proxy
@@ -411,21 +421,22 @@ TEST_F(ProxyServiceTest, OnResolveProxyCallbackAddProxy) {
delegate.set_add_proxy(true);
// Callback should interpose:
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), NULL,
- &delegate, log.bound());
+ rv = service.ResolveProxy(url, "GET", LOAD_NORMAL, &info, callback.callback(),
+ nullptr, &delegate, log.bound());
EXPECT_FALSE(info.is_direct());
EXPECT_EQ(info.proxy_server().host_port_pair().host(), "delegate_proxy.com");
delegate.set_add_proxy(false);
// Check non-bypassed URL:
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), NULL,
- &delegate, log.bound());
+ rv = service.ResolveProxy(url, "GET", LOAD_NORMAL, &info, callback.callback(),
+ nullptr, &delegate, log.bound());
EXPECT_FALSE(info.is_direct());
EXPECT_EQ(info.proxy_server().host_port_pair().host(), "foopy1");
// Check bypassed URL:
- rv = service.ResolveProxy(bypass_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, &delegate, log.bound());
+ rv = service.ResolveProxy(bypass_url, "GET", LOAD_NORMAL, &info,
+ callback.callback(), nullptr, &delegate,
+ log.bound());
EXPECT_TRUE(info.is_direct());
}
@@ -439,7 +450,7 @@ TEST_F(ProxyServiceTest, OnResolveProxyCallbackRemoveProxy) {
config.proxy_rules().bypass_rules.ParseFromString("*.org");
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL url("http://www.google.com/");
GURL bypass_url("http://internet.org");
@@ -449,28 +460,30 @@ TEST_F(ProxyServiceTest, OnResolveProxyCallbackRemoveProxy) {
BoundTestNetLog log;
// First, warm up the ProxyService.
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, log.bound());
+ int rv =
+ service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr, log.bound());
EXPECT_EQ(OK, rv);
TestResolveProxyDelegate delegate;
delegate.set_remove_proxy(true);
// Callback should interpose:
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), NULL,
- &delegate, log.bound());
+ rv = service.ResolveProxy(url, "GET", LOAD_NORMAL, &info, callback.callback(),
+ nullptr, &delegate, log.bound());
EXPECT_TRUE(info.is_direct());
delegate.set_remove_proxy(false);
// Check non-bypassed URL:
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), NULL,
- &delegate, log.bound());
+ rv = service.ResolveProxy(url, "GET", LOAD_NORMAL, &info, callback.callback(),
+ nullptr, &delegate, log.bound());
EXPECT_FALSE(info.is_direct());
EXPECT_EQ(info.proxy_server().host_port_pair().host(), "foopy1");
// Check bypassed URL:
- rv = service.ResolveProxy(bypass_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, &delegate, log.bound());
+ rv = service.ResolveProxy(bypass_url, "GET", LOAD_NORMAL, &info,
+ callback.callback(), nullptr, &delegate,
+ log.bound());
EXPECT_TRUE(info.is_direct());
}
@@ -483,7 +496,7 @@ TEST_F(ProxyServiceTest, PAC) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
@@ -492,8 +505,9 @@ TEST_F(ProxyServiceTest, PAC) {
ProxyService::PacRequest* request;
BoundTestNetLog log;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(),
- &request, NULL, log.bound());
+ int rv =
+ service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), &request, nullptr, log.bound());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(LOAD_STATE_RESOLVING_PROXY_FOR_URL, service.GetLoadState(request));
@@ -545,14 +559,15 @@ TEST_F(ProxyServiceTest, PAC_NoIdentityOrHash) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://username:password@www.google.com/?ref#hash#hash");
ProxyInfo info;
TestCompletionCallback callback;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -576,14 +591,15 @@ TEST_F(ProxyServiceTest, PAC_FailoverWithoutDirect) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -613,8 +629,8 @@ TEST_F(ProxyServiceTest, PAC_FailoverWithoutDirect) {
TestCompletionCallback callback2;
ProxyServer expected_proxy_server = info.proxy_server();
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback2.callback(), NULL, &proxy_delegate, BoundNetLog());
+ url, "GET", LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback2.callback(), nullptr, &proxy_delegate, BoundNetLog());
// ReconsiderProxyAfterError returns error indicating nothing left.
EXPECT_EQ(ERR_FAILED, rv);
EXPECT_TRUE(info.is_empty());
@@ -630,14 +646,15 @@ TEST_F(ProxyServiceTest, PAC_RuntimeError) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://this-causes-js-error/");
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -688,14 +705,15 @@ TEST_F(ProxyServiceTest, PAC_FailoverAfterDirect) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -716,8 +734,8 @@ TEST_F(ProxyServiceTest, PAC_FailoverAfterDirect) {
// Fallback 1.
TestCompletionCallback callback2;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback2.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("foobar:10", info.proxy_server().ToURI());
@@ -727,8 +745,8 @@ TEST_F(ProxyServiceTest, PAC_FailoverAfterDirect) {
ProxyServer expected_proxy_server3 = info.proxy_server();
TestCompletionCallback callback3;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback3.callback(), NULL, &proxy_delegate, BoundNetLog());
+ url, "GET", LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback3.callback(), nullptr, &proxy_delegate, BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_TRUE(info.is_direct());
@@ -736,8 +754,8 @@ TEST_F(ProxyServiceTest, PAC_FailoverAfterDirect) {
ProxyServer expected_proxy_server4 = info.proxy_server();
TestCompletionCallback callback4;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback4.callback(), NULL, &proxy_delegate, BoundNetLog());
+ url, "GET", LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback4.callback(), nullptr, &proxy_delegate, BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("foobar:20", info.proxy_server().ToURI());
@@ -746,8 +764,8 @@ TEST_F(ProxyServiceTest, PAC_FailoverAfterDirect) {
ProxyServer expected_proxy_server5 = info.proxy_server();
TestCompletionCallback callback5;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback5.callback(), NULL, &proxy_delegate, BoundNetLog());
+ url, "GET", LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback5.callback(), nullptr, &proxy_delegate, BoundNetLog());
EXPECT_EQ(ERR_FAILED, rv);
EXPECT_TRUE(info.is_empty());
}
@@ -764,14 +782,15 @@ TEST_F(ProxyServiceTest, PAC_ConfigSourcePropagates) {
MockAsyncProxyResolverFactory* factory =
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
// Resolve something.
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
ASSERT_EQ(ERR_IO_PENDING, rv);
factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -802,14 +821,15 @@ TEST_F(ProxyServiceTest, ProxyResolverFails) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
// Start first resolve request.
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -835,8 +855,9 @@ TEST_F(ProxyServiceTest, ProxyResolverFails) {
// The second resolve request will try to run through the proxy resolver,
// regardless of whether the first request failed in it.
TestCompletionCallback callback2;
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback2.callback(), NULL,
- NULL, BoundNetLog());
+ rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -870,9 +891,9 @@ TEST_F(ProxyServiceTest, ProxyResolverTerminatedDuringRequest) {
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(url, net::LOAD_NORMAL, &info, callback1.callback(),
- nullptr, nullptr, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), net::LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, factory->pending_requests().size());
@@ -901,8 +922,9 @@ TEST_F(ProxyServiceTest, ProxyResolverTerminatedDuringRequest) {
EXPECT_TRUE(factory->pending_requests().empty());
TestCompletionCallback callback2;
- rv = service.ResolveProxy(url, net::LOAD_NORMAL, &info, callback2.callback(),
- nullptr, nullptr, BoundNetLog());
+ rv = service.ResolveProxy(url, std::string(), net::LOAD_NORMAL, &info,
+ callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, factory->pending_requests().size());
@@ -942,13 +964,14 @@ TEST_F(ProxyServiceTest,
GURL url2("https://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(url1, net::LOAD_NORMAL, &info, callback1.callback(),
- nullptr, nullptr, BoundNetLog());
+ int rv = service.ResolveProxy(url1, std::string(), net::LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
TestCompletionCallback callback2;
- rv = service.ResolveProxy(url2, net::LOAD_NORMAL, &info, callback2.callback(),
- nullptr, nullptr, BoundNetLog());
+ rv = service.ResolveProxy(url2, std::string(), net::LOAD_NORMAL, &info,
+ callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, factory->pending_requests().size());
@@ -1006,14 +1029,15 @@ TEST_F(ProxyServiceTest, ProxyScriptFetcherFailsDownloadingMandatoryPac) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
// Start first resolve request.
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -1030,8 +1054,9 @@ TEST_F(ProxyServiceTest, ProxyScriptFetcherFailsDownloadingMandatoryPac) {
// As the proxy resolver factory failed the request and is configured for a
// mandatory PAC script, ProxyService must not implicitly fall-back to DIRECT.
TestCompletionCallback callback2;
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback2.callback(), NULL,
- NULL, BoundNetLog());
+ rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_MANDATORY_PROXY_CONFIGURATION_FAILED, rv);
EXPECT_FALSE(info.is_direct());
}
@@ -1051,7 +1076,7 @@ TEST_F(ProxyServiceTest, ProxyResolverFailsParsingJavaScriptMandatoryPac) {
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -1061,8 +1086,9 @@ TEST_F(ProxyServiceTest, ProxyResolverFailsParsingJavaScriptMandatoryPac) {
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Check that nothing has been sent to the proxy resolver factory yet.
@@ -1101,14 +1127,15 @@ TEST_F(ProxyServiceTest, ProxyResolverFailsInJavaScriptMandatoryPac) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
// Start first resolve request.
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -1130,8 +1157,9 @@ TEST_F(ProxyServiceTest, ProxyResolverFailsInJavaScriptMandatoryPac) {
// The second resolve request will try to run through the proxy resolver,
// regardless of whether the first request failed in it.
TestCompletionCallback callback2;
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback2.callback(), NULL,
- NULL, BoundNetLog());
+ rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -1159,15 +1187,16 @@ TEST_F(ProxyServiceTest, ProxyFallback) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
// Get the proxy information.
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -1196,8 +1225,8 @@ TEST_F(ProxyServiceTest, ProxyFallback) {
// Fake an error on the proxy.
TestCompletionCallback callback2;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback2.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
// Proxy times should not have been modified by fallback.
@@ -1215,8 +1244,9 @@ TEST_F(ProxyServiceTest, ProxyFallback) {
test_delegate.proxy_fallback_net_error());
TestCompletionCallback callback3;
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback3.callback(), NULL,
- NULL, BoundNetLog());
+ rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback3.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -1243,8 +1273,8 @@ TEST_F(ProxyServiceTest, ProxyFallback) {
// We fake another error. It should now try the third one.
TestCompletionCallback callback4;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback4.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback4.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_EQ("foopy2:9090", info.proxy_server().ToURI());
@@ -1253,8 +1283,8 @@ TEST_F(ProxyServiceTest, ProxyFallback) {
// that was in our bad proxies map (foopy1:8080).
TestCompletionCallback callback5;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback5.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback5.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI());
@@ -1262,8 +1292,8 @@ TEST_F(ProxyServiceTest, ProxyFallback) {
// so there is nothing left to try.
TestCompletionCallback callback6;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback6.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback6.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_FAILED, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_TRUE(info.is_empty());
@@ -1274,8 +1304,9 @@ TEST_F(ProxyServiceTest, ProxyFallback) {
// Look up proxies again
TestCompletionCallback callback7;
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback7.callback(), NULL,
- NULL, BoundNetLog());
+ rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback7.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -1309,15 +1340,16 @@ TEST_F(ProxyServiceTest, ProxyFallbackToDirect) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
// Get the proxy information.
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -1340,8 +1372,8 @@ TEST_F(ProxyServiceTest, ProxyFallbackToDirect) {
// Fake an error on the proxy.
TestCompletionCallback callback2;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback2.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
// Now we get back the second proxy.
@@ -1350,8 +1382,8 @@ TEST_F(ProxyServiceTest, ProxyFallbackToDirect) {
// Fake an error on this proxy as well.
TestCompletionCallback callback3;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback3.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback3.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
// Finally, we get back DIRECT.
@@ -1364,8 +1396,8 @@ TEST_F(ProxyServiceTest, ProxyFallbackToDirect) {
// Now we tell the proxy service that even DIRECT failed.
TestCompletionCallback callback4;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback4.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback4.callback(), nullptr, nullptr, BoundNetLog());
// There was nothing left to try after DIRECT, so we are out of
// choices.
EXPECT_EQ(ERR_FAILED, rv);
@@ -1382,15 +1414,16 @@ TEST_F(ProxyServiceTest, ProxyFallback_NewSettings) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
// Get the proxy information.
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -1416,8 +1449,8 @@ TEST_F(ProxyServiceTest, ProxyFallback_NewSettings) {
TestCompletionCallback callback2;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback2.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy-new/proxy.pac"),
@@ -1438,8 +1471,8 @@ TEST_F(ProxyServiceTest, ProxyFallback_NewSettings) {
// We fake another error. It should now ignore the first one.
TestCompletionCallback callback3;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback3.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback3.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_EQ("foopy2:9090", info.proxy_server().ToURI());
@@ -1451,8 +1484,8 @@ TEST_F(ProxyServiceTest, ProxyFallback_NewSettings) {
// We fake another error. It should go back to the first proxy.
TestCompletionCallback callback4;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback4.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback4.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy-new2/proxy.pac"),
@@ -1485,15 +1518,16 @@ TEST_F(ProxyServiceTest, ProxyFallback_BadConfig) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
// Get the proxy information.
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -1514,8 +1548,8 @@ TEST_F(ProxyServiceTest, ProxyFallback_BadConfig) {
// Fake a proxy error.
TestCompletionCallback callback2;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback2.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
// The first proxy is ignored, and the second one is selected.
@@ -1525,8 +1559,9 @@ TEST_F(ProxyServiceTest, ProxyFallback_BadConfig) {
// Fake a PAC failure.
ProxyInfo info2;
TestCompletionCallback callback3;
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info2, callback3.callback(),
- NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info2,
+ callback3.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -1547,8 +1582,8 @@ TEST_F(ProxyServiceTest, ProxyFallback_BadConfig) {
ProxyInfo info3;
TestCompletionCallback callback4;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info3,
- callback4.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info3,
+ callback4.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -1583,15 +1618,16 @@ TEST_F(ProxyServiceTest, ProxyFallback_BadConfigMandatory) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
// Get the proxy information.
ProxyInfo info;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -1612,8 +1648,8 @@ TEST_F(ProxyServiceTest, ProxyFallback_BadConfigMandatory) {
// Fake a proxy error.
TestCompletionCallback callback2;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info,
+ callback2.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
// The first proxy is ignored, and the second one is selected.
@@ -1623,8 +1659,9 @@ TEST_F(ProxyServiceTest, ProxyFallback_BadConfigMandatory) {
// Fake a PAC failure.
ProxyInfo info2;
TestCompletionCallback callback3;
- rv = service.ResolveProxy(url, LOAD_NORMAL, &info2, callback3.callback(),
- NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info2,
+ callback3.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -1646,8 +1683,8 @@ TEST_F(ProxyServiceTest, ProxyFallback_BadConfigMandatory) {
ProxyInfo info3;
TestCompletionCallback callback4;
rv = service.ReconsiderProxyAfterError(
- url, LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info3,
- callback4.callback(), NULL, NULL, BoundNetLog());
+ url, std::string(), LOAD_NORMAL, ERR_PROXY_CONNECTION_FAILED, &info3,
+ callback4.callback(), nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -1675,21 +1712,23 @@ TEST_F(ProxyServiceTest, ProxyBypassList) {
config.proxy_rules().bypass_rules.ParseFromString("*.org");
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
int rv;
GURL url1("http://www.webkit.org");
GURL url2("http://www.webkit.com");
// Request for a .org domain should bypass proxy.
- rv = service.ResolveProxy(url1, LOAD_NORMAL, &info[0], callback[0].callback(),
- NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url1, std::string(), LOAD_NORMAL, &info[0],
+ callback[0].callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_TRUE(info[0].is_direct());
// Request for a .com domain hits the proxy.
- rv = service.ResolveProxy(url2, LOAD_NORMAL, &info[1], callback[1].callback(),
- NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url2, std::string(), LOAD_NORMAL, &info[1],
+ callback[1].callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_EQ("foopy1:8080", info[1].proxy_server().ToURI());
}
@@ -1714,7 +1753,7 @@ TEST_F(ProxyServiceTest, MarkProxiesAsBadTests) {
EXPECT_EQ(3u, additional_bad_proxies.size());
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
ProxyInfo proxy_info;
proxy_info.UseProxyList(proxy_list);
const ProxyRetryInfoMap& retry_info = service.proxy_retry_info();
@@ -1735,39 +1774,39 @@ TEST_F(ProxyServiceTest, PerProtocolProxyTests) {
config.set_auto_detect(false);
{
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("http://www.msn.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI());
}
{
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("ftp://ftp.google.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_TRUE(info.is_direct());
EXPECT_EQ("direct://", info.proxy_server().ToURI());
}
{
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("https://webbranch.techcu.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI());
@@ -1775,13 +1814,13 @@ TEST_F(ProxyServiceTest, PerProtocolProxyTests) {
{
config.proxy_rules().ParseFromString("foopy1:8080");
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("http://www.microsoft.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI());
@@ -1797,13 +1836,13 @@ TEST_F(ProxyServiceTest, ProxyConfigSourcePropagates) {
config.set_source(PROXY_CONFIG_SOURCE_TEST);
config.proxy_rules().ParseFromString("https=foopy2:8080");
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("http://www.google.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
ASSERT_EQ(OK, rv);
// Should be SOURCE_TEST, even if there are no HTTP proxies configured.
EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source());
@@ -1813,13 +1852,13 @@ TEST_F(ProxyServiceTest, ProxyConfigSourcePropagates) {
config.set_source(PROXY_CONFIG_SOURCE_TEST);
config.proxy_rules().ParseFromString("https=foopy2:8080");
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("https://www.google.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
ASSERT_EQ(OK, rv);
// Used the HTTPS proxy. So source should be TEST.
EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source());
@@ -1828,13 +1867,13 @@ TEST_F(ProxyServiceTest, ProxyConfigSourcePropagates) {
ProxyConfig config;
config.set_source(PROXY_CONFIG_SOURCE_TEST);
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("http://www.google.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
ASSERT_EQ(OK, rv);
// ProxyConfig is empty. Source should still be TEST.
EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source());
@@ -1852,52 +1891,52 @@ TEST_F(ProxyServiceTest, DefaultProxyFallbackToSOCKS) {
{
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("http://www.msn.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI());
}
{
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("ftp://ftp.google.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI());
}
{
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("https://webbranch.techcu.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI());
}
{
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- nullptr, NULL);
+ nullptr, nullptr);
GURL test_url("unknown://www.microsoft.com");
ProxyInfo info;
TestCompletionCallback callback;
- int rv =
- service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(test_url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI());
@@ -1917,14 +1956,15 @@ TEST_F(ProxyServiceTest, CancelInProgressRequest) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
// Start 3 requests.
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url1, std::string(), LOAD_NORMAL, &info1,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Successfully initialize the PAC script.
@@ -1937,16 +1977,18 @@ TEST_F(ProxyServiceTest, CancelInProgressRequest) {
ProxyInfo info2;
TestCompletionCallback callback2;
ProxyService::PacRequest* request2;
- rv = service.ResolveProxy(url2, LOAD_NORMAL, &info2, callback2.callback(),
- &request2, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url2, std::string(), LOAD_NORMAL, &info2,
+ callback2.callback(), &request2, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
GetPendingRequestsForURLs(resolver, url1, url2);
ProxyInfo info3;
TestCompletionCallback callback3;
- rv = service.ResolveProxy(url3, LOAD_NORMAL, &info3, callback3.callback(),
- NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url3, std::string(), LOAD_NORMAL, &info3,
+ callback3.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
GetPendingRequestsForURLs(resolver, url1, url2, url3);
@@ -1987,7 +2029,7 @@ TEST_F(ProxyServiceTest, InitialPACScriptDownload) {
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -1998,8 +2040,9 @@ TEST_F(ProxyServiceTest, InitialPACScriptDownload) {
ProxyInfo info1;
TestCompletionCallback callback1;
ProxyService::PacRequest* request1;
- int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(),
- &request1, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url1, std::string(), LOAD_NORMAL, &info1,
+ callback1.callback(), &request1, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// The first request should have triggered download of PAC script.
@@ -2009,15 +2052,17 @@ TEST_F(ProxyServiceTest, InitialPACScriptDownload) {
ProxyInfo info2;
TestCompletionCallback callback2;
ProxyService::PacRequest* request2;
- rv = service.ResolveProxy(url2, LOAD_NORMAL, &info2, callback2.callback(),
- &request2, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url2, std::string(), LOAD_NORMAL, &info2,
+ callback2.callback(), &request2, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ProxyInfo info3;
TestCompletionCallback callback3;
ProxyService::PacRequest* request3;
- rv = service.ResolveProxy(url3, LOAD_NORMAL, &info3, callback3.callback(),
- &request3, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url3, std::string(), LOAD_NORMAL, &info3,
+ callback3.callback(), &request3, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Nothing has been sent to the factory yet.
@@ -2090,7 +2135,7 @@ TEST_F(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) {
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -2100,8 +2145,9 @@ TEST_F(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url1, std::string(), LOAD_NORMAL, &info1,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// The first request should have triggered download of PAC script.
@@ -2110,8 +2156,9 @@ TEST_F(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) {
ProxyInfo info2;
TestCompletionCallback callback2;
- rv = service.ResolveProxy(url2, LOAD_NORMAL, &info2, callback2.callback(),
- NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url2, std::string(), LOAD_NORMAL, &info2,
+ callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// At this point the ProxyService should be waiting for the
@@ -2149,7 +2196,7 @@ TEST_F(ProxyServiceTest, CancelWhilePACFetching) {
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -2160,9 +2207,9 @@ TEST_F(ProxyServiceTest, CancelWhilePACFetching) {
TestCompletionCallback callback1;
ProxyService::PacRequest* request1;
BoundTestNetLog log1;
- int rv =
- service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1,
- callback1.callback(), &request1, NULL, log1.bound());
+ int rv = service.ResolveProxy(GURL("http://request1"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ &request1, nullptr, log1.bound());
EXPECT_EQ(ERR_IO_PENDING, rv);
// The first request should have triggered download of PAC script.
@@ -2172,15 +2219,16 @@ TEST_F(ProxyServiceTest, CancelWhilePACFetching) {
ProxyInfo info2;
TestCompletionCallback callback2;
ProxyService::PacRequest* request2;
- rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2,
- callback2.callback(), &request2, NULL,
+ rv = service.ResolveProxy(GURL("http://request2"), std::string(), LOAD_NORMAL,
+ &info2, callback2.callback(), &request2, nullptr,
BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ProxyInfo info3;
TestCompletionCallback callback3;
- rv = service.ResolveProxy(GURL("http://request3"), LOAD_NORMAL, &info3,
- callback3.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://request3"), std::string(), LOAD_NORMAL,
+ &info3, callback3.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Nothing has been sent to the factory yet.
@@ -2247,7 +2295,7 @@ TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomPac) {
MockAsyncProxyResolverFactory* factory =
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -2257,15 +2305,17 @@ TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomPac) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url1, std::string(), LOAD_NORMAL, &info1,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ProxyInfo info2;
TestCompletionCallback callback2;
ProxyService::PacRequest* request2;
- rv = service.ResolveProxy(url2, LOAD_NORMAL, &info2, callback2.callback(),
- &request2, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url2, std::string(), LOAD_NORMAL, &info2,
+ callback2.callback(), &request2, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Check that nothing has been sent to the proxy resolver factory yet.
@@ -2326,7 +2376,7 @@ TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) {
MockAsyncProxyResolverFactory* factory =
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -2336,15 +2386,17 @@ TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url1, std::string(), LOAD_NORMAL, &info1,
+ callback1.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ProxyInfo info2;
TestCompletionCallback callback2;
ProxyService::PacRequest* request2;
- rv = service.ResolveProxy(url2, LOAD_NORMAL, &info2, callback2.callback(),
- &request2, NULL, BoundNetLog());
+ rv = service.ResolveProxy(url2, std::string(), LOAD_NORMAL, &info2,
+ callback2.callback(), &request2, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Check that nothing has been sent to the proxy resolver factory yet.
@@ -2398,7 +2450,7 @@ TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) {
MockAsyncProxyResolverFactory* factory =
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -2408,16 +2460,16 @@ TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://request1"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ProxyInfo info2;
TestCompletionCallback callback2;
ProxyService::PacRequest* request2;
- rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2,
- callback2.callback(), &request2, NULL,
+ rv = service.ResolveProxy(GURL("http://request2"), std::string(), LOAD_NORMAL,
+ &info2, callback2.callback(), &request2, nullptr,
BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
@@ -2460,7 +2512,7 @@ TEST_F(ProxyServiceTest, BypassDoesntApplyToPac) {
MockAsyncProxyResolverFactory* factory =
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -2470,9 +2522,9 @@ TEST_F(ProxyServiceTest, BypassDoesntApplyToPac) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://www.google.com"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Check that nothing has been sent to the proxy resolver factory yet.
@@ -2502,8 +2554,9 @@ TEST_F(ProxyServiceTest, BypassDoesntApplyToPac) {
// Start another request, it should pickup the bypass item.
ProxyInfo info2;
TestCompletionCallback callback2;
- rv = service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info2,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://www.google.com"), std::string(),
+ LOAD_NORMAL, &info2, callback2.callback(), nullptr,
+ nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
ASSERT_EQ(1u, resolver.pending_requests().size());
@@ -2530,7 +2583,7 @@ TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) {
MockAsyncProxyResolverFactory* factory =
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -2540,9 +2593,9 @@ TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://www.google.com"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Check that nothing has been sent to the proxy resolver factory yet.
@@ -2566,14 +2619,15 @@ TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
ProxyInfo info;
TestCompletionCallback callback;
- int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(),
- NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(url, std::string(), LOAD_NORMAL, &info,
+ callback.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(GURL("http://foopy/proxy.pac"),
@@ -2585,13 +2639,13 @@ TEST_F(ProxyServiceTest, ResetProxyConfigService) {
config1.proxy_rules().ParseFromString("foopy1:8080");
config1.set_auto_detect(false);
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config1)),
- nullptr, NULL);
+ nullptr, nullptr);
ProxyInfo info;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://request1"), std::string(),
+ LOAD_NORMAL, &info, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI());
@@ -2601,8 +2655,9 @@ TEST_F(ProxyServiceTest, ResetProxyConfigService) {
service.ResetConfigService(
make_scoped_ptr(new MockProxyConfigService(config2)));
TestCompletionCallback callback2;
- rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://request2"), std::string(), LOAD_NORMAL,
+ &info, callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI());
}
@@ -2617,15 +2672,15 @@ TEST_F(ProxyServiceTest, UpdateConfigFromPACToDirect) {
MockAsyncProxyResolverFactory* factory =
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
// Start 1 request.
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://www.google.com"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Successfully set the autodetect script.
@@ -2652,8 +2707,9 @@ TEST_F(ProxyServiceTest, UpdateConfigFromPACToDirect) {
// Start another request -- the effective configuration has changed.
ProxyInfo info2;
TestCompletionCallback callback2;
- rv = service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info2,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://www.google.com"), std::string(),
+ LOAD_NORMAL, &info2, callback2.callback(), nullptr,
+ nullptr, BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_TRUE(info2.is_direct());
@@ -2684,9 +2740,9 @@ TEST_F(ProxyServiceTest, NetworkChangeTriggersPacRefetch) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://request1"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// The first request should have triggered initial download of PAC script.
@@ -2727,8 +2783,9 @@ TEST_F(ProxyServiceTest, NetworkChangeTriggersPacRefetch) {
// Start a second request.
ProxyInfo info2;
TestCompletionCallback callback2;
- rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://request2"), std::string(), LOAD_NORMAL,
+ &info2, callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// This second request should have triggered the re-download of the PAC
@@ -2791,7 +2848,7 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterFailure) {
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -2801,9 +2858,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterFailure) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://request1"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// The first request should have triggered initial download of PAC script.
@@ -2862,8 +2919,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterFailure) {
// Start a second request.
ProxyInfo info2;
TestCompletionCallback callback2;
- rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://request2"), std::string(), LOAD_NORMAL,
+ &info2, callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Check that it was sent to the resolver.
@@ -2897,7 +2955,7 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterContentChange) {
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -2907,9 +2965,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterContentChange) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://request1"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// The first request should have triggered initial download of PAC script.
@@ -2974,8 +3032,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterContentChange) {
// Start a second request.
ProxyInfo info2;
TestCompletionCallback callback2;
- rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://request2"), std::string(), LOAD_NORMAL,
+ &info2, callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Check that it was sent to the resolver.
@@ -3009,7 +3068,7 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterContentUnchanged) {
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -3019,9 +3078,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterContentUnchanged) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://request1"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// The first request should have triggered initial download of PAC script.
@@ -3083,8 +3142,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterContentUnchanged) {
// Start a second request.
ProxyInfo info2;
TestCompletionCallback callback2;
- rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://request2"), std::string(), LOAD_NORMAL,
+ &info2, callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// Check that it was sent to the resolver.
@@ -3118,7 +3178,7 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterSuccess) {
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -3128,9 +3188,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterSuccess) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://request1"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// The first request should have triggered initial download of PAC script.
@@ -3189,8 +3249,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterSuccess) {
// Start a second request.
ProxyInfo info2;
TestCompletionCallback callback2;
- rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://request2"), std::string(), LOAD_NORMAL,
+ &info2, callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_TRUE(info2.is_direct());
}
@@ -3272,7 +3333,7 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterActivity) {
new MockAsyncProxyResolverFactory(true);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service.SetProxyScriptFetchers(
@@ -3282,9 +3343,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterActivity) {
ProxyInfo info1;
TestCompletionCallback callback1;
- int rv =
- service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1,
- callback1.callback(), NULL, NULL, BoundNetLog());
+ int rv = service.ResolveProxy(GURL("http://request1"), std::string(),
+ LOAD_NORMAL, &info1, callback1.callback(),
+ nullptr, nullptr, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// The first request should have triggered initial download of PAC script.
@@ -3327,8 +3388,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterActivity) {
// Start a second request.
ProxyInfo info2;
TestCompletionCallback callback2;
- rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2,
- callback2.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://request2"), std::string(), LOAD_NORMAL,
+ &info2, callback2.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
// This request should have sent work to the resolver; complete it.
@@ -3357,8 +3419,9 @@ TEST_F(ProxyServiceTest, PACScriptRefetchAfterActivity) {
// since the PAC script poller experienced a failure.
ProxyInfo info3;
TestCompletionCallback callback3;
- rv = service.ResolveProxy(GURL("http://request3"), LOAD_NORMAL, &info3,
- callback3.callback(), NULL, NULL, BoundNetLog());
+ rv = service.ResolveProxy(GURL("http://request3"), std::string(), LOAD_NORMAL,
+ &info3, callback3.callback(), nullptr, nullptr,
+ BoundNetLog());
EXPECT_EQ(OK, rv);
EXPECT_TRUE(info3.is_direct());
}
@@ -3372,7 +3435,7 @@ TEST_F(ProxyServiceTest, SynchronousWithPAC) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(config_service),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
@@ -3381,7 +3444,7 @@ TEST_F(ProxyServiceTest, SynchronousWithPAC) {
BoundTestNetLog log;
bool synchronous_success = service.TryResolveProxySynchronously(
- url, LOAD_NORMAL, &info, NULL, log.bound());
+ url, std::string(), LOAD_NORMAL, &info, nullptr, log.bound());
EXPECT_FALSE(synchronous_success);
// |info| should not have been modified.
@@ -3399,7 +3462,7 @@ TEST_F(ProxyServiceTest, SynchronousWithFixedConfiguration) {
new MockAsyncProxyResolverFactory(false);
ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)),
- make_scoped_ptr(factory), NULL);
+ make_scoped_ptr(factory), nullptr);
GURL url("http://www.google.com/");
@@ -3407,7 +3470,7 @@ TEST_F(ProxyServiceTest, SynchronousWithFixedConfiguration) {
BoundTestNetLog log;
bool synchronous_success = service.TryResolveProxySynchronously(
- url, LOAD_NORMAL, &info, NULL, log.bound());
+ url, std::string(), LOAD_NORMAL, &info, nullptr, log.bound());
EXPECT_TRUE(synchronous_success);
EXPECT_FALSE(info.is_direct());
EXPECT_EQ("foopy1", info.proxy_server().host_port_pair().host());
diff --git a/net/url_request/url_request_ftp_job.cc b/net/url_request/url_request_ftp_job.cc
index 9d8dd49..dc2fc68 100644
--- a/net/url_request/url_request_ftp_job.cc
+++ b/net/url_request/url_request_ftp_job.cc
@@ -101,14 +101,10 @@ void URLRequestFtpJob::Start() {
} else {
DCHECK_EQ(request_->context()->proxy_service(), proxy_service_);
rv = proxy_service_->ResolveProxy(
- request_->url(),
- request_->load_flags(),
- &proxy_info_,
+ request_->url(), "GET", request_->load_flags(), &proxy_info_,
base::Bind(&URLRequestFtpJob::OnResolveProxyComplete,
base::Unretained(this)),
- &pac_request_,
- NULL,
- request_->net_log());
+ &pac_request_, NULL, request_->net_log());
if (rv == ERR_IO_PENDING)
return;
diff --git a/net/websockets/websocket_end_to_end_test.cc b/net/websockets/websocket_end_to_end_test.cc
index 3dcf336..2405337 100644
--- a/net/websockets/websocket_end_to_end_test.cc
+++ b/net/websockets/websocket_end_to_end_test.cc
@@ -9,6 +9,7 @@
// require special server configurations.
#include <stdint.h>
+
#include <string>
#include "base/bind.h"
@@ -210,6 +211,7 @@ class TestProxyDelegateWithProxyInfo : public ProxyDelegate {
protected:
void OnResolveProxy(const GURL& url,
+ const std::string& method,
int load_flags,
const ProxyService& proxy_service,
ProxyInfo* result) override {