Chromium Code Reviews| Index: net/proxy/proxy_service.h |
| diff --git a/net/proxy/proxy_service.h b/net/proxy/proxy_service.h |
| index 377cde35aabba47b4abfe772d690e06ac015ba82..6798f2cb5544f142234e7698507eb9077cf2ed52 100644 |
| --- a/net/proxy/proxy_service.h |
| +++ b/net/proxy/proxy_service.h |
| @@ -100,70 +100,76 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver, |
| ProxyService(scoped_ptr<ProxyConfigService> config_service, |
| scoped_ptr<ProxyResolverFactory> resolver_factory, |
| NetLog* net_log); |
| ~ProxyService() override; |
| // Used internally to handle PAC queries. |
| // TODO(eroman): consider naming this simply "Request". |
| class PacRequest; |
| + // Determines the appropriate proxy for |url| for a |method| request and |
| + // stores the result in |results|. |
| + // |
| // Returns ERR_IO_PENDING if the proxy information could not be provided |
| // synchronously, to indicate that the result will be available when the |
| // callback is run. The callback is run on the thread that calls |
| // ResolveProxy. |
| // |
| // The caller is responsible for ensuring that |results| and |callback| |
| // remain valid until the callback is run or until |pac_request| is cancelled |
| // via CancelPacRequest. |pac_request| is only valid while the completion |
| // callback is still pending. NULL can be passed for |pac_request| if |
| // the caller will not need to cancel the request. |
| // |
| // We use the three possible proxy access types in the following order, |
| // doing fallback if one doesn't work. See "pac_script_decider.h" |
| // for the specifics. |
| // 1. WPAD auto-detection |
| // 2. PAC URL |
| // 3. named proxy |
| // |
| // Profiling information for the request is saved to |net_log| if non-NULL. |
| int ResolveProxy(const GURL& url, |
| + const std::string& method, |
|
bengr
2016/02/26 23:43:33
#include <string>
|
| int load_flags, |
| ProxyInfo* results, |
| const CompletionCallback& callback, |
| PacRequest** pac_request, |
| ProxyDelegate* proxy_delegate, |
| const BoundNetLog& net_log); |
| // Returns true if the proxy information could be determined without spawning |
| // an asynchronous task. Otherwise, |result| is unmodified. |
| bool TryResolveProxySynchronously(const GURL& raw_url, |
| + const std::string& method, |
| int load_flags, |
| ProxyInfo* result, |
| ProxyDelegate* proxy_delegate, |
| const BoundNetLog& net_log); |
| // This method is called after a failure to connect or resolve a host name. |
| // It gives the proxy service an opportunity to reconsider the proxy to use. |
| // The |results| parameter contains the results returned by an earlier call |
| // to ResolveProxy. The |net_error| parameter contains the network error |
| // code associated with the failure. See "net/base/net_error_list.h" for a |
| // list of possible values. The semantics of this call are otherwise |
| // similar to ResolveProxy. |
| // |
| // NULL can be passed for |pac_request| if the caller will not need to |
| // cancel the request. |
| // |
| // Returns ERR_FAILED if there is not another proxy config to try. |
| // |
| // Profiling information for the request is saved to |net_log| if non-NULL. |
| int ReconsiderProxyAfterError(const GURL& url, |
| + const std::string& method, |
| int load_flags, |
| int net_error, |
| ProxyInfo* results, |
| const CompletionCallback& callback, |
| PacRequest** pac_request, |
| ProxyDelegate* proxy_delegate, |
| const BoundNetLog& net_log); |
| // Explicitly trigger proxy fallback for the given |results| by updating our |
| // list of bad proxies to include the first entry of |results|, and, |
| @@ -326,20 +332,21 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver, |
| // Completing synchronously means we don't need to query ProxyResolver. |
| int TryToCompleteSynchronously(const GURL& url, |
| int load_flags, |
| ProxyDelegate* proxy_delegate, |
| ProxyInfo* result); |
| // Identical to ResolveProxy, except that |callback| is permitted to be null. |
| // if |callback.is_null()|, this function becomes a thin wrapper around |
| // |TryToCompleteSynchronously|. |
| int ResolveProxyHelper(const GURL& url, |
| + const std::string& method, |
| int load_flags, |
| ProxyInfo* results, |
| const CompletionCallback& callback, |
| PacRequest** pac_request, |
| ProxyDelegate* proxy_delegate, |
| const BoundNetLog& net_log); |
| // Cancels all of the requests sent to the ProxyResolver. These will be |
| // restarted when calling SetReady(). |
| void SuspendAllPendingRequests(); |
| @@ -351,20 +358,21 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver, |
| // Returns true if |pending_requests_| contains |req|. |
| bool ContainsPendingRequest(PacRequest* req); |
| // Removes |req| from the list of pending requests. |
| void RemovePendingRequest(PacRequest* req); |
| // Called when proxy resolution has completed (either synchronously or |
| // asynchronously). Handles logging the result, and cleaning out |
| // bad entries from the results list. |
| int DidFinishResolvingProxy(const GURL& url, |
| + const std::string& method, |
| int load_flags, |
| ProxyDelegate* proxy_delegate, |
| ProxyInfo* result, |
| int result_code, |
| const BoundNetLog& net_log, |
| base::TimeTicks start_time, |
| bool script_executed); |
| // Start initialization using |fetched_config_|. |
| void InitializeUsingLastFetchedConfig(); |