OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_BASE_NETWORK_DELEGATE_H_ | 5 #ifndef NET_BASE_NETWORK_DELEGATE_H_ |
6 #define NET_BASE_NETWORK_DELEGATE_H_ | 6 #define NET_BASE_NETWORK_DELEGATE_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 // OnAuthRequired call. It's placed in this file to prevent url_request.h | 41 // OnAuthRequired call. It's placed in this file to prevent url_request.h |
42 // from having to include network_delegate.h. | 42 // from having to include network_delegate.h. |
43 enum AuthRequiredResponse { | 43 enum AuthRequiredResponse { |
44 AUTH_REQUIRED_RESPONSE_NO_ACTION, | 44 AUTH_REQUIRED_RESPONSE_NO_ACTION, |
45 AUTH_REQUIRED_RESPONSE_SET_AUTH, | 45 AUTH_REQUIRED_RESPONSE_SET_AUTH, |
46 AUTH_REQUIRED_RESPONSE_CANCEL_AUTH, | 46 AUTH_REQUIRED_RESPONSE_CANCEL_AUTH, |
47 AUTH_REQUIRED_RESPONSE_IO_PENDING, | 47 AUTH_REQUIRED_RESPONSE_IO_PENDING, |
48 }; | 48 }; |
49 typedef base::Callback<void(AuthRequiredResponse)> AuthCallback; | 49 typedef base::Callback<void(AuthRequiredResponse)> AuthCallback; |
50 | 50 |
| 51 enum CacheWaitState { |
| 52 CACHE_WAIT_STATE_START, |
| 53 CACHE_WAIT_STATE_FINISH, |
| 54 CACHE_WAIT_STATE_RESET |
| 55 }; |
| 56 |
51 virtual ~NetworkDelegate() {} | 57 virtual ~NetworkDelegate() {} |
52 | 58 |
53 // Notification interface called by the network stack. Note that these | 59 // Notification interface called by the network stack. Note that these |
54 // functions mostly forward to the private virtuals. They also add some sanity | 60 // functions mostly forward to the private virtuals. They also add some sanity |
55 // checking on parameters. See the corresponding virtuals for explanations of | 61 // checking on parameters. See the corresponding virtuals for explanations of |
56 // the methods and their arguments. | 62 // the methods and their arguments. |
57 int NotifyBeforeURLRequest(URLRequest* request, | 63 int NotifyBeforeURLRequest(URLRequest* request, |
58 const CompletionCallback& callback, | 64 const CompletionCallback& callback, |
59 GURL* new_url); | 65 GURL* new_url); |
60 int NotifyBeforeSendHeaders(URLRequest* request, | 66 int NotifyBeforeSendHeaders(URLRequest* request, |
(...skipping 22 matching lines...) Expand all Loading... |
83 bool CanSetCookie(const URLRequest& request, | 89 bool CanSetCookie(const URLRequest& request, |
84 const std::string& cookie_line, | 90 const std::string& cookie_line, |
85 CookieOptions* options); | 91 CookieOptions* options); |
86 bool CanAccessFile(const URLRequest& request, | 92 bool CanAccessFile(const URLRequest& request, |
87 const FilePath& path) const; | 93 const FilePath& path) const; |
88 bool CanThrottleRequest(const URLRequest& request) const; | 94 bool CanThrottleRequest(const URLRequest& request) const; |
89 | 95 |
90 int NotifyBeforeSocketStreamConnect(SocketStream* socket, | 96 int NotifyBeforeSocketStreamConnect(SocketStream* socket, |
91 const CompletionCallback& callback); | 97 const CompletionCallback& callback); |
92 | 98 |
| 99 void NotifyCacheWaitStateChange(const URLRequest& request, |
| 100 CacheWaitState state); |
| 101 |
93 private: | 102 private: |
94 // This is the interface for subclasses of NetworkDelegate to implement. These | 103 // This is the interface for subclasses of NetworkDelegate to implement. These |
95 // member functions will be called by the respective public notification | 104 // member functions will be called by the respective public notification |
96 // member function, which will perform basic sanity checking. | 105 // member function, which will perform basic sanity checking. |
97 | 106 |
98 // Called before a request is sent. Allows the delegate to rewrite the URL | 107 // Called before a request is sent. Allows the delegate to rewrite the URL |
99 // being fetched by modifying |new_url|. |callback| and |new_url| are valid | 108 // being fetched by modifying |new_url|. |callback| and |new_url| are valid |
100 // only until OnURLRequestDestroyed is called for this request. Returns a net | 109 // only until OnURLRequestDestroyed is called for this request. Returns a net |
101 // status code, generally either OK to continue with the request or | 110 // status code, generally either OK to continue with the request or |
102 // ERR_IO_PENDING if the result is not ready yet. A status code other than OK | 111 // ERR_IO_PENDING if the result is not ready yet. A status code other than OK |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 const FilePath& path) const = 0; | 216 const FilePath& path) const = 0; |
208 | 217 |
209 // Returns true if the given request may be rejected when the | 218 // Returns true if the given request may be rejected when the |
210 // URLRequestThrottlerManager believes the server servicing the | 219 // URLRequestThrottlerManager believes the server servicing the |
211 // request is overloaded or down. | 220 // request is overloaded or down. |
212 virtual bool OnCanThrottleRequest(const URLRequest& request) const = 0; | 221 virtual bool OnCanThrottleRequest(const URLRequest& request) const = 0; |
213 | 222 |
214 // Called before a SocketStream tries to connect. | 223 // Called before a SocketStream tries to connect. |
215 virtual int OnBeforeSocketStreamConnect( | 224 virtual int OnBeforeSocketStreamConnect( |
216 SocketStream* socket, const CompletionCallback& callback) = 0; | 225 SocketStream* socket, const CompletionCallback& callback) = 0; |
| 226 |
| 227 // Called when the completion of a URLRequest is blocking on a cache |
| 228 // transaction (CACHE_WAIT_STATE_START), or when a URLRequest is no longer |
| 229 // blocked on a cache transaction (CACHE_WAIT_STATE_FINISH), or when a |
| 230 // URLRequest is reset (CACHE_WAIT_STATE_RESET), indicating |
| 231 // cancellation of any pending cache waits for this request. Notice that |
| 232 // START can be called several times for the same request. It is the |
| 233 // responsibility of the delegate to keep track of the number of outstanding |
| 234 // cache transactions. |
| 235 virtual void OnCacheWaitStateChange(const URLRequest& request, |
| 236 CacheWaitState state) = 0; |
217 }; | 237 }; |
218 | 238 |
219 } // namespace net | 239 } // namespace net |
220 | 240 |
221 #endif // NET_BASE_NETWORK_DELEGATE_H_ | 241 #endif // NET_BASE_NETWORK_DELEGATE_H_ |
OLD | NEW |