Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / net / base / network_delegate.cc
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.
4
5 #include "net/base/network_delegate.h"
6
7 #include "base/logging.h"
8 #include "base/profiler/scoped_tracker.h"
9 #include "net/base/load_flags.h"
10 #include "net/base/net_errors.h"
11 #include "net/proxy/proxy_info.h"
12 #include "net/url_request/url_request.h"
13
14 namespace net {
15
16 int NetworkDelegate::NotifyBeforeURLRequest(
17     URLRequest* request, const CompletionCallback& callback,
18     GURL* new_url) {
19   DCHECK(CalledOnValidThread());
20   DCHECK(request);
21   DCHECK(!callback.is_null());
22   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
23   tracked_objects::ScopedTracker tracking_profile(
24       FROM_HERE_WITH_EXPLICIT_FUNCTION(
25           "423948 NetworkDelegate::OnBeforeURLRequest"));
26   return OnBeforeURLRequest(request, callback, new_url);
27 }
28
29 void NetworkDelegate::NotifyResolveProxy(
30     const GURL& url,
31     int load_flags,
32     const ProxyService& proxy_service,
33     ProxyInfo* result) {
34   DCHECK(CalledOnValidThread());
35   DCHECK(result);
36   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
37   tracked_objects::ScopedTracker tracking_profile(
38       FROM_HERE_WITH_EXPLICIT_FUNCTION(
39           "423948 NetworkDelegate::OnResolveProxy"));
40   OnResolveProxy(url, load_flags, proxy_service, result);
41 }
42
43 void NetworkDelegate::NotifyProxyFallback(
44     const ProxyServer& bad_proxy,
45     int net_error) {
46   DCHECK(CalledOnValidThread());
47   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
48   tracked_objects::ScopedTracker tracking_profile(
49       FROM_HERE_WITH_EXPLICIT_FUNCTION(
50           "423948 NetworkDelegate::OnProxyFallback"));
51   OnProxyFallback(bad_proxy, net_error);
52 }
53
54 int NetworkDelegate::NotifyBeforeSendHeaders(
55     URLRequest* request, const CompletionCallback& callback,
56     HttpRequestHeaders* headers) {
57   DCHECK(CalledOnValidThread());
58   DCHECK(headers);
59   DCHECK(!callback.is_null());
60   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
61   tracked_objects::ScopedTracker tracking_profile(
62       FROM_HERE_WITH_EXPLICIT_FUNCTION(
63           "423948 NetworkDelegate::OnBeforeSendHeaders"));
64   return OnBeforeSendHeaders(request, callback, headers);
65 }
66
67 void NetworkDelegate::NotifyBeforeSendProxyHeaders(
68     URLRequest* request,
69     const ProxyInfo& proxy_info,
70     HttpRequestHeaders* headers) {
71   DCHECK(CalledOnValidThread());
72   DCHECK(headers);
73   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
74   tracked_objects::ScopedTracker tracking_profile(
75       FROM_HERE_WITH_EXPLICIT_FUNCTION(
76           "423948 NetworkDelegate::OnBeforeSendProxyHeaders"));
77   OnBeforeSendProxyHeaders(request, proxy_info, headers);
78 }
79
80 void NetworkDelegate::NotifySendHeaders(URLRequest* request,
81                                         const HttpRequestHeaders& headers) {
82   DCHECK(CalledOnValidThread());
83   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
84   tracked_objects::ScopedTracker tracking_profile(
85       FROM_HERE_WITH_EXPLICIT_FUNCTION(
86           "423948 NetworkDelegate::OnSendHeaders"));
87   OnSendHeaders(request, headers);
88 }
89
90 int NetworkDelegate::NotifyHeadersReceived(
91     URLRequest* request,
92     const CompletionCallback& callback,
93     const HttpResponseHeaders* original_response_headers,
94     scoped_refptr<HttpResponseHeaders>* override_response_headers,
95     GURL* allowed_unsafe_redirect_url) {
96   DCHECK(CalledOnValidThread());
97   DCHECK(original_response_headers);
98   DCHECK(!callback.is_null());
99   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
100   tracked_objects::ScopedTracker tracking_profile(
101       FROM_HERE_WITH_EXPLICIT_FUNCTION(
102           "423948 NetworkDelegate::OnHeadersReceived"));
103   return OnHeadersReceived(request,
104                            callback,
105                            original_response_headers,
106                            override_response_headers,
107                            allowed_unsafe_redirect_url);
108 }
109
110 void NetworkDelegate::NotifyResponseStarted(URLRequest* request) {
111   DCHECK(CalledOnValidThread());
112   DCHECK(request);
113   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
114   tracked_objects::ScopedTracker tracking_profile(
115       FROM_HERE_WITH_EXPLICIT_FUNCTION(
116           "423948 NetworkDelegate::OnResponseStarted"));
117   OnResponseStarted(request);
118 }
119
120 void NetworkDelegate::NotifyRawBytesRead(const URLRequest& request,
121                                          int bytes_read) {
122   DCHECK(CalledOnValidThread());
123   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
124   tracked_objects::ScopedTracker tracking_profile(
125       FROM_HERE_WITH_EXPLICIT_FUNCTION(
126           "423948 NetworkDelegate::OnRawBytesRead"));
127   OnRawBytesRead(request, bytes_read);
128 }
129
130 void NetworkDelegate::NotifyBeforeRedirect(URLRequest* request,
131                                            const GURL& new_location) {
132   DCHECK(CalledOnValidThread());
133   DCHECK(request);
134   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
135   tracked_objects::ScopedTracker tracking_profile(
136       FROM_HERE_WITH_EXPLICIT_FUNCTION(
137           "423948 NetworkDelegate::OnBeforeRedirect"));
138   OnBeforeRedirect(request, new_location);
139 }
140
141 void NetworkDelegate::NotifyCompleted(URLRequest* request, bool started) {
142   DCHECK(CalledOnValidThread());
143   DCHECK(request);
144   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
145   tracked_objects::ScopedTracker tracking_profile(
146       FROM_HERE_WITH_EXPLICIT_FUNCTION("423948 NetworkDelegate::OnCompleted"));
147   OnCompleted(request, started);
148 }
149
150 void NetworkDelegate::NotifyURLRequestDestroyed(URLRequest* request) {
151   DCHECK(CalledOnValidThread());
152   DCHECK(request);
153   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
154   tracked_objects::ScopedTracker tracking_profile(
155       FROM_HERE_WITH_EXPLICIT_FUNCTION(
156           "423948 NetworkDelegate::OnURLRequestDestroyed"));
157   OnURLRequestDestroyed(request);
158 }
159
160 void NetworkDelegate::NotifyPACScriptError(int line_number,
161                                            const base::string16& error) {
162   DCHECK(CalledOnValidThread());
163   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
164   tracked_objects::ScopedTracker tracking_profile(
165       FROM_HERE_WITH_EXPLICIT_FUNCTION(
166           "423948 NetworkDelegate::OnPACScriptError"));
167   OnPACScriptError(line_number, error);
168 }
169
170 NetworkDelegate::AuthRequiredResponse NetworkDelegate::NotifyAuthRequired(
171     URLRequest* request,
172     const AuthChallengeInfo& auth_info,
173     const AuthCallback& callback,
174     AuthCredentials* credentials) {
175   DCHECK(CalledOnValidThread());
176   return OnAuthRequired(request, auth_info, callback, credentials);
177 }
178
179 int NetworkDelegate::NotifyBeforeSocketStreamConnect(
180     SocketStream* socket,
181     const CompletionCallback& callback) {
182   DCHECK(CalledOnValidThread());
183   DCHECK(socket);
184   DCHECK(!callback.is_null());
185   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
186   tracked_objects::ScopedTracker tracking_profile(
187       FROM_HERE_WITH_EXPLICIT_FUNCTION(
188           "423948 NetworkDelegate::OnBeforeSocketStreamConnect"));
189   return OnBeforeSocketStreamConnect(socket, callback);
190 }
191
192 bool NetworkDelegate::CanGetCookies(const URLRequest& request,
193                                     const CookieList& cookie_list) {
194   DCHECK(CalledOnValidThread());
195   DCHECK(!(request.load_flags() & net::LOAD_DO_NOT_SEND_COOKIES));
196   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
197   tracked_objects::ScopedTracker tracking_profile(
198       FROM_HERE_WITH_EXPLICIT_FUNCTION(
199           "423948 NetworkDelegate::OnCanGetCookies"));
200   return OnCanGetCookies(request, cookie_list);
201 }
202
203 bool NetworkDelegate::CanSetCookie(const URLRequest& request,
204                                    const std::string& cookie_line,
205                                    CookieOptions* options) {
206   DCHECK(CalledOnValidThread());
207   DCHECK(!(request.load_flags() & net::LOAD_DO_NOT_SAVE_COOKIES));
208   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
209   tracked_objects::ScopedTracker tracking_profile(
210       FROM_HERE_WITH_EXPLICIT_FUNCTION(
211           "423948 NetworkDelegate::OnCanSetCookie"));
212   return OnCanSetCookie(request, cookie_line, options);
213 }
214
215 bool NetworkDelegate::CanAccessFile(const URLRequest& request,
216                                     const base::FilePath& path) const {
217   DCHECK(CalledOnValidThread());
218   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
219   tracked_objects::ScopedTracker tracking_profile(
220       FROM_HERE_WITH_EXPLICIT_FUNCTION(
221           "423948 NetworkDelegate::OnCanAccessFile"));
222   return OnCanAccessFile(request, path);
223 }
224
225 bool NetworkDelegate::CanThrottleRequest(const URLRequest& request) const {
226   DCHECK(CalledOnValidThread());
227   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
228   tracked_objects::ScopedTracker tracking_profile(
229       FROM_HERE_WITH_EXPLICIT_FUNCTION(
230           "423948 NetworkDelegate::OnCanThrottleRequest"));
231   return OnCanThrottleRequest(request);
232 }
233
234 bool NetworkDelegate::CanEnablePrivacyMode(
235     const GURL& url,
236     const GURL& first_party_for_cookies) const {
237   DCHECK(CalledOnValidThread());
238   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
239   tracked_objects::ScopedTracker tracking_profile(
240       FROM_HERE_WITH_EXPLICIT_FUNCTION(
241           "423948 NetworkDelegate::OnCanEnablePrivacyMode"));
242   return OnCanEnablePrivacyMode(url, first_party_for_cookies);
243 }
244
245 bool NetworkDelegate::CancelURLRequestWithPolicyViolatingReferrerHeader(
246     const URLRequest& request,
247     const GURL& target_url,
248     const GURL& referrer_url) const {
249   DCHECK(CalledOnValidThread());
250   // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
251   tracked_objects::ScopedTracker tracking_profile(
252       FROM_HERE_WITH_EXPLICIT_FUNCTION(
253           "423948 NetworkDelegate::OnCancelURLRequestWithPolicy..."));
254   return OnCancelURLRequestWithPolicyViolatingReferrerHeader(
255       request, target_url, referrer_url);
256 }
257
258 int NetworkDelegate::OnBeforeURLRequest(URLRequest* request,
259                                         const CompletionCallback& callback,
260                                         GURL* new_url) {
261   return OK;
262 }
263
264 void NetworkDelegate::OnResolveProxy(
265     const GURL& url,
266     int load_flags,
267     const ProxyService& proxy_service,
268     ProxyInfo* result) {
269 }
270
271 void NetworkDelegate::OnProxyFallback(const ProxyServer& bad_proxy,
272                                       int net_error) {
273 }
274
275 int NetworkDelegate::OnBeforeSendHeaders(URLRequest* request,
276                                          const CompletionCallback& callback,
277                                          HttpRequestHeaders* headers) {
278   return OK;
279 }
280
281 void NetworkDelegate::OnBeforeSendProxyHeaders(
282     URLRequest* request,
283     const ProxyInfo& proxy_info,
284     HttpRequestHeaders* headers) {
285 }
286
287 void NetworkDelegate::OnSendHeaders(URLRequest* request,
288                                     const HttpRequestHeaders& headers) {
289 }
290
291 int NetworkDelegate::OnHeadersReceived(
292     URLRequest* request,
293     const CompletionCallback& callback,
294     const HttpResponseHeaders* original_response_headers,
295     scoped_refptr<HttpResponseHeaders>* override_response_headers,
296     GURL* allowed_unsafe_redirect_url) {
297   return OK;
298 }
299
300 void NetworkDelegate::OnBeforeRedirect(URLRequest* request,
301                                        const GURL& new_location) {
302 }
303
304 void NetworkDelegate::OnResponseStarted(URLRequest* request) {
305 }
306
307 void NetworkDelegate::OnRawBytesRead(const URLRequest& request,
308                                      int bytes_read) {
309 }
310
311 void NetworkDelegate::OnCompleted(URLRequest* request, bool started) {
312 }
313
314 void NetworkDelegate::OnURLRequestDestroyed(URLRequest* request) {
315 }
316
317 void NetworkDelegate::OnPACScriptError(int line_number,
318                                        const base::string16& error) {
319 }
320
321 NetworkDelegate::AuthRequiredResponse NetworkDelegate::OnAuthRequired(
322     URLRequest* request,
323     const AuthChallengeInfo& auth_info,
324     const AuthCallback& callback,
325     AuthCredentials* credentials) {
326   return AUTH_REQUIRED_RESPONSE_NO_ACTION;
327 }
328
329 bool NetworkDelegate::OnCanGetCookies(const URLRequest& request,
330                                       const CookieList& cookie_list)  {
331   return true;
332 }
333
334 bool NetworkDelegate::OnCanSetCookie(const URLRequest& request,
335                                      const std::string& cookie_line,
336                                      CookieOptions* options) {
337   return true;
338 }
339
340 bool NetworkDelegate::OnCanAccessFile(const URLRequest& request,
341                                       const base::FilePath& path) const  {
342   return false;
343 }
344
345 bool NetworkDelegate::OnCanThrottleRequest(const URLRequest& request) const {
346   return false;
347 }
348
349 bool NetworkDelegate::OnCanEnablePrivacyMode(
350     const GURL& url,
351     const GURL& first_party_for_cookies) const {
352   return false;
353 }
354
355 int NetworkDelegate::OnBeforeSocketStreamConnect(
356     SocketStream* socket,
357     const CompletionCallback& callback) {
358   return OK;
359 }
360
361 bool NetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader(
362     const URLRequest& request,
363     const GURL& target_url,
364     const GURL& referrer_url) const {
365   return false;
366 }
367
368 }  // namespace net