Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(570)

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h

Issue 1083683003: Speculative revert by sheriff (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed an unrelated commit that had accidentally slipped in. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698