1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_NET_PROXY_SERVICE_FACTORY_H_ 6 #define CHROME_BROWSER_NET_PROXY_SERVICE_FACTORY_H_ 7 #pragma once 8 9 #include "base/basictypes.h" 10 11 class CommandLine; 12 class PrefProxyConfigTracker; 13 14 namespace net { 15 class NetLog; 16 class ProxyConfigService; 17 class ProxyService; 18 class URLRequestContext; 19 } // namespace net 20 21 class ProxyServiceFactory { 22 public: 23 // Creates a ProxyConfigService that delivers the system preferences 24 // (or the respective ChromeOS equivalent). 25 static net::ProxyConfigService* CreateProxyConfigService( 26 PrefProxyConfigTracker* proxy_config_tracker); 27 28 // Create a proxy service according to the options on command line. 29 static net::ProxyService* CreateProxyService( 30 net::NetLog* net_log, 31 net::URLRequestContext* context, 32 net::ProxyConfigService* proxy_config_service, 33 const CommandLine& command_line); 34 35 private: 36 DISALLOW_IMPLICIT_CONSTRUCTORS(ProxyServiceFactory); 37 }; 38 39 #endif // CHROME_BROWSER_NET_PROXY_SERVICE_FACTORY_H_ 40