Index: net/base/network_delegate_impl.h |
diff --git a/net/base/network_delegate.h b/net/base/network_delegate_impl.h |
similarity index 61% |
copy from net/base/network_delegate.h |
copy to net/base/network_delegate_impl.h |
index 03dee0b5f99040977bd73c4a52ed3b3aa920f19c..9b032a2ddecf82cfff32ecc6f2668854b69b973d 100644 |
--- a/net/base/network_delegate.h |
+++ b/net/base/network_delegate_impl.h |
@@ -1,17 +1,13 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef NET_BASE_NETWORK_DELEGATE_H_ |
-#define NET_BASE_NETWORK_DELEGATE_H_ |
+#ifndef NET_BASE_NETWORK_DELEGATE_IMPL_H_ |
+#define NET_BASE_NETWORK_DELEGATE_IMPL_H_ |
-#include <string> |
- |
-#include "base/callback.h" |
#include "base/strings/string16.h" |
-#include "base/threading/non_thread_safe.h" |
-#include "net/base/auth.h" |
#include "net/base/completion_callback.h" |
+#include "net/base/network_delegate.h" |
#include "net/cookies/canonical_cookie.h" |
class GURL; |
@@ -22,93 +18,17 @@ class FilePath; |
namespace net { |
-// NOTE: Layering violations! |
-// We decided to accept these violations (depending |
-// on other net/ submodules from net/base/), because otherwise NetworkDelegate |
-// would have to be broken up into too many smaller interfaces targeted to each |
-// submodule. Also, since the lower levels in net/ may callback into higher |
-// levels, we may encounter dangerous casting issues. |
-// |
-// NOTE: It is not okay to add any compile-time dependencies on symbols outside |
-// of net/base here, because we have a net_base library. Forward declarations |
-// are ok. |
class CookieOptions; |
class HttpRequestHeaders; |
class HttpResponseHeaders; |
class ProxyInfo; |
class ProxyServer; |
class ProxyService; |
-class SocketStream; |
class URLRequest; |
-class NET_EXPORT NetworkDelegate : public base::NonThreadSafe { |
+class NET_EXPORT NetworkDelegateImpl : public NetworkDelegate { |
public: |
- // AuthRequiredResponse indicates how a NetworkDelegate handles an |
- // OnAuthRequired call. It's placed in this file to prevent url_request.h |
- // from having to include network_delegate.h. |
- enum AuthRequiredResponse { |
- AUTH_REQUIRED_RESPONSE_NO_ACTION, |
- AUTH_REQUIRED_RESPONSE_SET_AUTH, |
- AUTH_REQUIRED_RESPONSE_CANCEL_AUTH, |
- AUTH_REQUIRED_RESPONSE_IO_PENDING, |
- }; |
- typedef base::Callback<void(AuthRequiredResponse)> AuthCallback; |
- |
- virtual ~NetworkDelegate() {} |
- |
- // Notification interface called by the network stack. Note that these |
- // functions mostly forward to the private virtuals. They also add some sanity |
- // checking on parameters. See the corresponding virtuals for explanations of |
- // the methods and their arguments. |
- int NotifyBeforeURLRequest(URLRequest* request, |
- const CompletionCallback& callback, |
- GURL* new_url); |
- void NotifyResolveProxy(const GURL& url, |
- int load_flags, |
- const ProxyService& proxy_service, |
- ProxyInfo* result); |
- void NotifyProxyFallback(const ProxyServer& bad_proxy, |
- int net_error); |
- int NotifyBeforeSendHeaders(URLRequest* request, |
- const CompletionCallback& callback, |
- HttpRequestHeaders* headers); |
- void NotifyBeforeSendProxyHeaders(URLRequest* request, |
- const ProxyInfo& proxy_info, |
- HttpRequestHeaders* headers); |
- void NotifySendHeaders(URLRequest* request, |
- const HttpRequestHeaders& headers); |
- int NotifyHeadersReceived( |
- URLRequest* request, |
- const CompletionCallback& callback, |
- const HttpResponseHeaders* original_response_headers, |
- scoped_refptr<HttpResponseHeaders>* override_response_headers, |
- GURL* allowed_unsafe_redirect_url); |
- void NotifyBeforeRedirect(URLRequest* request, |
- const GURL& new_location); |
- void NotifyResponseStarted(URLRequest* request); |
- void NotifyRawBytesRead(const URLRequest& request, int bytes_read); |
- void NotifyCompleted(URLRequest* request, bool started); |
- void NotifyURLRequestDestroyed(URLRequest* request); |
- void NotifyPACScriptError(int line_number, const base::string16& error); |
- AuthRequiredResponse NotifyAuthRequired(URLRequest* request, |
- const AuthChallengeInfo& auth_info, |
- const AuthCallback& callback, |
- AuthCredentials* credentials); |
- bool CanGetCookies(const URLRequest& request, |
- const CookieList& cookie_list); |
- bool CanSetCookie(const URLRequest& request, |
- const std::string& cookie_line, |
- CookieOptions* options); |
- bool CanAccessFile(const URLRequest& request, |
- const base::FilePath& path) const; |
- bool CanThrottleRequest(const URLRequest& request) const; |
- bool CanEnablePrivacyMode(const GURL& url, |
- const GURL& first_party_for_cookies) const; |
- |
- bool CancelURLRequestWithPolicyViolatingReferrerHeader( |
- const URLRequest& request, |
- const GURL& target_url, |
- const GURL& referrer_url) const; |
+ virtual ~NetworkDelegateImpl() {} |
private: |
// This is the interface for subclasses of NetworkDelegate to implement. These |
@@ -129,7 +49,7 @@ class NET_EXPORT NetworkDelegate : public base::NonThreadSafe { |
// The default implementation returns OK (continue with request). |
virtual int OnBeforeURLRequest(URLRequest* request, |
bengr
2014/11/18 19:30:56
Remove the virtual keyword from all of these overr
megjablon
2014/11/19 19:23:41
Done.
|
const CompletionCallback& callback, |
- GURL* new_url); |
+ GURL* new_url) override; |
// Called as the proxy is being resolved for |url|. Allows the delegate to |
// override the proxy resolution decision made by ProxyService. The delegate |
@@ -137,14 +57,14 @@ class NET_EXPORT NetworkDelegate : public base::NonThreadSafe { |
virtual void OnResolveProxy(const GURL& url, |
int load_flags, |
const ProxyService& proxy_service, |
- ProxyInfo* result); |
+ ProxyInfo* result) override; |
// Called when use of |bad_proxy| fails due to |net_error|. |net_error| is |
// the network error encountered, if any, and OK if the fallback was |
// for a reason other than a network error (e.g. the proxy service was |
// explicitly directed to skip a proxy). |
virtual void OnProxyFallback(const ProxyServer& bad_proxy, |
- int net_error); |
+ int net_error) override; |
// Called right before the HTTP headers are sent. Allows the delegate to |
// read/write |headers| before they get sent out. |callback| and |headers| are |
@@ -153,20 +73,20 @@ class NET_EXPORT NetworkDelegate : public base::NonThreadSafe { |
// See OnBeforeURLRequest for return value description. Returns OK by default. |
virtual int OnBeforeSendHeaders(URLRequest* request, |
const CompletionCallback& callback, |
- HttpRequestHeaders* headers); |
+ HttpRequestHeaders* headers) override; |
// Called after a proxy connection. Allows the delegate to read/write |
// |headers| before they get sent out. |headers| is valid only until |
// OnCompleted or OnURLRequestDestroyed is called for this request. |
virtual void OnBeforeSendProxyHeaders(URLRequest* request, |
const ProxyInfo& proxy_info, |
- HttpRequestHeaders* headers); |
+ HttpRequestHeaders* headers) override; |
// Called right before the HTTP request(s) are being sent to the network. |
// |headers| is only valid until OnCompleted or OnURLRequestDestroyed is |
// called for this request. |
virtual void OnSendHeaders(URLRequest* request, |
- const HttpRequestHeaders& headers); |
+ const HttpRequestHeaders& headers) override; |
// Called for HTTP requests when the headers have been received. |
// |original_response_headers| contains the headers as received over the |
@@ -186,33 +106,34 @@ class NET_EXPORT NetworkDelegate : public base::NonThreadSafe { |
const CompletionCallback& callback, |
const HttpResponseHeaders* original_response_headers, |
scoped_refptr<HttpResponseHeaders>* override_response_headers, |
- GURL* allowed_unsafe_redirect_url); |
+ GURL* allowed_unsafe_redirect_url) override; |
// Called right after a redirect response code was received. |
// |new_location| is only valid until OnURLRequestDestroyed is called for this |
// request. |
virtual void OnBeforeRedirect(URLRequest* request, |
- const GURL& new_location); |
+ const GURL& new_location) override; |
// This corresponds to URLRequestDelegate::OnResponseStarted. |
- virtual void OnResponseStarted(URLRequest* request); |
+ virtual void OnResponseStarted(URLRequest* request) override; |
// Called every time we read raw bytes. |
- virtual void OnRawBytesRead(const URLRequest& request, int bytes_read); |
+ virtual void OnRawBytesRead(const URLRequest& request, |
+ int bytes_read) override; |
// Indicates that the URL request has been completed or failed. |
// |started| indicates whether the request has been started. If false, |
// some information like the socket address is not available. |
- virtual void OnCompleted(URLRequest* request, bool started); |
+ virtual void OnCompleted(URLRequest* request, bool started) override; |
// Called when an URLRequest is being destroyed. Note that the request is |
// being deleted, so it's not safe to call any methods that may result in |
// a virtual method call. |
- virtual void OnURLRequestDestroyed(URLRequest* request); |
+ virtual void OnURLRequestDestroyed(URLRequest* request) override; |
// Corresponds to ProxyResolverJSBindings::OnError. |
virtual void OnPACScriptError(int line_number, |
- const base::string16& error); |
+ const base::string16& error) override; |
// Called when a request receives an authentication challenge |
// specified by |auth_info|, and is unable to respond using cached |
@@ -235,43 +156,43 @@ class NET_EXPORT NetworkDelegate : public base::NonThreadSafe { |
URLRequest* request, |
const AuthChallengeInfo& auth_info, |
const AuthCallback& callback, |
- AuthCredentials* credentials); |
+ AuthCredentials* credentials) override; |
// Called when reading cookies to allow the network delegate to block access |
// to the cookie. This method will never be invoked when |
// LOAD_DO_NOT_SEND_COOKIES is specified. |
virtual bool OnCanGetCookies(const URLRequest& request, |
- const CookieList& cookie_list); |
+ const CookieList& cookie_list) override; |
// Called when a cookie is set to allow the network delegate to block access |
// to the cookie. This method will never be invoked when |
// LOAD_DO_NOT_SAVE_COOKIES is specified. |
virtual bool OnCanSetCookie(const URLRequest& request, |
const std::string& cookie_line, |
- CookieOptions* options); |
+ CookieOptions* options) override; |
// Called when a file access is attempted to allow the network delegate to |
// allow or block access to the given file path. Returns true if access is |
// allowed. |
virtual bool OnCanAccessFile(const URLRequest& request, |
- const base::FilePath& path) const; |
+ const base::FilePath& path) const override; |
// Returns true if the given request may be rejected when the |
// URLRequestThrottlerManager believes the server servicing the |
// request is overloaded or down. |
- virtual bool OnCanThrottleRequest(const URLRequest& request) const; |
+ virtual bool OnCanThrottleRequest(const URLRequest& request) const override; |
// Returns true if the given |url| has to be requested over connection that |
// is not tracked by the server. Usually is false, unless user privacy |
// settings block cookies from being get or set. |
virtual bool OnCanEnablePrivacyMode( |
const GURL& url, |
- const GURL& first_party_for_cookies) const; |
+ const GURL& first_party_for_cookies) const override; |
// Called before a SocketStream tries to connect. |
// See OnBeforeURLRequest for return value description. Returns OK by default. |
virtual int OnBeforeSocketStreamConnect( |
- SocketStream* socket, const CompletionCallback& callback); |
+ SocketStream* socket, const CompletionCallback& callback) override; |
// Called when the |referrer_url| for requesting |target_url| during handling |
// of the |request| is does not comply with the referrer policy (e.g. a |
@@ -281,9 +202,9 @@ class NET_EXPORT NetworkDelegate : public base::NonThreadSafe { |
virtual bool OnCancelURLRequestWithPolicyViolatingReferrerHeader( |
const URLRequest& request, |
const GURL& target_url, |
- const GURL& referrer_url) const; |
+ const GURL& referrer_url) const override; |
}; |
} // namespace net |
-#endif // NET_BASE_NETWORK_DELEGATE_H_ |
+#endif // NET_BASE_NETWORK_DELEGATE_IMPL_H_ |