| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef NET_PROXY_PROXY_SERVICE_H_ | 5 #ifndef NET_PROXY_PROXY_SERVICE_H_ |
| 6 #define NET_PROXY_PROXY_SERVICE_H_ | 6 #define NET_PROXY_PROXY_SERVICE_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 // this delay. | 76 // this delay. |
| 77 base::TimeDelta current_delay; | 77 base::TimeDelta current_delay; |
| 78 }; | 78 }; |
| 79 | 79 |
| 80 // Map of proxy servers with the associated RetryInfo structures. | 80 // Map of proxy servers with the associated RetryInfo structures. |
| 81 typedef std::map<std::string, ProxyRetryInfo> ProxyRetryInfoMap; | 81 typedef std::map<std::string, ProxyRetryInfo> ProxyRetryInfoMap; |
| 82 | 82 |
| 83 // This class can be used to resolve the proxy server to use when loading a | 83 // This class can be used to resolve the proxy server to use when loading a |
| 84 // HTTP(S) URL. It uses the given ProxyResolver to handle the actual proxy | 84 // HTTP(S) URL. It uses the given ProxyResolver to handle the actual proxy |
| 85 // resolution. See ProxyResolverWinHttp for example. | 85 // resolution. See ProxyResolverWinHttp for example. |
| 86 class ProxyService { | 86 class ProxyService : public base::RefCounted<ProxyService> { |
| 87 public: | 87 public: |
| 88 // The instance takes ownership of |resolver|. | 88 // The instance takes ownership of |resolver|. |
| 89 explicit ProxyService(ProxyResolver* resolver); | 89 explicit ProxyService(ProxyResolver* resolver); |
| 90 | 90 |
| 91 // Used internally to handle PAC queries. | 91 // Used internally to handle PAC queries. |
| 92 class PacRequest; | 92 class PacRequest; |
| 93 | 93 |
| 94 // Returns OK if proxy information could be provided synchronously. Else, | 94 // Returns OK if proxy information could be provided synchronously. Else, |
| 95 // ERR_IO_PENDING is returned to indicate that the result will be available | 95 // ERR_IO_PENDING is returned to indicate that the result will be available |
| 96 // when the callback is run. The callback is run on the thread that calls | 96 // when the callback is run. The callback is run on the thread that calls |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 PacRequest** pac_request); | 131 PacRequest** pac_request); |
| 132 | 132 |
| 133 // Call this method with a non-null |pac_request| to cancel the PAC request. | 133 // Call this method with a non-null |pac_request| to cancel the PAC request. |
| 134 void CancelPacRequest(PacRequest* pac_request); | 134 void CancelPacRequest(PacRequest* pac_request); |
| 135 | 135 |
| 136 // Create a proxy service using the specified settings. If |pi| is NULL then | 136 // Create a proxy service using the specified settings. If |pi| is NULL then |
| 137 // the system's default proxy settings will be used (on Windows this will | 137 // the system's default proxy settings will be used (on Windows this will |
| 138 // use IE's settings). | 138 // use IE's settings). |
| 139 static ProxyService* Create(const ProxyInfo* pi); | 139 static ProxyService* Create(const ProxyInfo* pi); |
| 140 | 140 |
| 141 // Create a ProxyService which fails every request, causing fallback to a |
| 142 // direct connection. Convenience function used by unit tests. |
| 143 static ProxyService* CreateNull(); |
| 144 |
| 141 // TODO(eroman): remove once WinHTTP is gone. | 145 // TODO(eroman): remove once WinHTTP is gone. |
| 142 // Get the ProxyInfo used to create this proxy service (only used by WinHTTP). | 146 // Get the ProxyInfo used to create this proxy service (only used by WinHTTP). |
| 143 const ProxyInfo* proxy_info() const { | 147 const ProxyInfo* proxy_info() const { |
| 144 return proxy_info_.get(); | 148 return proxy_info_.get(); |
| 145 } | 149 } |
| 146 | 150 |
| 147 private: | 151 private: |
| 148 friend class PacRequest; | 152 friend class PacRequest; |
| 149 | 153 |
| 150 ProxyResolver* resolver() { return resolver_.get(); } | 154 ProxyResolver* resolver() { return resolver_.get(); } |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 // code if otherwise. | 308 // code if otherwise. |
| 305 virtual int GetProxyForURL(const GURL& query_url, | 309 virtual int GetProxyForURL(const GURL& query_url, |
| 306 const GURL& pac_url, | 310 const GURL& pac_url, |
| 307 ProxyInfo* results) = 0; | 311 ProxyInfo* results) = 0; |
| 308 }; | 312 }; |
| 309 | 313 |
| 310 } // namespace net | 314 } // namespace net |
| 311 | 315 |
| 312 #endif // NET_PROXY_PROXY_SERVICE_H_ | 316 #endif // NET_PROXY_PROXY_SERVICE_H_ |
| 313 | 317 |
| OLD | NEW |