[email protected] | 9045b882 | 2012-01-13 20:35:35 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 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" |
[email protected] | 9c8ae8c | 2012-03-09 13:13:35 | [diff] [blame] | 8 | #include "net/base/load_flags.h" |
| 9 | #include "net/url_request/url_request.h" |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 10 | |
| 11 | namespace net { |
| 12 | |
[email protected] | 084262c | 2011-12-01 21:12:47 | [diff] [blame] | 13 | int NetworkDelegate::NotifyBeforeURLRequest( |
| 14 | URLRequest* request, const CompletionCallback& callback, |
| 15 | GURL* new_url) { |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 16 | DCHECK(CalledOnValidThread()); |
| 17 | DCHECK(request); |
[email protected] | 084262c | 2011-12-01 21:12:47 | [diff] [blame] | 18 | DCHECK(!callback.is_null()); |
[email protected] | 4c76d7c | 2011-04-15 19:14:12 | [diff] [blame] | 19 | return OnBeforeURLRequest(request, callback, new_url); |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 20 | } |
| 21 | |
[email protected] | 084262c | 2011-12-01 21:12:47 | [diff] [blame] | 22 | int NetworkDelegate::NotifyBeforeSendHeaders( |
| 23 | URLRequest* request, const CompletionCallback& callback, |
| 24 | HttpRequestHeaders* headers) { |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 25 | DCHECK(CalledOnValidThread()); |
| 26 | DCHECK(headers); |
[email protected] | 084262c | 2011-12-01 21:12:47 | [diff] [blame] | 27 | DCHECK(!callback.is_null()); |
[email protected] | 636eccd | 2011-06-28 12:28:01 | [diff] [blame] | 28 | return OnBeforeSendHeaders(request, callback, headers); |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 29 | } |
| 30 | |
[email protected] | 5796dc94 | 2011-07-14 19:26:10 | [diff] [blame] | 31 | void NetworkDelegate::NotifySendHeaders(URLRequest* request, |
| 32 | const HttpRequestHeaders& headers) { |
[email protected] | 82b4230 | 2011-04-20 16:28:16 | [diff] [blame] | 33 | DCHECK(CalledOnValidThread()); |
[email protected] | 5796dc94 | 2011-07-14 19:26:10 | [diff] [blame] | 34 | OnSendHeaders(request, headers); |
[email protected] | 82b4230 | 2011-04-20 16:28:16 | [diff] [blame] | 35 | } |
| 36 | |
[email protected] | ea8141e | 2011-10-05 13:12:51 | [diff] [blame] | 37 | int NetworkDelegate::NotifyHeadersReceived( |
| 38 | URLRequest* request, |
[email protected] | 084262c | 2011-12-01 21:12:47 | [diff] [blame] | 39 | const CompletionCallback& callback, |
[email protected] | 507af8f | 2012-10-20 00:42:32 | [diff] [blame] | 40 | const HttpResponseHeaders* original_response_headers, |
[email protected] | ea8141e | 2011-10-05 13:12:51 | [diff] [blame] | 41 | scoped_refptr<HttpResponseHeaders>* override_response_headers) { |
| 42 | DCHECK(CalledOnValidThread()); |
| 43 | DCHECK(original_response_headers); |
[email protected] | 084262c | 2011-12-01 21:12:47 | [diff] [blame] | 44 | DCHECK(!callback.is_null()); |
[email protected] | ea8141e | 2011-10-05 13:12:51 | [diff] [blame] | 45 | return OnHeadersReceived(request, callback, original_response_headers, |
| 46 | override_response_headers); |
| 47 | } |
| 48 | |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 49 | void NetworkDelegate::NotifyResponseStarted(URLRequest* request) { |
| 50 | DCHECK(CalledOnValidThread()); |
| 51 | DCHECK(request); |
| 52 | OnResponseStarted(request); |
| 53 | } |
| 54 | |
[email protected] | 8523ba5 | 2011-05-22 19:00:58 | [diff] [blame] | 55 | void NetworkDelegate::NotifyRawBytesRead(const URLRequest& request, |
| 56 | int bytes_read) { |
| 57 | DCHECK(CalledOnValidThread()); |
| 58 | OnRawBytesRead(request, bytes_read); |
| 59 | } |
| 60 | |
[email protected] | 31b2e5f | 2011-04-20 16:58:32 | [diff] [blame] | 61 | void NetworkDelegate::NotifyBeforeRedirect(URLRequest* request, |
| 62 | const GURL& new_location) { |
| 63 | DCHECK(CalledOnValidThread()); |
| 64 | DCHECK(request); |
| 65 | OnBeforeRedirect(request, new_location); |
| 66 | } |
| 67 | |
[email protected] | 9045b882 | 2012-01-13 20:35:35 | [diff] [blame] | 68 | void NetworkDelegate::NotifyCompleted(URLRequest* request, bool started) { |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 69 | DCHECK(CalledOnValidThread()); |
| 70 | DCHECK(request); |
[email protected] | 9045b882 | 2012-01-13 20:35:35 | [diff] [blame] | 71 | OnCompleted(request, started); |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 72 | } |
| 73 | |
[email protected] | 4875ba1 | 2011-03-30 22:31:51 | [diff] [blame] | 74 | void NetworkDelegate::NotifyURLRequestDestroyed(URLRequest* request) { |
[email protected] | 5aa2013 | 2011-04-27 23:11:34 | [diff] [blame] | 75 | DCHECK(CalledOnValidThread()); |
[email protected] | 4875ba1 | 2011-03-30 22:31:51 | [diff] [blame] | 76 | DCHECK(request); |
[email protected] | 5aa2013 | 2011-04-27 23:11:34 | [diff] [blame] | 77 | OnURLRequestDestroyed(request); |
| 78 | } |
| 79 | |
[email protected] | 82a3767 | 2011-05-03 12:02:41 | [diff] [blame] | 80 | void NetworkDelegate::NotifyPACScriptError(int line_number, |
| 81 | const string16& error) { |
| 82 | DCHECK(CalledOnValidThread()); |
| 83 | OnPACScriptError(line_number, error); |
| 84 | } |
| 85 | |
[email protected] | c2911d7 | 2011-10-03 22:16:36 | [diff] [blame] | 86 | NetworkDelegate::AuthRequiredResponse NetworkDelegate::NotifyAuthRequired( |
| 87 | URLRequest* request, |
| 88 | const AuthChallengeInfo& auth_info, |
| 89 | const AuthCallback& callback, |
| 90 | AuthCredentials* credentials) { |
[email protected] | 7efc582d | 2011-08-03 20:46:35 | [diff] [blame] | 91 | DCHECK(CalledOnValidThread()); |
[email protected] | c2911d7 | 2011-10-03 22:16:36 | [diff] [blame] | 92 | return OnAuthRequired(request, auth_info, callback, credentials); |
[email protected] | 7efc582d | 2011-08-03 20:46:35 | [diff] [blame] | 93 | } |
| 94 | |
[email protected] | 4c219e2 | 2012-05-05 19:41:04 | [diff] [blame] | 95 | bool NetworkDelegate::CanGetCookies(const URLRequest& request, |
| 96 | const CookieList& cookie_list) { |
[email protected] | 9c8ae8c | 2012-03-09 13:13:35 | [diff] [blame] | 97 | DCHECK(CalledOnValidThread()); |
[email protected] | 4c219e2 | 2012-05-05 19:41:04 | [diff] [blame] | 98 | DCHECK(!(request.load_flags() & net::LOAD_DO_NOT_SEND_COOKIES)); |
| 99 | return OnCanGetCookies(request, cookie_list); |
[email protected] | 9c8ae8c | 2012-03-09 13:13:35 | [diff] [blame] | 100 | } |
| 101 | |
[email protected] | 4c219e2 | 2012-05-05 19:41:04 | [diff] [blame] | 102 | bool NetworkDelegate::CanSetCookie(const URLRequest& request, |
| 103 | const std::string& cookie_line, |
| 104 | CookieOptions* options) { |
[email protected] | 9c8ae8c | 2012-03-09 13:13:35 | [diff] [blame] | 105 | DCHECK(CalledOnValidThread()); |
[email protected] | 4c219e2 | 2012-05-05 19:41:04 | [diff] [blame] | 106 | DCHECK(!(request.load_flags() & net::LOAD_DO_NOT_SAVE_COOKIES)); |
| 107 | return OnCanSetCookie(request, cookie_line, options); |
| 108 | } |
| 109 | |
| 110 | bool NetworkDelegate::CanAccessFile(const URLRequest& request, |
[email protected] | a3ef483 | 2013-02-02 05:12:33 | [diff] [blame^] | 111 | const base::FilePath& path) const { |
[email protected] | 4c219e2 | 2012-05-05 19:41:04 | [diff] [blame] | 112 | DCHECK(CalledOnValidThread()); |
| 113 | return OnCanAccessFile(request, path); |
[email protected] | 9c8ae8c | 2012-03-09 13:13:35 | [diff] [blame] | 114 | } |
| 115 | |
[email protected] | a1d4ab07 | 2012-06-07 13:21:15 | [diff] [blame] | 116 | bool NetworkDelegate::CanThrottleRequest(const URLRequest& request) const { |
| 117 | DCHECK(CalledOnValidThread()); |
| 118 | return OnCanThrottleRequest(request); |
| 119 | } |
| 120 | |
[email protected] | aa28181e | 2012-06-13 00:53:58 | [diff] [blame] | 121 | int NetworkDelegate::NotifyBeforeSocketStreamConnect( |
| 122 | SocketStream* socket, |
| 123 | const CompletionCallback& callback) { |
| 124 | DCHECK(CalledOnValidThread()); |
| 125 | DCHECK(socket); |
| 126 | DCHECK(!callback.is_null()); |
| 127 | return OnBeforeSocketStreamConnect(socket, callback); |
| 128 | } |
| 129 | |
[email protected] | a9e0d141 | 2012-08-20 22:13:01 | [diff] [blame] | 130 | void NetworkDelegate::NotifyRequestWaitStateChange(const URLRequest& request, |
| 131 | RequestWaitState state) { |
[email protected] | 5a07c19 | 2012-07-30 20:18:22 | [diff] [blame] | 132 | DCHECK(CalledOnValidThread()); |
[email protected] | a9e0d141 | 2012-08-20 22:13:01 | [diff] [blame] | 133 | OnRequestWaitStateChange(request, state); |
[email protected] | 5a07c19 | 2012-07-30 20:18:22 | [diff] [blame] | 134 | } |
| 135 | |
[email protected] | 0651b81 | 2011-02-24 00:22:50 | [diff] [blame] | 136 | } // namespace net |