| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h
|
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h
|
| index ed39307396757cbd62b4cf32bf1840dc250fa113..0f9aed735a04237cdb7133a42ba474510be3f455 100644
|
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h
|
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h
|
| @@ -14,6 +14,7 @@
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/threading/non_thread_safe.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.h"
|
| +#include "net/url_request/url_fetcher_delegate.h"
|
|
|
| class GURL;
|
| class PrefService;
|
| @@ -24,11 +25,16 @@ class TimeDelta;
|
| }
|
|
|
| namespace net {
|
| +class URLFetcher;
|
| class URLRequestContextGetter;
|
| +class URLRequestStatus;
|
| }
|
|
|
| namespace data_reduction_proxy {
|
|
|
| +typedef base::Callback<void(const std::string&, const net::URLRequestStatus&)>
|
| + FetcherResponseCallback;
|
| +
|
| class DataReductionProxyCompressionStats;
|
| class DataReductionProxyIOData;
|
| class DataReductionProxyServiceObserver;
|
| @@ -36,7 +42,8 @@ class DataReductionProxySettings;
|
|
|
| // Contains and initializes all Data Reduction Proxy objects that have a
|
| // lifetime based on the UI thread.
|
| -class DataReductionProxyService : public base::NonThreadSafe {
|
| +class DataReductionProxyService : public base::NonThreadSafe,
|
| + public net::URLFetcherDelegate {
|
| public:
|
| // The caller must ensure that |settings| and |request_context| remain alive
|
| // for the lifetime of the |DataReductionProxyService| instance. This instance
|
| @@ -49,7 +56,7 @@ class DataReductionProxyService : public base::NonThreadSafe {
|
| net::URLRequestContextGetter* request_context_getter,
|
| scoped_refptr<base::SingleThreadTaskRunner> io_task_runner);
|
|
|
| - virtual ~DataReductionProxyService();
|
| + ~DataReductionProxyService() override;
|
|
|
| // Sets the DataReductionProxyIOData weak pointer.
|
| void SetIOData(base::WeakPtr<DataReductionProxyIOData> io_data);
|
| @@ -60,6 +67,12 @@ class DataReductionProxyService : public base::NonThreadSafe {
|
| // final step in initialization.
|
| bool Initialized() const;
|
|
|
| + // Requests the given |secure_proxy_check_url|. Upon completion, returns the
|
| + // results to the caller via the |fetcher_callback|. Virtualized for unit
|
| + // testing.
|
| + virtual void SecureProxyCheck(const GURL& secure_proxy_check_url,
|
| + FetcherResponseCallback fetcher_callback);
|
| +
|
| // Constructs compression stats. This should not be called if a valid
|
| // compression stats is passed into the constructor.
|
| void EnableCompressionStatisticsLogging(
|
| @@ -101,9 +114,22 @@ class DataReductionProxyService : public base::NonThreadSafe {
|
|
|
| base::WeakPtr<DataReductionProxyService> GetWeakPtr();
|
|
|
| + protected:
|
| + // Virtualized for testing. Returns a fetcher to check if it is permitted to
|
| + // use the secure proxy.
|
| + virtual net::URLFetcher* GetURLFetcherForSecureProxyCheck(
|
| + const GURL& secure_proxy_check_url);
|
| +
|
| private:
|
| + // net::URLFetcherDelegate:
|
| + void OnURLFetchComplete(const net::URLFetcher* source) override;
|
| +
|
| net::URLRequestContextGetter* url_request_context_getter_;
|
|
|
| + // The URLFetcher being used for the secure proxy check.
|
| + scoped_ptr<net::URLFetcher> fetcher_;
|
| + FetcherResponseCallback fetcher_callback_;
|
| +
|
| // Tracks compression statistics to be displayed to the user.
|
| scoped_ptr<DataReductionProxyCompressionStats> compression_stats_;
|
|
|
|
|