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

Unified Diff: net/base/proxy_delegate.h

Issue 517693002: Add embedder-specific headers to HTTP CONNECT tunnel request (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Forgot to upload the new files Created 6 years, 3 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: net/base/proxy_delegate.h
diff --git a/net/base/proxy_delegate.h b/net/base/proxy_delegate.h
new file mode 100644
index 0000000000000000000000000000000000000000..63e6658ee918d8e00f23fa28a8578c1a3b3b930e
--- /dev/null
+++ b/net/base/proxy_delegate.h
@@ -0,0 +1,60 @@
+// 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 NET_BASE_PROXY_DELEGATE_H_
+#define NET_BASE_PROXY_DELEGATE_H_
+
+#include "net/base/net_export.h"
+#include "url/gurl.h"
mmenke 2014/09/08 17:38:49 Can forward declare this.
bengr 2014/09/09 01:28:48 Done.
+
+namespace net {
+
+class HttpRequestHeaders;
+class HttpResponseHeaders;
+class HostPortPair;
+class ProxyInfo;
+class ProxyServer;
+class ProxyService;
+class URLRequest;
+
+// Delegate for setting up a connection.
+class NET_EXPORT ProxyDelegate {
+ public:
+ // Called as the proxy is being resolved for |url|. Allows the delegate to
+ // override the proxy resolution decision made by ProxyService. The delegate
+ // may override the decision by modifying the ProxyInfo |result|.
+ virtual void OnResolveProxy(const GURL& url,
+ int load_flags,
+ const ProxyService& proxy_service,
+ ProxyInfo* result) = 0;
+
+ // Called when use of |bad_proxy| fails due to |net_error|. |net_error| is
+ // the network error encountered, if any, and OK if the fallback was
+ // for a reason other than a network error (e.g. the proxy service was
+ // explicitly directed to skip a proxy).
+ virtual void OnFallback(const ProxyServer& bad_proxy,
+ int net_error) = 0;
+
+ // Called after a proxy connection. Allows the delegate to read/write
mef 2014/09/08 15:06:48 nit: indent
bengr 2014/09/09 01:28:48 Done.
+ // |headers| before they get sent out. |headers| is valid only until
+ // OnCompleted or OnURLRequestDestroyed is called for this request.
+ virtual void OnBeforeSendHeaders(URLRequest* request,
+ const ProxyInfo& proxy_info,
+ HttpRequestHeaders* headers) = 0;
+
+ // Called immediately before a proxy tunnel request is sent.
+ // Provides the embedder an opportunity to add extra request headers.
+ virtual void OnBeforeTunnelRequest(const HostPortPair& proxy_server,
+ HttpRequestHeaders* extra_headers) = 0;
+
+ // Called after the response headers for the tunnel request are received.
+ virtual void OnTunnelHeadersReceived(
+ const HostPortPair& origin,
+ const HostPortPair& proxy_server,
+ const HttpResponseHeaders& response_headers) = 0;
mmenke 2014/09/08 17:38:49 private: DISALLOW_COPY_AND_ASSIGN? (+ include ma
bengr 2014/09/09 01:28:48 Done.
+};
+
+}
+
+#endif // NET_BASE_PROXY_DELEGATE_H_

Powered by Google App Engine
This is Rietveld 408576698