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

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

Issue 1680893002: Moving proxy resolution logic out of NetworkDelegate and into ProxyDelegate for DataReductionProxy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 10 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_delegate.h
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
index a9da5b928fd1c8a92da4475a34fabc87fe7be742..4e45dffd9578667267ff1b557b80f6150648d0f8 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
@@ -1,43 +1,53 @@
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_DELEGATE_H_
#define COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_DELEGATE_H_
#include "base/macros.h"
#include "net/base/proxy_delegate.h"
+#include "net/proxy/proxy_retry_info.h"
#include "url/gurl.h"
namespace net {
class HostPortPair;
class HttpRequestHeaders;
class HttpResponseHeaders;
+class NetLog;
+class ProxyConfig;
class ProxyInfo;
class ProxyServer;
class ProxyService;
class URLRequest;
}
namespace data_reduction_proxy {
+class DataReductionProxyBypassStats;
class DataReductionProxyConfig;
+class DataReductionProxyConfigurator;
+class DataReductionProxyEventCreator;
class DataReductionProxyRequestOptions;
class DataReductionProxyDelegate : public net::ProxyDelegate {
public:
// ProxyDelegate instance is owned by io_thread. |auth_handler| and |config|
// outlives this class instance.
explicit DataReductionProxyDelegate(
DataReductionProxyRequestOptions* request_options,
- DataReductionProxyConfig* config);
+ DataReductionProxyConfig* config,
+ const DataReductionProxyConfigurator* configurator,
+ DataReductionProxyEventCreator* event_creator,
+ DataReductionProxyBypassStats* bypass_stats,
+ net::NetLog* net_log);
~DataReductionProxyDelegate() override;
// net::ProxyDelegate implementation:
void OnResolveProxy(const GURL& url,
int load_flags,
const net::ProxyService& proxy_service,
net::ProxyInfo* result) override;
void OnFallback(const net::ProxyServer& bad_proxy, int net_error) override;
void OnBeforeSendHeaders(net::URLRequest* request,
@@ -50,17 +60,32 @@ class DataReductionProxyDelegate : public net::ProxyDelegate {
int net_error) override;
bool IsTrustedSpdyProxy(const net::ProxyServer& proxy_server) override;
void OnTunnelHeadersReceived(
const net::HostPortPair& origin,
const net::HostPortPair& proxy_server,
const net::HttpResponseHeaders& response_headers) override;
private:
DataReductionProxyRequestOptions* request_options_;
const DataReductionProxyConfig* config_;
+ const DataReductionProxyConfigurator* configurator_;
+ DataReductionProxyEventCreator* event_creator_;
+ DataReductionProxyBypassStats* bypass_stats_;
+ net::NetLog* net_log_;
DISALLOW_COPY_AND_ASSIGN(DataReductionProxyDelegate);
};
+// Adds data reduction proxies to |result|, where applicable, if result
+// otherwise uses a direct connection for |url|, and the data reduction proxy is
+// not bypassed. Also, configures |result| to proceed directly to the origin if
+// |result|'s current proxy is the data reduction proxy
+// This is visible for test purposes.
+void OnResolveProxyHandler(const GURL& url,
+ int load_flags,
+ const net::ProxyConfig& data_reduction_proxy_config,
+ const net::ProxyRetryInfoMap& proxy_retry_info,
+ const DataReductionProxyConfig* config,
+ net::ProxyInfo* result);
} // namespace data_reduction_proxy
#endif // COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_DELEGATE_H_

Powered by Google App Engine
This is Rietveld 408576698