From 66761b95332549f825999e482c17c94675275f49 Mon Sep 17 00:00:00 2001 From: "pkasting@chromium.org" Date: Fri, 25 Jun 2010 21:30:38 +0000 Subject: 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 --- net/http/http_network_layer.h | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'net/http/http_network_layer.h') diff --git a/net/http/http_network_layer.h b/net/http/http_network_layer.h index 54989410..4a61065 100644 --- a/net/http/http_network_layer.h +++ b/net/http/http_network_layer.h @@ -19,7 +19,6 @@ class HttpAuthHandlerFactory; class HttpNetworkDelegate; class HttpNetworkSession; class NetLog; -class NetworkChangeNotifier; class ProxyInfo; class ProxyService; class SpdySessionPool; @@ -27,11 +26,11 @@ class SSLConfigService; class HttpNetworkLayer : public HttpTransactionFactory { public: - // |socket_factory|, |network_change_notifier|, |proxy_service| and - // |host_resolver| must remain valid for the lifetime of HttpNetworkLayer. + // |socket_factory|, |proxy_service| and |host_resolver| must remain valid for + // the lifetime of HttpNetworkLayer. HttpNetworkLayer(ClientSocketFactory* socket_factory, - NetworkChangeNotifier* network_change_notifier, - HostResolver* host_resolver, ProxyService* proxy_service, + HostResolver* host_resolver, + ProxyService* proxy_service, SSLConfigService* ssl_config_service, HttpAuthHandlerFactory* http_auth_handler_factory, HttpNetworkDelegate* network_delegate, @@ -44,7 +43,6 @@ class HttpNetworkLayer : public HttpTransactionFactory { // This function hides the details of how a network layer gets instantiated // and allows other implementations to be substituted. static HttpTransactionFactory* CreateFactory( - NetworkChangeNotifier* network_change_notifier, HostResolver* host_resolver, ProxyService* proxy_service, SSLConfigService* ssl_config_service, @@ -77,8 +75,6 @@ class HttpNetworkLayer : public HttpTransactionFactory { // The factory we will use to create network sockets. ClientSocketFactory* socket_factory_; - NetworkChangeNotifier* network_change_notifier_; - // The host resolver and proxy service that will be used when lazily // creating |session_|. scoped_refptr host_resolver_; -- cgit v1.1