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

Side by Side Diff: net/base/layered_network_delegate.h

Issue 734263003: Move data reduction proxy logic out of chrome and android webview network delegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing mmenke and jochen comments Created 6 years 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef NET_BASE_LAYERED_NETWORK_DELEGATE_H_
6 #define NET_BASE_LAYERED_NETWORK_DELEGATE_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "base/strings/string16.h"
10 #include "net/base/completion_callback.h"
11 #include "net/base/network_delegate.h"
12 #include "net/cookies/canonical_cookie.h"
13
14 class GURL;
15
16 namespace base {
17 class FilePath;
18 }
19
20 namespace net {
21
22 class CookieOptions;
23 class HttpRequestHeaders;
24 class HttpResponseHeaders;
25 class ProxyInfo;
26 class ProxyServer;
27 class ProxyService;
28 class URLRequest;
29
30 // WrappingNetworkDelegate takes a |network_delegate| and extends it. When
31 // On*() is called, the On*Internal() method of this is first called and then
32 // the On*() of |network_delegate| is called. On*Internal() methods have no
33 // return values, and cannot prevent calling into the nested network delegate.
34 class NET_EXPORT LayeredNetworkDelegate : public NetworkDelegate {
35 public:
36 explicit LayeredNetworkDelegate(
37 scoped_ptr<NetworkDelegate> nested_network_delegate);
38 ~LayeredNetworkDelegate() override;
39
40 // NetworkDelegate implementation:
41 int OnBeforeURLRequest(URLRequest* request,
42 const CompletionCallback& callback,
43 GURL* new_url) final override;
44 void OnResolveProxy(const GURL& url,
45 int load_flags,
46 const ProxyService& proxy_service,
47 ProxyInfo* result) final override;
48 void OnProxyFallback(const ProxyServer& bad_proxy,
49 int net_error) final override;
50 int OnBeforeSendHeaders(URLRequest* request,
51 const CompletionCallback& callback,
52 HttpRequestHeaders* headers) final override;
53 void OnBeforeSendProxyHeaders(URLRequest* request,
54 const ProxyInfo& proxy_info,
55 HttpRequestHeaders* headers) final override;
56 void OnSendHeaders(URLRequest* request,
57 const HttpRequestHeaders& headers) final override;
58 int OnHeadersReceived(
59 URLRequest* request,
60 const CompletionCallback& callback,
61 const HttpResponseHeaders* original_response_headers,
62 scoped_refptr<HttpResponseHeaders>* override_response_headers,
63 GURL* allowed_unsafe_redirect_url) final override;
64 void OnBeforeRedirect(URLRequest* request,
65 const GURL& new_location) final override;
66 void OnResponseStarted(URLRequest* request) final override;
67 void OnRawBytesRead(const URLRequest& request, int bytes_read) final override;
68 void OnCompleted(URLRequest* request, bool started) final override;
69 void OnURLRequestDestroyed(URLRequest* request) final override;
70 void OnPACScriptError(int line_number,
71 const base::string16& error) final override;
72 AuthRequiredResponse OnAuthRequired(
73 URLRequest* request,
74 const AuthChallengeInfo& auth_info,
75 const AuthCallback& callback,
76 AuthCredentials* credentials) final override;
77 bool OnCanGetCookies(const URLRequest& request,
78 const CookieList& cookie_list) final override;
79 bool OnCanSetCookie(const URLRequest& request,
80 const std::string& cookie_line,
81 CookieOptions* options) final override;
82 bool OnCanAccessFile(const URLRequest& request,
83 const base::FilePath& path) const final override;
84 bool OnCanThrottleRequest(const URLRequest& request) const final override;
85 bool OnCanEnablePrivacyMode(
86 const GURL& url,
87 const GURL& first_party_for_cookies) const final override;
88 bool OnCancelURLRequestWithPolicyViolatingReferrerHeader(
89 const URLRequest& request,
90 const GURL& target_url,
91 const GURL& referrer_url) const final override;
92
93 virtual void OnBeforeURLRequestInternal(URLRequest* request,
94 const CompletionCallback& callback,
95 GURL* new_url);
96
97 virtual void OnResolveProxyInternal(const GURL& url,
98 int load_flags,
99 const ProxyService& proxy_service,
100 ProxyInfo* result);
101
102 virtual void OnProxyFallbackInternal(const ProxyServer& bad_proxy,
103 int net_error);
104
105 virtual void OnBeforeSendHeadersInternal(URLRequest* request,
106 const CompletionCallback& callback,
107 HttpRequestHeaders* headers);
108
109 virtual void OnBeforeSendProxyHeadersInternal(URLRequest* request,
110 const ProxyInfo& proxy_info,
111 HttpRequestHeaders* headers);
112
113 virtual void OnSendHeadersInternal(URLRequest* request,
114 const HttpRequestHeaders& headers);
115
116 virtual void OnHeadersReceivedInternal(
117 URLRequest* request,
118 const CompletionCallback& callback,
119 const HttpResponseHeaders* original_response_headers,
120 scoped_refptr<HttpResponseHeaders>* override_response_headers,
121 GURL* allowed_unsafe_redirect_url);
122
123 virtual void OnBeforeRedirectInternal(URLRequest* request,
124 const GURL& new_location);
125
126 virtual void OnResponseStartedInternal(URLRequest* request);
127
128 virtual void OnRawBytesReadInternal(const URLRequest& request,
129 int bytes_read);
130
131 virtual void OnCompletedInternal(URLRequest* request, bool started);
132
133 virtual void OnURLRequestDestroyedInternal(URLRequest* request);
134
135 virtual void OnPACScriptErrorInternal(int line_number,
136 const base::string16& error);
137
138 virtual void OnCanGetCookiesInternal(const URLRequest& request,
139 const CookieList& cookie_list);
140
141 virtual void OnCanSetCookieInternal(const URLRequest& request,
142 const std::string& cookie_line,
143 CookieOptions* options);
144
145 virtual void OnAuthRequiredInternal(
146 URLRequest* request,
147 const AuthChallengeInfo& auth_info,
148 const AuthCallback& callback,
149 AuthCredentials* credentials);
150
151 virtual void OnCanAccessFileInternal(const URLRequest& request,
152 const base::FilePath& path) const;
153
154 virtual void OnCanThrottleRequestInternal(const URLRequest& request) const;
155
156 virtual void OnCanEnablePrivacyModeInternal(
157 const GURL& url,
158 const GURL& first_party_for_cookies) const;
159
160 virtual void OnCancelURLRequestWithPolicyViolatingReferrerHeaderInternal(
161 const URLRequest& request,
162 const GURL& target_url,
163 const GURL& referrer_url) const;
164
165
166 private:
167 scoped_ptr<NetworkDelegate> nested_network_delegate_;
168 };
169
170 } // namespace net
171
172 #endif // NET_BASE_LAYERED_NETWORK_DELEGATE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698