summaryrefslogtreecommitdiffstats
path: root/net/proxy
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-25 21:30:38 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-25 21:30:38 +0000
commit66761b95332549f825999e482c17c94675275f49 (patch)
treefc5307808a2c62f1eff2a9f37db3aff11c5455d9 /net/proxy
parente313f3b11360902a3da9b3b1cc0df2a4792d0867 (diff)
downloadchromium_src-66761b95332549f825999e482c17c94675275f49.zip
chromium_src-66761b95332549f825999e482c17c94675275f49.tar.gz
chromium_src-66761b95332549f825999e482c17c94675275f49.tar.bz2
Massively simplify the NetworkChangeNotifier infrastructure:
* Use a process-wide object (singleton pattern) * Create/destroy this object on the main thread, make it outlive all consumers * Make observer-related functions threadsafe As a result, the notifier can now be used by any thread (eliminating things like NetworkChangeObserverProxy and NetworkChangeNotifierProxy, and expanding its usefulness); its creation and inner workings are much simplified (eliminating implementation-specific classes); and it is simpler to access (eliminating things like NetworkChangeNotifierThread and a LOT of passing pointers around). BUG=none TEST=Unittests; network changes still trigger notifications Review URL: http://codereview.chromium.org/2802015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50895 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy')
-rw-r--r--net/proxy/proxy_script_fetcher_unittest.cc12
-rw-r--r--net/proxy/proxy_service.cc29
-rw-r--r--net/proxy/proxy_service.h26
-rw-r--r--net/proxy/proxy_service_unittest.cc86
4 files changed, 59 insertions, 94 deletions
diff --git a/net/proxy/proxy_script_fetcher_unittest.cc b/net/proxy/proxy_script_fetcher_unittest.cc
index ff12ebc..c3925e3 100644
--- a/net/proxy/proxy_script_fetcher_unittest.cc
+++ b/net/proxy/proxy_script_fetcher_unittest.cc
@@ -32,16 +32,14 @@ class RequestContext : public URLRequestContext {
public:
RequestContext() {
net::ProxyConfig no_proxy;
- host_resolver_ = net::CreateSystemHostResolver(NULL);
+ host_resolver_ = net::CreateSystemHostResolver();
proxy_service_ = net::ProxyService::CreateFixed(no_proxy);
ssl_config_service_ = new net::SSLConfigServiceDefaults;
- http_transaction_factory_ =
- new net::HttpCache(
- net::HttpNetworkLayer::CreateFactory(
- NULL, host_resolver_, proxy_service_, ssl_config_service_,
- NULL, NULL, NULL),
- net::HttpCache::DefaultBackend::InMemory(0));
+ http_transaction_factory_ = new net::HttpCache(
+ net::HttpNetworkLayer::CreateFactory(host_resolver_, proxy_service_,
+ ssl_config_service_, NULL, NULL, NULL),
+ net::HttpCache::DefaultBackend::InMemory(0));
}
private:
diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc
index 002c514..cb7da0c 100644
--- a/net/proxy/proxy_service.cc
+++ b/net/proxy/proxy_service.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -200,7 +200,6 @@ class ProxyService::PacRequest
ProxyService::ProxyService(ProxyConfigService* config_service,
ProxyResolver* resolver,
- NetworkChangeNotifier* network_change_notifier,
NetLog* net_log)
: config_service_(config_service),
resolver_(resolver),
@@ -208,11 +207,8 @@ ProxyService::ProxyService(ProxyConfigService* config_service,
should_use_proxy_resolver_(false),
ALLOW_THIS_IN_INITIALIZER_LIST(init_proxy_resolver_callback_(
this, &ProxyService::OnInitProxyResolverComplete)),
- net_log_(net_log),
- network_change_notifier_(network_change_notifier) {
- // Register to receive network change notifications.
- if (network_change_notifier_)
- network_change_notifier_->AddObserver(this);
+ net_log_(net_log) {
+ NetworkChangeNotifier::AddObserver(this);
}
// static
@@ -220,7 +216,6 @@ ProxyService* ProxyService::Create(
ProxyConfigService* proxy_config_service,
bool use_v8_resolver,
URLRequestContext* url_request_context,
- NetworkChangeNotifier* network_change_notifier,
NetLog* net_log,
MessageLoop* io_loop) {
ProxyResolver* proxy_resolver = NULL;
@@ -249,9 +244,8 @@ ProxyService* ProxyService::Create(
new SingleThreadedProxyResolver(CreateNonV8ProxyResolver());
}
- ProxyService* proxy_service = new ProxyService(
- proxy_config_service, proxy_resolver, network_change_notifier,
- net_log);
+ ProxyService* proxy_service =
+ new ProxyService(proxy_config_service, proxy_resolver, net_log);
if (proxy_resolver->expects_pac_bytes()) {
// Configure PAC script downloads to be issued using |url_request_context|.
@@ -265,16 +259,13 @@ ProxyService* ProxyService::Create(
// static
ProxyService* ProxyService::CreateFixed(const ProxyConfig& pc) {
- return Create(new ProxyConfigServiceFixed(pc), false, NULL, NULL,
- NULL, NULL);
+ return Create(new ProxyConfigServiceFixed(pc), false, NULL, NULL, NULL);
}
// static
ProxyService* ProxyService::CreateNull() {
// Use a configuration fetcher and proxy resolver which always fail.
- return new ProxyService(new ProxyConfigServiceNull,
- new ProxyResolverNull,
- NULL,
+ return new ProxyService(new ProxyConfigServiceNull, new ProxyResolverNull,
NULL);
}
@@ -341,9 +332,7 @@ int ProxyService::TryToCompleteSynchronously(const GURL& url,
}
ProxyService::~ProxyService() {
- // Unregister to receive network change notifications.
- if (network_change_notifier_)
- network_change_notifier_->RemoveObserver(this);
+ NetworkChangeNotifier::RemoveObserver(this);
// Cancel any inprogress requests.
for (PendingRequests::iterator it = pending_requests_.begin();
@@ -675,8 +664,6 @@ void ProxyService::UpdateConfigIfOld(const BoundNetLog& net_log) {
void ProxyService::OnIPAddressChanged() {
- DCHECK(network_change_notifier_);
-
// Mark the current configuration as being un-initialized.
//
// This will force us to re-fetch the configuration (and re-run all of
diff --git a/net/proxy/proxy_service.h b/net/proxy/proxy_service.h
index 49c7979..22435e4 100644
--- a/net/proxy/proxy_service.h
+++ b/net/proxy/proxy_service.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -36,13 +36,10 @@ class ProxyService : public base::RefCountedThreadSafe<ProxyService>,
public NetworkChangeNotifier::Observer {
public:
// The instance takes ownership of |config_service| and |resolver|.
- // If |network_change_notifier| is non-NULL, the proxy service will register
- // with it to detect when the network setup has changed. This is used to
- // decide when to re-configure the proxy discovery.
// |net_log| is a possibly NULL destination to send log events to. It must
// remain alive for the lifetime of this ProxyService.
- ProxyService(ProxyConfigService* config_service, ProxyResolver* resolver,
- NetworkChangeNotifier* network_change_notifier,
+ ProxyService(ProxyConfigService* config_service,
+ ProxyResolver* resolver,
NetLog* net_log);
// Used internally to handle PAC queries.
@@ -143,8 +140,6 @@ class ProxyService : public base::RefCountedThreadSafe<ProxyService>,
// |url_request_context| is only used when use_v8_resolver is true:
// it specifies the URL request context that will be used if a PAC
// script needs to be fetched.
- // |network_change_notifier| may be NULL. Otherwise it will be used to
- // signal the ProxyService when the network setup has changed.
// |io_loop| points to the IO thread's message loop. It is only used
// when pc is NULL.
// ##########################################################################
@@ -156,7 +151,6 @@ class ProxyService : public base::RefCountedThreadSafe<ProxyService>,
ProxyConfigService* proxy_config_service,
bool use_v8_resolver,
URLRequestContext* url_request_context,
- NetworkChangeNotifier* network_change_notifier,
NetLog* net_log,
MessageLoop* io_loop);
@@ -244,7 +238,8 @@ class ProxyService : public base::RefCountedThreadSafe<ProxyService>,
int result_code,
const BoundNetLog& net_log);
- // NetworkChangeNotifier::Observer methods:
+ // NetworkChangeNotifier::Observer
+ // When this is called, we re-fetch PAC scripts and re-run WPAD.
virtual void OnIPAddressChanged();
scoped_ptr<ProxyConfigService> config_service_;
@@ -287,10 +282,6 @@ class ProxyService : public base::RefCountedThreadSafe<ProxyService>,
// sent to.
NetLog* net_log_;
- // The (possibly NULL) network change notifier that we use to decide when
- // to refetch PAC scripts or re-run WPAD.
- NetworkChangeNotifier* const network_change_notifier_;
-
DISALLOW_COPY_AND_ASSIGN(ProxyService);
};
@@ -301,9 +292,12 @@ class SyncProxyServiceHelper
SyncProxyServiceHelper(MessageLoop* io_message_loop,
ProxyService* proxy_service);
- int ResolveProxy(const GURL& url, ProxyInfo* proxy_info, const BoundNetLog& net_log);
+ int ResolveProxy(const GURL& url,
+ ProxyInfo* proxy_info,
+ const BoundNetLog& net_log);
int ReconsiderProxyAfterError(const GURL& url,
- ProxyInfo* proxy_info, const BoundNetLog& net_log);
+ ProxyInfo* proxy_info,
+ const BoundNetLog& net_log);
private:
friend class base::RefCountedThreadSafe<SyncProxyServiceHelper>;
diff --git a/net/proxy/proxy_service_unittest.cc b/net/proxy/proxy_service_unittest.cc
index f5e76d9..3cf80cd 100644
--- a/net/proxy/proxy_service_unittest.cc
+++ b/net/proxy/proxy_service_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -12,7 +12,6 @@
#include "googleurl/src/gurl.h"
#include "net/base/net_log.h"
#include "net/base/net_log_unittest.h"
-#include "net/base/mock_network_change_notifier.h"
#include "net/base/net_errors.h"
#include "net/base/test_completion_callback.h"
#include "net/proxy/mock_proxy_resolver.h"
@@ -92,7 +91,7 @@ class MockProxyScriptFetcher : public ProxyScriptFetcher {
TEST(ProxyServiceTest, Direct) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(new MockProxyConfigService, resolver, NULL, NULL));
+ new ProxyService(new MockProxyConfigService, resolver, NULL));
GURL url("http://www.google.com/");
@@ -120,7 +119,7 @@ TEST(ProxyServiceTest, PAC) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
GURL url("http://www.google.com/");
@@ -167,7 +166,7 @@ TEST(ProxyServiceTest, PAC_NoIdentityOrHash) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
GURL url("http://username:password@www.google.com/?ref#hash#hash");
@@ -195,7 +194,7 @@ TEST(ProxyServiceTest, PAC_FailoverWithoutDirect) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
GURL url("http://www.google.com/");
@@ -253,7 +252,7 @@ TEST(ProxyServiceTest, PAC_FailoverAfterDirect) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
GURL url("http://www.google.com/");
@@ -319,7 +318,7 @@ TEST(ProxyServiceTest, ProxyResolverFails) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
// Start first resolve request.
GURL url("http://www.google.com/");
@@ -372,7 +371,7 @@ TEST(ProxyServiceTest, ProxyFallback) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
GURL url("http://www.google.com/");
@@ -462,7 +461,7 @@ TEST(ProxyServiceTest, ProxyFallbackToDirect) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
GURL url("http://www.google.com/");
@@ -525,7 +524,7 @@ TEST(ProxyServiceTest, ProxyFallback_NewSettings) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
GURL url("http://www.google.com/");
@@ -617,7 +616,7 @@ TEST(ProxyServiceTest, ProxyFallback_BadConfig) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
GURL url("http://www.google.com/");
@@ -704,8 +703,7 @@ TEST(ProxyServiceTest, ProxyBypassList) {
config.proxy_rules().bypass_rules.ParseFromString("*.org");
scoped_refptr<ProxyService> service(new ProxyService(
- new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL,
- NULL));
+ new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL));
int rv;
GURL url1("http://www.webkit.org");
@@ -729,8 +727,7 @@ TEST(ProxyServiceTest, PerProtocolProxyTests) {
config.set_auto_detect(false);
{
scoped_refptr<ProxyService> service(new ProxyService(
- new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL,
- NULL));
+ new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL));
GURL test_url("http://www.msn.com");
ProxyInfo info;
TestCompletionCallback callback;
@@ -742,8 +739,7 @@ TEST(ProxyServiceTest, PerProtocolProxyTests) {
}
{
scoped_refptr<ProxyService> service(new ProxyService(
- new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL,
- NULL));
+ new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL));
GURL test_url("ftp://ftp.google.com");
ProxyInfo info;
TestCompletionCallback callback;
@@ -755,8 +751,7 @@ TEST(ProxyServiceTest, PerProtocolProxyTests) {
}
{
scoped_refptr<ProxyService> service(new ProxyService(
- new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL,
- NULL));
+ new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL));
GURL test_url("https://webbranch.techcu.com");
ProxyInfo info;
TestCompletionCallback callback;
@@ -769,8 +764,7 @@ TEST(ProxyServiceTest, PerProtocolProxyTests) {
{
config.proxy_rules().ParseFromString("foopy1:8080");
scoped_refptr<ProxyService> service(new ProxyService(
- new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL,
- NULL));
+ new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL));
GURL test_url("http://www.microsoft.com");
ProxyInfo info;
TestCompletionCallback callback;
@@ -793,8 +787,7 @@ TEST(ProxyServiceTest, DefaultProxyFallbackToSOCKS) {
{
scoped_refptr<ProxyService> service(new ProxyService(
- new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL,
- NULL));
+ new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL));
GURL test_url("http://www.msn.com");
ProxyInfo info;
TestCompletionCallback callback;
@@ -806,8 +799,7 @@ TEST(ProxyServiceTest, DefaultProxyFallbackToSOCKS) {
}
{
scoped_refptr<ProxyService> service(new ProxyService(
- new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL,
- NULL));
+ new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL));
GURL test_url("ftp://ftp.google.com");
ProxyInfo info;
TestCompletionCallback callback;
@@ -819,8 +811,7 @@ TEST(ProxyServiceTest, DefaultProxyFallbackToSOCKS) {
}
{
scoped_refptr<ProxyService> service(new ProxyService(
- new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL,
- NULL));
+ new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL));
GURL test_url("https://webbranch.techcu.com");
ProxyInfo info;
TestCompletionCallback callback;
@@ -832,8 +823,7 @@ TEST(ProxyServiceTest, DefaultProxyFallbackToSOCKS) {
}
{
scoped_refptr<ProxyService> service(new ProxyService(
- new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL,
- NULL));
+ new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL));
GURL test_url("unknown://www.microsoft.com");
ProxyInfo info;
TestCompletionCallback callback;
@@ -853,7 +843,7 @@ TEST(ProxyServiceTest, CancelInProgressRequest) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
// Start 3 requests.
@@ -928,7 +918,7 @@ TEST(ProxyServiceTest, InitialPACScriptDownload) {
new MockAsyncProxyResolverExpectsBytes;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service->SetProxyScriptFetcher(fetcher);
@@ -1007,7 +997,7 @@ TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) {
new MockAsyncProxyResolverExpectsBytes;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service->SetProxyScriptFetcher(fetcher);
@@ -1064,7 +1054,7 @@ TEST(ProxyServiceTest, CancelWhilePACFetching) {
new MockAsyncProxyResolverExpectsBytes;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service->SetProxyScriptFetcher(fetcher);
@@ -1152,7 +1142,7 @@ TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac) {
MockAsyncProxyResolverExpectsBytes* resolver =
new MockAsyncProxyResolverExpectsBytes;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service->SetProxyScriptFetcher(fetcher);
@@ -1223,7 +1213,7 @@ TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) {
MockAsyncProxyResolverExpectsBytes* resolver =
new MockAsyncProxyResolverExpectsBytes;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service->SetProxyScriptFetcher(fetcher);
@@ -1299,7 +1289,7 @@ TEST(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) {
MockAsyncProxyResolverExpectsBytes* resolver =
new MockAsyncProxyResolverExpectsBytes;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service->SetProxyScriptFetcher(fetcher);
@@ -1357,7 +1347,7 @@ TEST(ProxyServiceTest, BypassDoesntApplyToPac) {
MockAsyncProxyResolverExpectsBytes* resolver =
new MockAsyncProxyResolverExpectsBytes;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service->SetProxyScriptFetcher(fetcher);
@@ -1425,7 +1415,7 @@ TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) {
MockAsyncProxyResolverExpectsBytes* resolver =
new MockAsyncProxyResolverExpectsBytes;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service->SetProxyScriptFetcher(fetcher);
@@ -1461,7 +1451,7 @@ TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) {
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
GURL url("http://www.google.com/");
@@ -1483,8 +1473,7 @@ TEST(ProxyServiceTest, ResetProxyConfigService) {
config1.set_auto_detect(false);
scoped_refptr<ProxyService> service(new ProxyService(
new MockProxyConfigService(config1),
- new MockAsyncProxyResolverExpectsBytes,
- NULL, NULL));
+ new MockAsyncProxyResolverExpectsBytes, NULL));
ProxyInfo info;
TestCompletionCallback callback1;
@@ -1516,7 +1505,7 @@ TEST(ProxyServiceTest, UpdateConfigAfterFailedAutodetect) {
MockProxyConfigService* config_service = new MockProxyConfigService(config);
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
// Start 1 requests.
@@ -1562,7 +1551,7 @@ TEST(ProxyServiceTest, UpdateConfigFromPACToDirect) {
MockProxyConfigService* config_service = new MockProxyConfigService(config);
MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, NULL, NULL));
+ new ProxyService(config_service, resolver, NULL));
// Start 1 request.
@@ -1614,11 +1603,8 @@ TEST(ProxyServiceTest, NetworkChangeTriggersPacRefetch) {
MockAsyncProxyResolverExpectsBytes* resolver =
new MockAsyncProxyResolverExpectsBytes;
- MockNetworkChangeNotifier network_change_notifier;
-
scoped_refptr<ProxyService> service(
- new ProxyService(config_service, resolver, &network_change_notifier,
- NULL));
+ new ProxyService(config_service, resolver, NULL));
MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
service->SetProxyScriptFetcher(fetcher);
@@ -1662,8 +1648,8 @@ TEST(ProxyServiceTest, NetworkChangeTriggersPacRefetch) {
// Now simluate a change in the network. The ProxyConfigService is still
// going to return the same PAC URL as before, but this URL needs to be
// refetched on the new network.
-
- network_change_notifier.NotifyIPAddressChange();
+ NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests();
+ MessageLoop::current()->RunAllPending(); // Notification happens async.
// Start a second request.
ProxyInfo info2;