1 // Copyright (c) 2012 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.
5 #include "net/base/network_delegate.h"
7 #include "base/logging.h"
8 #include "net/base/load_flags.h"
9 #include "net/base/net_errors.h"
10 #include "net/proxy/proxy_info.h"
11 #include "net/url_request/url_request.h"
15 int NetworkDelegate::NotifyBeforeURLRequest(
16 URLRequest
* request
, const CompletionCallback
& callback
,
18 DCHECK(CalledOnValidThread());
20 DCHECK(!callback
.is_null());
21 return OnBeforeURLRequest(request
, callback
, new_url
);
24 void NetworkDelegate::NotifyResolveProxy(const GURL
& url
, int load_flags
,
26 DCHECK(CalledOnValidThread());
28 OnResolveProxy(url
, load_flags
, result
);
31 int NetworkDelegate::NotifyBeforeSendHeaders(
32 URLRequest
* request
, const CompletionCallback
& callback
,
33 HttpRequestHeaders
* headers
) {
34 DCHECK(CalledOnValidThread());
36 DCHECK(!callback
.is_null());
37 return OnBeforeSendHeaders(request
, callback
, headers
);
40 void NetworkDelegate::NotifyBeforeSendProxyHeaders(
42 const ProxyInfo
& proxy_info
,
43 HttpRequestHeaders
* headers
) {
44 DCHECK(CalledOnValidThread());
46 OnBeforeSendProxyHeaders(request
, proxy_info
, headers
);
49 void NetworkDelegate::NotifySendHeaders(URLRequest
* request
,
50 const HttpRequestHeaders
& headers
) {
51 DCHECK(CalledOnValidThread());
52 OnSendHeaders(request
, headers
);
55 int NetworkDelegate::NotifyHeadersReceived(
57 const CompletionCallback
& callback
,
58 const HttpResponseHeaders
* original_response_headers
,
59 scoped_refptr
<HttpResponseHeaders
>* override_response_headers
,
60 GURL
* allowed_unsafe_redirect_url
) {
61 DCHECK(CalledOnValidThread());
62 DCHECK(original_response_headers
);
63 DCHECK(!callback
.is_null());
64 return OnHeadersReceived(request
,
66 original_response_headers
,
67 override_response_headers
,
68 allowed_unsafe_redirect_url
);
71 void NetworkDelegate::NotifyResponseStarted(URLRequest
* request
) {
72 DCHECK(CalledOnValidThread());
74 OnResponseStarted(request
);
77 void NetworkDelegate::NotifyRawBytesRead(const URLRequest
& request
,
79 DCHECK(CalledOnValidThread());
80 OnRawBytesRead(request
, bytes_read
);
83 void NetworkDelegate::NotifyBeforeRedirect(URLRequest
* request
,
84 const GURL
& new_location
) {
85 DCHECK(CalledOnValidThread());
87 OnBeforeRedirect(request
, new_location
);
90 void NetworkDelegate::NotifyCompleted(URLRequest
* request
, bool started
) {
91 DCHECK(CalledOnValidThread());
93 OnCompleted(request
, started
);
96 void NetworkDelegate::NotifyURLRequestDestroyed(URLRequest
* request
) {
97 DCHECK(CalledOnValidThread());
99 OnURLRequestDestroyed(request
);
102 void NetworkDelegate::NotifyPACScriptError(int line_number
,
103 const base::string16
& error
) {
104 DCHECK(CalledOnValidThread());
105 OnPACScriptError(line_number
, error
);
108 NetworkDelegate::AuthRequiredResponse
NetworkDelegate::NotifyAuthRequired(
110 const AuthChallengeInfo
& auth_info
,
111 const AuthCallback
& callback
,
112 AuthCredentials
* credentials
) {
113 DCHECK(CalledOnValidThread());
114 return OnAuthRequired(request
, auth_info
, callback
, credentials
);
117 int NetworkDelegate::NotifyBeforeSocketStreamConnect(
118 SocketStream
* socket
,
119 const CompletionCallback
& callback
) {
120 DCHECK(CalledOnValidThread());
122 DCHECK(!callback
.is_null());
123 return OnBeforeSocketStreamConnect(socket
, callback
);
126 bool NetworkDelegate::CanGetCookies(const URLRequest
& request
,
127 const CookieList
& cookie_list
) {
128 DCHECK(CalledOnValidThread());
129 DCHECK(!(request
.load_flags() & net::LOAD_DO_NOT_SEND_COOKIES
));
130 return OnCanGetCookies(request
, cookie_list
);
133 bool NetworkDelegate::CanSetCookie(const URLRequest
& request
,
134 const std::string
& cookie_line
,
135 CookieOptions
* options
) {
136 DCHECK(CalledOnValidThread());
137 DCHECK(!(request
.load_flags() & net::LOAD_DO_NOT_SAVE_COOKIES
));
138 return OnCanSetCookie(request
, cookie_line
, options
);
141 bool NetworkDelegate::CanAccessFile(const URLRequest
& request
,
142 const base::FilePath
& path
) const {
143 DCHECK(CalledOnValidThread());
144 return OnCanAccessFile(request
, path
);
147 bool NetworkDelegate::CanThrottleRequest(const URLRequest
& request
) const {
148 DCHECK(CalledOnValidThread());
149 return OnCanThrottleRequest(request
);
152 bool NetworkDelegate::CanEnablePrivacyMode(
154 const GURL
& first_party_for_cookies
) const {
155 DCHECK(CalledOnValidThread());
156 return OnCanEnablePrivacyMode(url
, first_party_for_cookies
);
159 int NetworkDelegate::OnBeforeURLRequest(URLRequest
* request
,
160 const CompletionCallback
& callback
,
165 void NetworkDelegate::OnResolveProxy(const GURL
& url
, int load_flags
,
169 int NetworkDelegate::OnBeforeSendHeaders(URLRequest
* request
,
170 const CompletionCallback
& callback
,
171 HttpRequestHeaders
* headers
) {
175 void NetworkDelegate::OnBeforeSendProxyHeaders(
177 const ProxyInfo
& proxy_info
,
178 HttpRequestHeaders
* headers
) {
181 void NetworkDelegate::OnSendHeaders(URLRequest
* request
,
182 const HttpRequestHeaders
& headers
) {
185 int NetworkDelegate::OnHeadersReceived(
187 const CompletionCallback
& callback
,
188 const HttpResponseHeaders
* original_response_headers
,
189 scoped_refptr
<HttpResponseHeaders
>* override_response_headers
,
190 GURL
* allowed_unsafe_redirect_url
) {
194 void NetworkDelegate::OnBeforeRedirect(URLRequest
* request
,
195 const GURL
& new_location
) {
198 void NetworkDelegate::OnResponseStarted(URLRequest
* request
) {
201 void NetworkDelegate::OnRawBytesRead(const URLRequest
& request
,
205 void NetworkDelegate::OnCompleted(URLRequest
* request
, bool started
) {
208 void NetworkDelegate::OnURLRequestDestroyed(URLRequest
* request
) {
211 void NetworkDelegate::OnPACScriptError(int line_number
,
212 const base::string16
& error
) {
215 NetworkDelegate::AuthRequiredResponse
NetworkDelegate::OnAuthRequired(
217 const AuthChallengeInfo
& auth_info
,
218 const AuthCallback
& callback
,
219 AuthCredentials
* credentials
) {
220 return AUTH_REQUIRED_RESPONSE_NO_ACTION
;
223 bool NetworkDelegate::OnCanGetCookies(const URLRequest
& request
,
224 const CookieList
& cookie_list
) {
228 bool NetworkDelegate::OnCanSetCookie(const URLRequest
& request
,
229 const std::string
& cookie_line
,
230 CookieOptions
* options
) {
234 bool NetworkDelegate::OnCanAccessFile(const URLRequest
& request
,
235 const base::FilePath
& path
) const {
239 bool NetworkDelegate::OnCanThrottleRequest(const URLRequest
& request
) const {
243 bool NetworkDelegate::OnCanEnablePrivacyMode(
245 const GURL
& first_party_for_cookies
) const {
249 int NetworkDelegate::OnBeforeSocketStreamConnect(
250 SocketStream
* socket
,
251 const CompletionCallback
& callback
) {