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