OLD | NEW |
| (Empty) |
1 // Copyright 2015 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 IOS_CHROME_BROWSER_NET_PROXY_SERVICE_FACTORY_H_ | |
6 #define IOS_CHROME_BROWSER_NET_PROXY_SERVICE_FACTORY_H_ | |
7 | |
8 #include <memory> | |
9 | |
10 #include "base/macros.h" | |
11 | |
12 class PrefProxyConfigTracker; | |
13 class PrefService; | |
14 | |
15 namespace net { | |
16 class NetLog; | |
17 class NetworkDelegate; | |
18 class ProxyConfigService; | |
19 class ProxyService; | |
20 class URLRequestContext; | |
21 } | |
22 | |
23 namespace ios { | |
24 | |
25 class ProxyServiceFactory { | |
26 public: | |
27 // Creates a ProxyConfigService that delivers the system preferences. | |
28 static std::unique_ptr<net::ProxyConfigService> CreateProxyConfigService( | |
29 PrefProxyConfigTracker* tracker); | |
30 | |
31 // Creates a PrefProxyConfigTracker that tracks browser state preferences. | |
32 static std::unique_ptr<PrefProxyConfigTracker> | |
33 CreatePrefProxyConfigTrackerOfProfile(PrefService* browser_state_prefs, | |
34 PrefService* local_state_prefs); | |
35 | |
36 // Creates a PrefProxyConfigTracker that tracks local state only. This tracker | |
37 // should be used for the system request context. | |
38 static std::unique_ptr<PrefProxyConfigTracker> | |
39 CreatePrefProxyConfigTrackerOfLocalState(PrefService* local_state_prefs); | |
40 | |
41 // Create a proxy service. | |
42 static std::unique_ptr<net::ProxyService> CreateProxyService( | |
43 net::NetLog* net_log, | |
44 net::URLRequestContext* context, | |
45 net::NetworkDelegate* network_delegate, | |
46 std::unique_ptr<net::ProxyConfigService> proxy_config_service, | |
47 bool quick_check_enabled); | |
48 | |
49 private: | |
50 DISALLOW_COPY_AND_ASSIGN(ProxyServiceFactory); | |
51 }; | |
52 | |
53 } // namespace ios | |
54 | |
55 #endif // IOS_CHROME_BROWSER_NET_PROXY_SERVICE_FACTORY_H_ | |
OLD | NEW |