15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/base/network_delegate.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/base/load_flags.h"
91e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "net/base/net_errors.h"
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "net/proxy/proxy_info.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/url_request/url_request.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int NetworkDelegate::NotifyBeforeURLRequest(
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    URLRequest* request, const CompletionCallback& callback,
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    GURL* new_url) {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(request);
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(!callback.is_null());
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return OnBeforeURLRequest(request, callback, new_url);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void NetworkDelegate::NotifyResolveProxy(
256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    const GURL& url,
266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    int load_flags,
276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    const ProxyService& proxy_service,
286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    ProxyInfo* result) {
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DCHECK(CalledOnValidThread());
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DCHECK(result);
316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  OnResolveProxy(url, load_flags, proxy_service, result);
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void NetworkDelegate::NotifyProxyFallback(
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    const ProxyServer& bad_proxy,
3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    int net_error) {
376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  DCHECK(CalledOnValidThread());
3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  OnProxyFallback(bad_proxy, net_error);
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int NetworkDelegate::NotifyBeforeSendHeaders(
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    URLRequest* request, const CompletionCallback& callback,
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    HttpRequestHeaders* headers) {
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(headers);
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(!callback.is_null());
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return OnBeforeSendHeaders(request, callback, headers);
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkDelegate::NotifyBeforeSendProxyHeaders(
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    URLRequest* request,
52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const ProxyInfo& proxy_info,
53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    HttpRequestHeaders* headers) {
54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DCHECK(CalledOnValidThread());
55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DCHECK(headers);
56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  OnBeforeSendProxyHeaders(request, proxy_info, headers);
57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void NetworkDelegate::NotifySendHeaders(URLRequest* request,
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                        const HttpRequestHeaders& headers) {
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OnSendHeaders(request, headers);
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int NetworkDelegate::NotifyHeadersReceived(
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    URLRequest* request,
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CompletionCallback& callback,
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const HttpResponseHeaders* original_response_headers,
69effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    scoped_refptr<HttpResponseHeaders>* override_response_headers,
70effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    GURL* allowed_unsafe_redirect_url) {
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(original_response_headers);
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(!callback.is_null());
74effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  return OnHeadersReceived(request,
75effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                           callback,
76effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                           original_response_headers,
77effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                           override_response_headers,
78effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                           allowed_unsafe_redirect_url);
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void NetworkDelegate::NotifyResponseStarted(URLRequest* request) {
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(request);
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OnResponseStarted(request);
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void NetworkDelegate::NotifyRawBytesRead(const URLRequest& request,
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                         int bytes_read) {
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OnRawBytesRead(request, bytes_read);
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void NetworkDelegate::NotifyBeforeRedirect(URLRequest* request,
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                           const GURL& new_location) {
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(request);
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OnBeforeRedirect(request, new_location);
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void NetworkDelegate::NotifyCompleted(URLRequest* request, bool started) {
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(request);
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OnCompleted(request, started);
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void NetworkDelegate::NotifyURLRequestDestroyed(URLRequest* request) {
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(request);
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OnURLRequestDestroyed(request);
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void NetworkDelegate::NotifyPACScriptError(int line_number,
113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                                           const base::string16& error) {
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OnPACScriptError(line_number, error);
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NetworkDelegate::AuthRequiredResponse NetworkDelegate::NotifyAuthRequired(
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    URLRequest* request,
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const AuthChallengeInfo& auth_info,
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const AuthCallback& callback,
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    AuthCredentials* credentials) {
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return OnAuthRequired(request, auth_info, callback, credentials);
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)int NetworkDelegate::NotifyBeforeSocketStreamConnect(
1281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    SocketStream* socket,
1291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    const CompletionCallback& callback) {
1301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  DCHECK(CalledOnValidThread());
1311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  DCHECK(socket);
1321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  DCHECK(!callback.is_null());
1331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return OnBeforeSocketStreamConnect(socket, callback);
1341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
1351e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool NetworkDelegate::CanGetCookies(const URLRequest& request,
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                    const CookieList& cookie_list) {
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(!(request.load_flags() & net::LOAD_DO_NOT_SEND_COOKIES));
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return OnCanGetCookies(request, cookie_list);
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
143b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)bool NetworkDelegate::CanSetCookie(const URLRequest& request,
144b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)                                   const std::string& cookie_line,
145b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)                                   CookieOptions* options) {
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(!(request.load_flags() & net::LOAD_DO_NOT_SAVE_COOKIES));
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return OnCanSetCookie(request, cookie_line, options);
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool NetworkDelegate::CanAccessFile(const URLRequest& request,
1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                    const base::FilePath& path) const {
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return OnCanAccessFile(request, path);
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool NetworkDelegate::CanThrottleRequest(const URLRequest& request) const {
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(CalledOnValidThread());
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return OnCanThrottleRequest(request);
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)bool NetworkDelegate::CanEnablePrivacyMode(
16390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const GURL& url,
16490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const GURL& first_party_for_cookies) const {
16590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  DCHECK(CalledOnValidThread());
16690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return OnCanEnablePrivacyMode(url, first_party_for_cookies);
16790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
16890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool NetworkDelegate::CancelURLRequestWithPolicyViolatingReferrerHeader(
1701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const URLRequest& request,
1711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const GURL& target_url,
1721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const GURL& referrer_url) const {
1731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  DCHECK(CalledOnValidThread());
1741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return OnCancelURLRequestWithPolicyViolatingReferrerHeader(
1751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      request, target_url, referrer_url);
1761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
1771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1781e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)int NetworkDelegate::OnBeforeURLRequest(URLRequest* request,
1791e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                        const CompletionCallback& callback,
1801e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                        GURL* new_url) {
1811e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return OK;
1821e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
1831e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
1846e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void NetworkDelegate::OnResolveProxy(
1856e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    const GURL& url,
1866e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    int load_flags,
1876e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    const ProxyService& proxy_service,
1886e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    ProxyInfo* result) {
1896e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}
1906e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
1916e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void NetworkDelegate::OnProxyFallback(const ProxyServer& bad_proxy,
19203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                                      int net_error) {
193116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
194116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
1951e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)int NetworkDelegate::OnBeforeSendHeaders(URLRequest* request,
1961e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                         const CompletionCallback& callback,
1971e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                         HttpRequestHeaders* headers) {
1981e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return OK;
1991e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2001e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
201116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkDelegate::OnBeforeSendProxyHeaders(
202116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    URLRequest* request,
203116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const ProxyInfo& proxy_info,
204116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    HttpRequestHeaders* headers) {
205116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
206116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
2071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void NetworkDelegate::OnSendHeaders(URLRequest* request,
2081e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                    const HttpRequestHeaders& headers) {
2091e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)int NetworkDelegate::OnHeadersReceived(
2121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    URLRequest* request,
2131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    const CompletionCallback& callback,
2141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    const HttpResponseHeaders* original_response_headers,
215effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    scoped_refptr<HttpResponseHeaders>* override_response_headers,
216effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    GURL* allowed_unsafe_redirect_url) {
2171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return OK;
2181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void NetworkDelegate::OnBeforeRedirect(URLRequest* request,
2211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                       const GURL& new_location) {
2221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void NetworkDelegate::OnResponseStarted(URLRequest* request) {
2251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void NetworkDelegate::OnRawBytesRead(const URLRequest& request,
2281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                     int bytes_read) {
2291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void NetworkDelegate::OnCompleted(URLRequest* request, bool started) {
2321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void NetworkDelegate::OnURLRequestDestroyed(URLRequest* request) {
2351e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2361e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2371e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void NetworkDelegate::OnPACScriptError(int line_number,
2381e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                       const base::string16& error) {
2391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)NetworkDelegate::AuthRequiredResponse NetworkDelegate::OnAuthRequired(
2421e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    URLRequest* request,
2431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    const AuthChallengeInfo& auth_info,
2441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    const AuthCallback& callback,
2451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    AuthCredentials* credentials) {
2461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return AUTH_REQUIRED_RESPONSE_NO_ACTION;
2471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2491e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)bool NetworkDelegate::OnCanGetCookies(const URLRequest& request,
2501e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                      const CookieList& cookie_list)  {
2511e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return true;
2521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)bool NetworkDelegate::OnCanSetCookie(const URLRequest& request,
2551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                     const std::string& cookie_line,
2561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                     CookieOptions* options) {
2571e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return true;
2581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)bool NetworkDelegate::OnCanAccessFile(const URLRequest& request,
2611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                      const base::FilePath& path) const  {
2621e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return false;
2631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2641e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2651e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)bool NetworkDelegate::OnCanThrottleRequest(const URLRequest& request) const {
2661e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return false;
2671e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2681e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
26990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)bool NetworkDelegate::OnCanEnablePrivacyMode(
27090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const GURL& url,
27190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const GURL& first_party_for_cookies) const {
27290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return false;
27390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
27490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
2751e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)int NetworkDelegate::OnBeforeSocketStreamConnect(
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SocketStream* socket,
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const CompletionCallback& callback) {
2781e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return OK;
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool NetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader(
2821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const URLRequest& request,
2831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const GURL& target_url,
2841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const GURL& referrer_url) const {
2851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return false;
2861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
2871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace net
289