diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-27 21:37:12 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-27 21:37:12 +0000 |
commit | 6104ea5d0b3eb19a923ae94a5f7fcae8e0e091e2 (patch) | |
tree | 93a11c09778f638718cd19be3249e54defd1f90f /net/proxy | |
parent | 418e953e7285de2f29f6523c741cbca951f26562 (diff) | |
download | chromium_src-6104ea5d0b3eb19a923ae94a5f7fcae8e0e091e2.zip chromium_src-6104ea5d0b3eb19a923ae94a5f7fcae8e0e091e2.tar.gz chromium_src-6104ea5d0b3eb19a923ae94a5f7fcae8e0e091e2.tar.bz2 |
Stop refcounting ProxyService.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6873096
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83222 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy')
-rw-r--r-- | net/proxy/proxy_script_fetcher_impl_unittest.cc | 18 | ||||
-rw-r--r-- | net/proxy/proxy_service.h | 8 | ||||
-rw-r--r-- | net/proxy/proxy_service_unittest.cc | 328 |
3 files changed, 162 insertions, 192 deletions
diff --git a/net/proxy/proxy_script_fetcher_impl_unittest.cc b/net/proxy/proxy_script_fetcher_impl_unittest.cc index 89db823..911022f 100644 --- a/net/proxy/proxy_script_fetcher_impl_unittest.cc +++ b/net/proxy/proxy_script_fetcher_impl_unittest.cc @@ -16,6 +16,7 @@ #include "net/disk_cache/disk_cache.h" #include "net/http/http_cache.h" #include "net/http/http_network_session.h" +#include "net/url_request/url_request_context_storage.h" #include "net/url_request/url_request_test_util.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" @@ -39,14 +40,14 @@ struct FetchResult { // A non-mock URL request which can access http:// and file:// urls. class RequestContext : public URLRequestContext { public: - RequestContext() { + RequestContext() : ALLOW_THIS_IN_INITIALIZER_LIST(storage_(this)) { ProxyConfig no_proxy; - set_host_resolver( + storage_.set_host_resolver( CreateSystemHostResolver(HostResolver::kDefaultParallelism, NULL)); - set_cert_verifier(new CertVerifier); - set_proxy_service(ProxyService::CreateFixed(no_proxy)); - set_ssl_config_service(new SSLConfigServiceDefaults); + storage_.set_cert_verifier(new CertVerifier); + storage_.set_proxy_service(ProxyService::CreateFixed(no_proxy)); + storage_.set_ssl_config_service(new SSLConfigServiceDefaults); HttpNetworkSession::Params params; params.host_resolver = host_resolver(); @@ -55,17 +56,16 @@ class RequestContext : public URLRequestContext { params.ssl_config_service = ssl_config_service(); scoped_refptr<HttpNetworkSession> network_session( new HttpNetworkSession(params)); - set_http_transaction_factory(new HttpCache( + storage_.set_http_transaction_factory(new HttpCache( network_session, HttpCache::DefaultBackend::InMemory(0))); } private: ~RequestContext() { - delete http_transaction_factory(); - delete cert_verifier(); - delete host_resolver(); } + + URLRequestContextStorage storage_; }; // Get a file:// url relative to net/data/proxy/proxy_script_fetcher_unittest. diff --git a/net/proxy/proxy_service.h b/net/proxy/proxy_service.h index 8146470..5f6cbf2 100644 --- a/net/proxy/proxy_service.h +++ b/net/proxy/proxy_service.h @@ -34,8 +34,7 @@ class URLRequestContext; // This class can be used to resolve the proxy server to use when loading a // HTTP(S) URL. It uses the given ProxyResolver to handle the actual proxy // resolution. See ProxyResolverV8 for example. -class ProxyService : public base::RefCounted<ProxyService>, - public NetworkChangeNotifier::IPAddressObserver, +class ProxyService : public NetworkChangeNotifier::IPAddressObserver, public ProxyConfigService::Observer, public base::NonThreadSafe { public: @@ -46,6 +45,8 @@ class ProxyService : public base::RefCounted<ProxyService>, ProxyResolver* resolver, NetLog* net_log); + virtual ~ProxyService(); + // Used internally to handle PAC queries. // TODO(eroman): consider naming this simply "Request". class PacRequest; @@ -217,7 +218,6 @@ class ProxyService : public base::RefCounted<ProxyService>, #endif private: - friend class base::RefCounted<ProxyService>; FRIEND_TEST_ALL_PREFIXES(ProxyServiceTest, UpdateConfigAfterFailedAutodetect); FRIEND_TEST_ALL_PREFIXES(ProxyServiceTest, UpdateConfigFromPACToDirect); friend class PacRequest; @@ -235,8 +235,6 @@ class ProxyService : public base::RefCounted<ProxyService>, STATE_READY, }; - virtual ~ProxyService(); - // Resets all the variables associated with the current proxy configuration, // and rewinds the current state to |STATE_NONE|. Returns the previous value // of |current_state_|. If |reset_fetched_config| is true then diff --git a/net/proxy/proxy_service_unittest.cc b/net/proxy/proxy_service_unittest.cc index 7326c67..4e6d38a 100644 --- a/net/proxy/proxy_service_unittest.cc +++ b/net/proxy/proxy_service_unittest.cc @@ -116,16 +116,15 @@ class MockProxyScriptFetcher : public ProxyScriptFetcher { TEST(ProxyServiceTest, Direct) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(new MockProxyConfigService( - ProxyConfig::CreateDirect()), resolver, NULL)); + ProxyService service(new MockProxyConfigService( + ProxyConfig::CreateDirect()), resolver, NULL); GURL url("http://www.google.com/"); ProxyInfo info; TestCompletionCallback callback; CapturingBoundNetLog log(CapturingNetLog::kUnbounded); - int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); + int rv = service.ResolveProxy(url, &info, &callback, NULL, log.bound()); EXPECT_EQ(OK, rv); EXPECT_TRUE(resolver->pending_requests().empty()); @@ -151,8 +150,7 @@ TEST(ProxyServiceTest, PAC) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); GURL url("http://www.google.com/"); @@ -160,7 +158,7 @@ TEST(ProxyServiceTest, PAC) { TestCompletionCallback callback; CapturingBoundNetLog log(CapturingNetLog::kUnbounded); - int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); + int rv = service.ResolveProxy(url, &info, &callback, NULL, log.bound()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), @@ -201,14 +199,13 @@ TEST(ProxyServiceTest, PAC_NoIdentityOrHash) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); GURL url("http://username:password@www.google.com/?ref#hash#hash"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(url, &info, &callback, NULL, BoundNetLog()); + int rv = service.ResolveProxy(url, &info, &callback, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), @@ -229,14 +226,13 @@ TEST(ProxyServiceTest, PAC_FailoverWithoutDirect) { new MockProxyConfigService("http://foopy/proxy.pac"); MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); GURL url("http://www.google.com/"); ProxyInfo info; TestCompletionCallback callback1; - int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); + int rv = service.ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), @@ -258,8 +254,8 @@ TEST(ProxyServiceTest, PAC_FailoverWithoutDirect) { // left to fallback to, since our proxy list was NOT terminated by // DIRECT. TestCompletionCallback callback2; - rv = service->ReconsiderProxyAfterError(url, &info, &callback2, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback2, NULL, + BoundNetLog()); // ReconsiderProxyAfterError returns error indicating nothing left. EXPECT_EQ(ERR_FAILED, rv); EXPECT_TRUE(info.is_empty()); @@ -287,14 +283,13 @@ TEST(ProxyServiceTest, PAC_FailoverAfterDirect) { new MockProxyConfigService("http://foopy/proxy.pac"); MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); GURL url("http://www.google.com/"); ProxyInfo info; TestCompletionCallback callback1; - int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); + int rv = service.ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), @@ -314,31 +309,31 @@ TEST(ProxyServiceTest, PAC_FailoverAfterDirect) { // Fallback 1. TestCompletionCallback callback2; - rv = service->ReconsiderProxyAfterError(url, &info, &callback2, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback2, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_FALSE(info.is_direct()); EXPECT_EQ("foobar:10", info.proxy_server().ToURI()); // Fallback 2. TestCompletionCallback callback3; - rv = service->ReconsiderProxyAfterError(url, &info, &callback3, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback3, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_TRUE(info.is_direct()); // Fallback 3. TestCompletionCallback callback4; - rv = service->ReconsiderProxyAfterError(url, &info, &callback4, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback4, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_FALSE(info.is_direct()); EXPECT_EQ("foobar:20", info.proxy_server().ToURI()); // Fallback 4 -- Nothing to fall back to! TestCompletionCallback callback5; - rv = service->ReconsiderProxyAfterError(url, &info, &callback5, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback5, NULL, + BoundNetLog()); EXPECT_EQ(ERR_FAILED, rv); EXPECT_TRUE(info.is_empty()); } @@ -353,14 +348,13 @@ TEST(ProxyServiceTest, ProxyResolverFails) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); // Start first resolve request. GURL url("http://www.google.com/"); ProxyInfo info; TestCompletionCallback callback1; - int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); + int rv = service.ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), @@ -381,7 +375,7 @@ TEST(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, &info, &callback2, NULL, BoundNetLog()); + rv = service.ResolveProxy(url, &info, &callback2, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ASSERT_EQ(1u, resolver->pending_requests().size()); @@ -406,15 +400,14 @@ TEST(ProxyServiceTest, ProxyFallback) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); GURL url("http://www.google.com/"); // Get the proxy information. ProxyInfo info; TestCompletionCallback callback1; - int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); + int rv = service.ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), @@ -436,15 +429,15 @@ TEST(ProxyServiceTest, ProxyFallback) { // Fake an error on the proxy. TestCompletionCallback callback2; - rv = service->ReconsiderProxyAfterError(url, &info, &callback2, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback2, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); // The second proxy should be specified. EXPECT_EQ("foopy2:9090", info.proxy_server().ToURI()); TestCompletionCallback callback3; - rv = service->ResolveProxy(url, &info, &callback3, NULL, BoundNetLog()); + rv = service.ResolveProxy(url, &info, &callback3, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ASSERT_EQ(1u, resolver->pending_requests().size()); @@ -462,8 +455,8 @@ TEST(ProxyServiceTest, ProxyFallback) { // We fake another error. It should now try the third one. TestCompletionCallback callback4; - rv = service->ReconsiderProxyAfterError(url, &info, &callback4, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback4, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_EQ("foopy2:9090", info.proxy_server().ToURI()); @@ -471,16 +464,16 @@ TEST(ProxyServiceTest, ProxyFallback) { // proxy servers we thought were valid; next we try the proxy server // that was in our bad proxies map (foopy1:8080). TestCompletionCallback callback5; - rv = service->ReconsiderProxyAfterError(url, &info, &callback5, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback5, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); // Fake another error, the last proxy is gone, the list should now be empty, // so there is nothing left to try. TestCompletionCallback callback6; - rv = service->ReconsiderProxyAfterError(url, &info, &callback6, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback6, NULL, + BoundNetLog()); EXPECT_EQ(ERR_FAILED, rv); EXPECT_FALSE(info.is_direct()); EXPECT_TRUE(info.is_empty()); @@ -496,15 +489,14 @@ TEST(ProxyServiceTest, ProxyFallbackToDirect) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); GURL url("http://www.google.com/"); // Get the proxy information. ProxyInfo info; TestCompletionCallback callback1; - int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); + int rv = service.ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), @@ -526,8 +518,8 @@ TEST(ProxyServiceTest, ProxyFallbackToDirect) { // Fake an error on the proxy. TestCompletionCallback callback2; - rv = service->ReconsiderProxyAfterError(url, &info, &callback2, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback2, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); // Now we get back the second proxy. @@ -535,8 +527,8 @@ TEST(ProxyServiceTest, ProxyFallbackToDirect) { // Fake an error on this proxy as well. TestCompletionCallback callback3; - rv = service->ReconsiderProxyAfterError(url, &info, &callback3, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback3, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); // Finally, we get back DIRECT. @@ -544,8 +536,8 @@ TEST(ProxyServiceTest, ProxyFallbackToDirect) { // Now we tell the proxy service that even DIRECT failed. TestCompletionCallback callback4; - rv = service->ReconsiderProxyAfterError(url, &info, &callback4, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback4, NULL, + BoundNetLog()); // There was nothing left to try after DIRECT, so we are out of // choices. EXPECT_EQ(ERR_FAILED, rv); @@ -559,15 +551,14 @@ TEST(ProxyServiceTest, ProxyFallback_NewSettings) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); GURL url("http://www.google.com/"); // Get the proxy information. ProxyInfo info; TestCompletionCallback callback1; - int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); + int rv = service.ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), @@ -592,8 +583,8 @@ TEST(ProxyServiceTest, ProxyFallback_NewSettings) { ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy-new/proxy.pac"))); TestCompletionCallback callback2; - rv = service->ReconsiderProxyAfterError(url, &info, &callback2, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback2, NULL, + BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy-new/proxy.pac"), @@ -613,8 +604,8 @@ TEST(ProxyServiceTest, ProxyFallback_NewSettings) { // We fake another error. It should now ignore the first one. TestCompletionCallback callback3; - rv = service->ReconsiderProxyAfterError(url, &info, &callback3, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback3, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_EQ("foopy2:9090", info.proxy_server().ToURI()); @@ -625,8 +616,8 @@ TEST(ProxyServiceTest, ProxyFallback_NewSettings) { // We fake another error. It should go back to the first proxy. TestCompletionCallback callback4; - rv = service->ReconsiderProxyAfterError(url, &info, &callback4, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback4, NULL, + BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy-new2/proxy.pac"), @@ -652,15 +643,14 @@ TEST(ProxyServiceTest, ProxyFallback_BadConfig) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); GURL url("http://www.google.com/"); // Get the proxy information. ProxyInfo info; TestCompletionCallback callback1; - int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); + int rv = service.ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), @@ -680,8 +670,8 @@ TEST(ProxyServiceTest, ProxyFallback_BadConfig) { // Fake a proxy error. TestCompletionCallback callback2; - rv = service->ReconsiderProxyAfterError(url, &info, &callback2, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info, &callback2, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); // The first proxy is ignored, and the second one is selected. @@ -691,7 +681,7 @@ TEST(ProxyServiceTest, ProxyFallback_BadConfig) { // Fake a PAC failure. ProxyInfo info2; TestCompletionCallback callback3; - rv = service->ResolveProxy(url, &info2, &callback3, NULL, BoundNetLog()); + rv = service.ResolveProxy(url, &info2, &callback3, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ASSERT_EQ(1u, resolver->pending_requests().size()); @@ -711,8 +701,8 @@ TEST(ProxyServiceTest, ProxyFallback_BadConfig) { // "just work" the next time we call it. ProxyInfo info3; TestCompletionCallback callback4; - rv = service->ReconsiderProxyAfterError(url, &info3, &callback4, NULL, - BoundNetLog()); + rv = service.ReconsiderProxyAfterError(url, &info3, &callback4, NULL, + BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ASSERT_EQ(1u, resolver->pending_requests().size()); @@ -739,20 +729,20 @@ TEST(ProxyServiceTest, ProxyBypassList) { config.set_auto_detect(false); config.proxy_rules().bypass_rules.ParseFromString("*.org"); - scoped_refptr<ProxyService> service(new ProxyService( - new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); + ProxyService service( + new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL); 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, &info[0], &callback[0], NULL, BoundNetLog()); + rv = service.ResolveProxy(url1, &info[0], &callback[0], NULL, BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_TRUE(info[0].is_direct()); // Request for a .com domain hits the proxy. - rv = service->ResolveProxy(url2, &info[1], &callback[1], NULL, BoundNetLog()); + rv = service.ResolveProxy(url2, &info[1], &callback[1], NULL, BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_EQ("foopy1:8080", info[1].proxy_server().ToURI()); } @@ -763,50 +753,50 @@ TEST(ProxyServiceTest, PerProtocolProxyTests) { config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); config.set_auto_detect(false); { - scoped_refptr<ProxyService> service(new ProxyService( - new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); + ProxyService service( + new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL); GURL test_url("http://www.msn.com"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(test_url, &info, &callback, NULL, - BoundNetLog()); + int rv = service.ResolveProxy(test_url, &info, &callback, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_FALSE(info.is_direct()); EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); } { - scoped_refptr<ProxyService> service(new ProxyService( - new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); + ProxyService service( + new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL); GURL test_url("ftp://ftp.google.com"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(test_url, &info, &callback, NULL, - BoundNetLog()); + int rv = service.ResolveProxy(test_url, &info, &callback, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_TRUE(info.is_direct()); EXPECT_EQ("direct://", info.proxy_server().ToURI()); } { - scoped_refptr<ProxyService> service(new ProxyService( - new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); + ProxyService service( + new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL); GURL test_url("https://webbranch.techcu.com"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(test_url, &info, &callback, NULL, - BoundNetLog()); + int rv = service.ResolveProxy(test_url, &info, &callback, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_FALSE(info.is_direct()); EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); } { config.proxy_rules().ParseFromString("foopy1:8080"); - scoped_refptr<ProxyService> service(new ProxyService( - new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); + ProxyService service( + new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL); GURL test_url("http://www.microsoft.com"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(test_url, &info, &callback, NULL, - BoundNetLog()); + int rv = service.ResolveProxy(test_url, &info, &callback, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_FALSE(info.is_direct()); EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); @@ -823,49 +813,49 @@ TEST(ProxyServiceTest, DefaultProxyFallbackToSOCKS) { config.proxy_rules().type); { - scoped_refptr<ProxyService> service(new ProxyService( - new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); + ProxyService service( + new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL); GURL test_url("http://www.msn.com"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(test_url, &info, &callback, NULL, - BoundNetLog()); + int rv = service.ResolveProxy(test_url, &info, &callback, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_FALSE(info.is_direct()); EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); } { - scoped_refptr<ProxyService> service(new ProxyService( - new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); + ProxyService service( + new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL); GURL test_url("ftp://ftp.google.com"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(test_url, &info, &callback, NULL, - BoundNetLog()); + int rv = service.ResolveProxy(test_url, &info, &callback, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_FALSE(info.is_direct()); EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); } { - scoped_refptr<ProxyService> service(new ProxyService( - new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); + ProxyService service( + new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL); GURL test_url("https://webbranch.techcu.com"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(test_url, &info, &callback, NULL, - BoundNetLog()); + int rv = service.ResolveProxy(test_url, &info, &callback, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_FALSE(info.is_direct()); EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); } { - scoped_refptr<ProxyService> service(new ProxyService( - new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); + ProxyService service( + new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL); GURL test_url("unknown://www.microsoft.com"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(test_url, &info, &callback, NULL, - BoundNetLog()); + int rv = service.ResolveProxy(test_url, &info, &callback, NULL, + BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_FALSE(info.is_direct()); EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); @@ -879,14 +869,13 @@ TEST(ProxyServiceTest, CancelInProgressRequest) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); // Start 3 requests. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -905,7 +894,7 @@ TEST(ProxyServiceTest, CancelInProgressRequest) { ProxyInfo info2; TestCompletionCallback callback2; ProxyService::PacRequest* request2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request2"), &info2, &callback2, &request2, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ASSERT_EQ(2u, resolver->pending_requests().size()); @@ -913,14 +902,14 @@ TEST(ProxyServiceTest, CancelInProgressRequest) { ProxyInfo info3; TestCompletionCallback callback3; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request3"), &info3, &callback3, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ASSERT_EQ(3u, resolver->pending_requests().size()); EXPECT_EQ(GURL("http://request3"), resolver->pending_requests()[2]->url()); // Cancel the second request - service->CancelPacRequest(request2); + service.CancelPacRequest(request2); ASSERT_EQ(2u, resolver->pending_requests().size()); EXPECT_EQ(GURL("http://request1"), resolver->pending_requests()[0]->url()); @@ -954,17 +943,16 @@ TEST(ProxyServiceTest, InitialPACScriptDownload) { MockAsyncProxyResolverExpectsBytes* resolver = new MockAsyncProxyResolverExpectsBytes; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Start 3 requests. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -974,13 +962,13 @@ TEST(ProxyServiceTest, InitialPACScriptDownload) { ProxyInfo info2; TestCompletionCallback callback2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request2"), &info2, &callback2, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ProxyInfo info3; TestCompletionCallback callback3; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request3"), &info3, &callback3, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1034,17 +1022,16 @@ TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { MockAsyncProxyResolverExpectsBytes* resolver = new MockAsyncProxyResolverExpectsBytes; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Start 2 requests. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1054,7 +1041,7 @@ TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { ProxyInfo info2; TestCompletionCallback callback2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request2"), &info2, &callback2, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1066,7 +1053,7 @@ TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { // the initialization with the new fetcher. fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Nothing has been sent to the resolver yet. EXPECT_TRUE(resolver->pending_requests().empty()); @@ -1092,18 +1079,17 @@ TEST(ProxyServiceTest, CancelWhilePACFetching) { MockAsyncProxyResolverExpectsBytes* resolver = new MockAsyncProxyResolverExpectsBytes; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Start 3 requests. ProxyInfo info1; TestCompletionCallback callback1; ProxyService::PacRequest* request1; CapturingBoundNetLog log1(CapturingNetLog::kUnbounded); - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://request1"), &info1, &callback1, &request1, log1.bound()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1114,13 +1100,13 @@ TEST(ProxyServiceTest, CancelWhilePACFetching) { ProxyInfo info2; TestCompletionCallback callback2; ProxyService::PacRequest* request2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request2"), &info2, &callback2, &request2, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ProxyInfo info3; TestCompletionCallback callback3; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request3"), &info3, &callback3, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1128,8 +1114,8 @@ TEST(ProxyServiceTest, CancelWhilePACFetching) { EXPECT_TRUE(resolver->pending_requests().empty()); // Cancel the first 2 requests. - service->CancelPacRequest(request1); - service->CancelPacRequest(request2); + service.CancelPacRequest(request1); + service.CancelPacRequest(request2); // At this point the ProxyService should be waiting for the // ProxyScriptFetcher to invoke its completion callback, notifying it of @@ -1184,24 +1170,23 @@ TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac) { MockProxyConfigService* config_service = new MockProxyConfigService(config); MockAsyncProxyResolverExpectsBytes* resolver = new MockAsyncProxyResolverExpectsBytes; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Start 2 requests. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ProxyInfo info2; TestCompletionCallback callback2; ProxyService::PacRequest* request2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request2"), &info2, &callback2, &request2, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1255,24 +1240,23 @@ TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) { MockProxyConfigService* config_service = new MockProxyConfigService(config); MockAsyncProxyResolverExpectsBytes* resolver = new MockAsyncProxyResolverExpectsBytes; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Start 2 requests. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ProxyInfo info2; TestCompletionCallback callback2; ProxyService::PacRequest* request2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request2"), &info2, &callback2, &request2, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1331,24 +1315,23 @@ TEST(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) { MockProxyConfigService* config_service = new MockProxyConfigService(config); MockAsyncProxyResolverExpectsBytes* resolver = new MockAsyncProxyResolverExpectsBytes; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Start 2 requests. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); ProxyInfo info2; TestCompletionCallback callback2; ProxyService::PacRequest* request2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request2"), &info2, &callback2, &request2, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1389,17 +1372,16 @@ TEST(ProxyServiceTest, BypassDoesntApplyToPac) { MockProxyConfigService* config_service = new MockProxyConfigService(config); MockAsyncProxyResolverExpectsBytes* resolver = new MockAsyncProxyResolverExpectsBytes; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Start 1 requests. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1430,7 +1412,7 @@ TEST(ProxyServiceTest, BypassDoesntApplyToPac) { // Start another request, it should pickup the bypass item. ProxyInfo info2; TestCompletionCallback callback2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://www.google.com"), &info2, &callback2, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1457,17 +1439,16 @@ TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { MockProxyConfigService* config_service = new MockProxyConfigService(config); MockAsyncProxyResolverExpectsBytes* resolver = new MockAsyncProxyResolverExpectsBytes; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Start 1 request. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1478,9 +1459,6 @@ TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { // and be waiting on that to complete. EXPECT_TRUE(fetcher->has_pending_request()); EXPECT_EQ(GURL("http://foopy/proxy.pac"), fetcher->pending_request_url()); - - // Delete the ProxyService - service = NULL; } // Delete the ProxyService while InitProxyResolver has an outstanding @@ -1493,34 +1471,30 @@ TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) { MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); GURL url("http://www.google.com/"); ProxyInfo info; TestCompletionCallback callback; - int rv = service->ResolveProxy(url, &info, &callback, NULL, BoundNetLog()); + int rv = service.ResolveProxy(url, &info, &callback, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_EQ(GURL("http://foopy/proxy.pac"), resolver->pending_set_pac_script_request()->script_data()->url()); - - // Delete the ProxyService. - service = NULL; } TEST(ProxyServiceTest, ResetProxyConfigService) { ProxyConfig config1; config1.proxy_rules().ParseFromString("foopy1:8080"); config1.set_auto_detect(false); - scoped_refptr<ProxyService> service(new ProxyService( + ProxyService service( new MockProxyConfigService(config1), - new MockAsyncProxyResolverExpectsBytes, NULL)); + new MockAsyncProxyResolverExpectsBytes, NULL); ProxyInfo info; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://request1"), &info, &callback1, NULL, BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); @@ -1528,9 +1502,9 @@ TEST(ProxyServiceTest, ResetProxyConfigService) { ProxyConfig config2; config2.proxy_rules().ParseFromString("foopy2:8080"); config2.set_auto_detect(false); - service->ResetConfigService(new MockProxyConfigService(config2)); + service.ResetConfigService(new MockProxyConfigService(config2)); TestCompletionCallback callback2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request2"), &info, &callback2, NULL, BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); @@ -1543,14 +1517,13 @@ TEST(ProxyServiceTest, UpdateConfigFromPACToDirect) { MockProxyConfigService* config_service = new MockProxyConfigService(config); MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, NULL)); + ProxyService service(config_service, resolver, NULL); // Start 1 request. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1581,7 +1554,7 @@ TEST(ProxyServiceTest, UpdateConfigFromPACToDirect) { // Start another request -- the effective configuration has changed. ProxyInfo info2; TestCompletionCallback callback2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://www.google.com"), &info2, &callback2, NULL, BoundNetLog()); EXPECT_EQ(OK, rv); @@ -1597,21 +1570,20 @@ TEST(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { CapturingNetLog log(CapturingNetLog::kUnbounded); - scoped_refptr<ProxyService> service( - new ProxyService(config_service, resolver, &log)); + ProxyService service(config_service, resolver, &log); MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; - service->SetProxyScriptFetcher(fetcher); + service.SetProxyScriptFetcher(fetcher); // Disable the "wait after IP address changes" hack, so this unit-test can // complete quickly. - service->set_stall_proxy_auto_config_delay(base::TimeDelta()); + service.set_stall_proxy_auto_config_delay(base::TimeDelta()); // Start 1 request. ProxyInfo info1; TestCompletionCallback callback1; - int rv = service->ResolveProxy( + int rv = service.ResolveProxy( GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1653,7 +1625,7 @@ TEST(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { // Start a second request. ProxyInfo info2; TestCompletionCallback callback2; - rv = service->ResolveProxy( + rv = service.ResolveProxy( GURL("http://request2"), &info2, &callback2, NULL, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); |