| Index: net/proxy/proxy_service.h
|
| diff --git a/net/proxy/proxy_service.h b/net/proxy/proxy_service.h
|
| index 377cde35aabba47b4abfe772d690e06ac015ba82..8cd707144ddfd7d17fdc004b71ff785d8659917b 100644
|
| --- a/net/proxy/proxy_service.h
|
| +++ b/net/proxy/proxy_service.h
|
| @@ -100,70 +100,77 @@ 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|. If |method| is empty, the caller can expect
|
| + // method independent resolution.
|
| + //
|
| // 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,
|
| 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 +333,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 +359,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();
|
|
|