diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 21:12:47 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 21:12:47 +0000 |
commit | 084262c6432c7f673f8342326e144660b40cb7d7 (patch) | |
tree | 4079e4b70856ba70e3ac0410496a81617cc58a13 | |
parent | 181962ea6224caa8e66d89b6885f27e13a6f2d06 (diff) | |
download | chromium_src-084262c6432c7f673f8342326e144660b40cb7d7.zip chromium_src-084262c6432c7f673f8342326e144660b40cb7d7.tar.gz chromium_src-084262c6432c7f673f8342326e144660b40cb7d7.tar.bz2 |
base::Bind: Convert net::NetworkDelegate.
R=groby
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8743019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112534 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/extensions/extension_webrequest_api.cc | 23 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_webrequest_api.h | 6 | ||||
-rw-r--r-- | chrome/browser/net/chrome_network_delegate.cc | 6 | ||||
-rw-r--r-- | chrome/browser/net/chrome_network_delegate.h | 8 | ||||
-rw-r--r-- | net/base/network_delegate.cc | 20 | ||||
-rw-r--r-- | net/base/network_delegate.h | 12 | ||||
-rw-r--r-- | net/proxy/network_delegate_error_observer_unittest.cc | 8 | ||||
-rw-r--r-- | net/url_request/url_request.cc | 8 | ||||
-rw-r--r-- | net/url_request/url_request.h | 2 | ||||
-rw-r--r-- | net/url_request/url_request_http_job.cc | 14 | ||||
-rw-r--r-- | net/url_request/url_request_http_job.h | 5 | ||||
-rw-r--r-- | net/url_request/url_request_test_util.cc | 6 | ||||
-rw-r--r-- | net/url_request/url_request_test_util.h | 6 | ||||
-rw-r--r-- | net/url_request/url_request_unittest.cc | 24 |
14 files changed, 75 insertions, 73 deletions
diff --git a/chrome/browser/extensions/extension_webrequest_api.cc b/chrome/browser/extensions/extension_webrequest_api.cc index b9bfd0f..f72500e 100644 --- a/chrome/browser/extensions/extension_webrequest_api.cc +++ b/chrome/browser/extensions/extension_webrequest_api.cc @@ -366,7 +366,7 @@ struct ExtensionWebRequestEventRouter::BlockedRequest { const net::BoundNetLog* net_log; // The callback to call when we get a response from all event handlers. - net::OldCompletionCallback* callback; + net::CompletionCallback callback; // If non-empty, this contains the new URL that the request will redirect to. // Only valid for OnBeforeRequest. @@ -404,7 +404,6 @@ struct ExtensionWebRequestEventRouter::BlockedRequest { event(kInvalidEvent), num_handlers_blocking(0), net_log(NULL), - callback(NULL), new_url(NULL), request_headers(NULL), override_response_headers(NULL), @@ -522,7 +521,7 @@ int ExtensionWebRequestEventRouter::OnBeforeRequest( void* profile, ExtensionInfoMap* extension_info_map, net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, GURL* new_url) { // TODO(jochen): Figure out what to do with events from the system context. if (!profile) @@ -568,7 +567,7 @@ int ExtensionWebRequestEventRouter::OnBeforeSendHeaders( void* profile, ExtensionInfoMap* extension_info_map, net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpRequestHeaders* headers) { // TODO(jochen): Figure out what to do with events from the system context. if (!profile) @@ -642,7 +641,7 @@ int ExtensionWebRequestEventRouter::OnHeadersReceived( void* profile, ExtensionInfoMap* extension_info_map, net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpResponseHeaders* original_response_headers, scoped_refptr<net::HttpResponseHeaders>* override_response_headers) { if (!profile) @@ -1301,21 +1300,21 @@ void ExtensionWebRequestEventRouter::DecrementBlockCount( &event_log_entries); if (blocked_request.event == kOnBeforeRequest) { - CHECK(blocked_request.callback); + CHECK(!blocked_request.callback.is_null()); helpers::MergeOnBeforeRequestResponses( blocked_request.response_deltas, blocked_request.new_url, &conflicting_extensions, &event_log_entries); } else if (blocked_request.event == kOnBeforeSendHeaders) { - CHECK(blocked_request.callback); + CHECK(!blocked_request.callback.is_null()); helpers::MergeOnBeforeSendHeadersResponses( blocked_request.response_deltas, blocked_request.request_headers, &conflicting_extensions, &event_log_entries); } else if (blocked_request.event == kOnHeadersReceived) { - CHECK(blocked_request.callback); + CHECK(!blocked_request.callback.is_null()); helpers::MergeOnHeadersReceivedResponses( blocked_request.response_deltas, blocked_request.original_response_headers.get(), @@ -1323,7 +1322,7 @@ void ExtensionWebRequestEventRouter::DecrementBlockCount( &conflicting_extensions, &event_log_entries); } else if (blocked_request.event == kOnAuthRequired) { - CHECK(!blocked_request.callback); + CHECK(blocked_request.callback.is_null()); CHECK(!blocked_request.auth_callback.is_null()); credentials_set = helpers::MergeOnAuthRequiredResponses( blocked_request.response_deltas, @@ -1356,14 +1355,14 @@ void ExtensionWebRequestEventRouter::DecrementBlockCount( request_time_tracker_->SetRequestRedirected(request_id); } - if (blocked_request.callback) { + if (!blocked_request.callback.is_null()) { // This triggers onErrorOccurred. int rv = canceled ? net::ERR_BLOCKED_BY_CLIENT : net::OK; - net::OldCompletionCallback* callback = blocked_request.callback; + net::CompletionCallback callback = blocked_request.callback; // Ensure that request is removed before callback because the callback // might trigger the next event. blocked_requests_.erase(request_id); - callback->Run(rv); + callback.Run(rv); } else if (!blocked_request.auth_callback.is_null()) { net::NetworkDelegate::AuthRequiredResponse response = net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION; diff --git a/chrome/browser/extensions/extension_webrequest_api.h b/chrome/browser/extensions/extension_webrequest_api.h index 941d52d..887b795 100644 --- a/chrome/browser/extensions/extension_webrequest_api.h +++ b/chrome/browser/extensions/extension_webrequest_api.h @@ -132,7 +132,7 @@ class ExtensionWebRequestEventRouter { int OnBeforeRequest(void* profile, ExtensionInfoMap* extension_info_map, net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, GURL* new_url); // Dispatches the onBeforeSendHeaders event. This is fired for HTTP(s) @@ -142,7 +142,7 @@ class ExtensionWebRequestEventRouter { int OnBeforeSendHeaders(void* profile, ExtensionInfoMap* extension_info_map, net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpRequestHeaders* headers); // Dispatches the onSendHeaders event. This is fired for HTTP(s) requests @@ -165,7 +165,7 @@ class ExtensionWebRequestEventRouter { void* profile, ExtensionInfoMap* extension_info_map, net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpResponseHeaders* original_response_headers, scoped_refptr<net::HttpResponseHeaders>* override_response_headers); diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc index a276c61..2bc9977 100644 --- a/chrome/browser/net/chrome_network_delegate.cc +++ b/chrome/browser/net/chrome_network_delegate.cc @@ -75,7 +75,7 @@ void ChromeNetworkDelegate::InitializeReferrersEnabled( int ChromeNetworkDelegate::OnBeforeURLRequest( net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, GURL* new_url) { #if defined(ENABLE_CONFIGURATION_POLICY) // TODO(joaodasilva): This prevents extensions from seeing URLs that are @@ -100,7 +100,7 @@ int ChromeNetworkDelegate::OnBeforeURLRequest( int ChromeNetworkDelegate::OnBeforeSendHeaders( net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpRequestHeaders* headers) { return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeSendHeaders( profile_, extension_info_map_.get(), request, callback, headers); @@ -115,7 +115,7 @@ void ChromeNetworkDelegate::OnSendHeaders( int ChromeNetworkDelegate::OnHeadersReceived( net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpResponseHeaders* original_response_headers, scoped_refptr<net::HttpResponseHeaders>* override_response_headers) { return ExtensionWebRequestEventRouter::GetInstance()->OnHeadersReceived( diff --git a/chrome/browser/net/chrome_network_delegate.h b/chrome/browser/net/chrome_network_delegate.h index 3d5d72a..b7f92f7 100644 --- a/chrome/browser/net/chrome_network_delegate.h +++ b/chrome/browser/net/chrome_network_delegate.h @@ -45,18 +45,18 @@ class ChromeNetworkDelegate : public net::NetworkDelegate { PrefService* pref_service); private: - // NetworkDelegate methods: + // NetworkDelegate implementation. virtual int OnBeforeURLRequest(net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, GURL* new_url) OVERRIDE; virtual int OnBeforeSendHeaders(net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpRequestHeaders* headers) OVERRIDE; virtual void OnSendHeaders(net::URLRequest* request, const net::HttpRequestHeaders& headers) OVERRIDE; virtual int OnHeadersReceived( net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpResponseHeaders* original_response_headers, scoped_refptr<net::HttpResponseHeaders>* override_response_headers) OVERRIDE; diff --git a/net/base/network_delegate.cc b/net/base/network_delegate.cc index f18a49c..39934eb 100644 --- a/net/base/network_delegate.cc +++ b/net/base/network_delegate.cc @@ -8,21 +8,21 @@ namespace net { -int NetworkDelegate::NotifyBeforeURLRequest(URLRequest* request, - OldCompletionCallback* callback, - GURL* new_url) { +int NetworkDelegate::NotifyBeforeURLRequest( + URLRequest* request, const CompletionCallback& callback, + GURL* new_url) { DCHECK(CalledOnValidThread()); DCHECK(request); - DCHECK(callback); + DCHECK(!callback.is_null()); return OnBeforeURLRequest(request, callback, new_url); } -int NetworkDelegate::NotifyBeforeSendHeaders(URLRequest* request, - OldCompletionCallback* callback, - HttpRequestHeaders* headers) { +int NetworkDelegate::NotifyBeforeSendHeaders( + URLRequest* request, const CompletionCallback& callback, + HttpRequestHeaders* headers) { DCHECK(CalledOnValidThread()); DCHECK(headers); - DCHECK(callback); + DCHECK(!callback.is_null()); return OnBeforeSendHeaders(request, callback, headers); } @@ -34,12 +34,12 @@ void NetworkDelegate::NotifySendHeaders(URLRequest* request, int NetworkDelegate::NotifyHeadersReceived( URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, HttpResponseHeaders* original_response_headers, scoped_refptr<HttpResponseHeaders>* override_response_headers) { DCHECK(CalledOnValidThread()); DCHECK(original_response_headers); - DCHECK(callback); + DCHECK(!callback.is_null()); return OnHeadersReceived(request, callback, original_response_headers, override_response_headers); } diff --git a/net/base/network_delegate.h b/net/base/network_delegate.h index 64c4918..00bbc25 100644 --- a/net/base/network_delegate.h +++ b/net/base/network_delegate.h @@ -50,16 +50,16 @@ class NetworkDelegate : public base::NonThreadSafe { // checking on parameters. See the corresponding virtuals for explanations of // the methods and their arguments. int NotifyBeforeURLRequest(URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, GURL* new_url); int NotifyBeforeSendHeaders(URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, HttpRequestHeaders* headers); void NotifySendHeaders(URLRequest* request, const HttpRequestHeaders& headers); int NotifyHeadersReceived( URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, HttpResponseHeaders* original_response_headers, scoped_refptr<HttpResponseHeaders>* override_response_headers); void NotifyBeforeRedirect(URLRequest* request, @@ -87,7 +87,7 @@ class NetworkDelegate : public base::NonThreadSafe { // and ERR_IO_PENDING will cancel the request and report the status code as // the reason. virtual int OnBeforeURLRequest(URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, GURL* new_url) = 0; // Called right before the HTTP headers are sent. Allows the delegate to @@ -95,7 +95,7 @@ class NetworkDelegate : public base::NonThreadSafe { // valid only until OnURLRequestDestroyed is called for this request. // Returns a net status code. virtual int OnBeforeSendHeaders(URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, HttpRequestHeaders* headers) = 0; // Called right before the HTTP request(s) are being sent to the network. @@ -113,7 +113,7 @@ class NetworkDelegate : public base::NonThreadSafe { // |original_response_headers|. virtual int OnHeadersReceived( URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, HttpResponseHeaders* original_response_headers, scoped_refptr<HttpResponseHeaders>* override_response_headers) = 0; diff --git a/net/proxy/network_delegate_error_observer_unittest.cc b/net/proxy/network_delegate_error_observer_unittest.cc index 56e2382..d41dbc0 100644 --- a/net/proxy/network_delegate_error_observer_unittest.cc +++ b/net/proxy/network_delegate_error_observer_unittest.cc @@ -24,14 +24,14 @@ class TestNetworkDelegate : public net::NetworkDelegate { bool got_pac_error() const { return got_pac_error_; } private: - // net::NetworkDelegate: + // net::NetworkDelegate implementation. virtual int OnBeforeURLRequest(URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, GURL* new_url) OVERRIDE { return OK; } virtual int OnBeforeSendHeaders(URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, HttpRequestHeaders* headers) OVERRIDE { return OK; } @@ -39,7 +39,7 @@ class TestNetworkDelegate : public net::NetworkDelegate { const HttpRequestHeaders& headers) OVERRIDE {} virtual int OnHeadersReceived( URLRequest* request, - OldCompletionCallback* callback, + const CompletionCallback& callback, HttpResponseHeaders* original_response_headers, scoped_refptr<HttpResponseHeaders>* override_response_headers) OVERRIDE { return net::OK; diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc index 9fcae42..af405d7 100644 --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc @@ -5,6 +5,7 @@ #include "net/url_request/url_request.h" #include "base/bind.h" +#include "base/bind_helpers.h" #include "base/callback.h" #include "base/compiler_specific.h" #include "base/lazy_instance.h" @@ -148,8 +149,9 @@ URLRequest::URLRequest(const GURL& url, Delegate* delegate) priority_(LOWEST), identifier_(GenerateURLRequestIdentifier()), blocked_on_delegate_(false), - ALLOW_THIS_IN_INITIALIZER_LIST( - before_request_callback_(this, &URLRequest::BeforeRequestComplete)), + ALLOW_THIS_IN_INITIALIZER_LIST(before_request_callback_( + base::Bind(&URLRequest::BeforeRequestComplete, + base::Unretained(this)))), has_notified_completion_(false) { SIMPLE_STATS_COUNTER("URLRequestCount"); @@ -417,7 +419,7 @@ void URLRequest::Start() { // Only notify the delegate for the initial request. if (context_ && context_->network_delegate()) { int error = context_->network_delegate()->NotifyBeforeURLRequest( - this, &before_request_callback_, &delegate_redirect_url_); + this, before_request_callback_, &delegate_redirect_url_); if (error != net::OK) { if (error == net::ERR_IO_PENDING) { // Paused on the delegate, will invoke |before_request_callback_| later. diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h index 44b8d68..3deb198 100644 --- a/net/url_request/url_request.h +++ b/net/url_request/url_request.h @@ -800,7 +800,7 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe) { // Callback passed to the network delegate to notify us when a blocked request // is ready to be resumed or canceled. - OldCompletionCallbackImpl<URLRequest> before_request_callback_; + CompletionCallback before_request_callback_; // Safe-guard to ensure that we do not send multiple "I am completed" // messages to network delegate. diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc index b5ef12d..335d5ed 100644 --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc @@ -6,6 +6,7 @@ #include "base/base_switches.h" #include "base/bind.h" +#include "base/bind_helpers.h" #include "base/build_time.h" #include "base/command_line.h" #include "base/compiler_specific.h" @@ -209,7 +210,8 @@ URLRequestHttpJob::URLRequestHttpJob(URLRequest* request) ALLOW_THIS_IN_INITIALIZER_LIST(read_callback_( this, &URLRequestHttpJob::OnReadCompleted)), ALLOW_THIS_IN_INITIALIZER_LIST(notify_before_headers_sent_callback_( - this, &URLRequestHttpJob::NotifyBeforeSendHeadersCallback)), + base::Bind(&URLRequestHttpJob::NotifyBeforeSendHeadersCallback, + base::Unretained(this)))), read_in_progress_(false), transaction_(NULL), throttling_entry_(URLRequestThrottlerManager::GetInstance()-> @@ -228,9 +230,9 @@ URLRequestHttpJob::URLRequestHttpJob(URLRequest* request) filter_context_(new HttpFilterContext(this))), ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), - ALLOW_THIS_IN_INITIALIZER_LIST( - on_headers_received_callback_( - this, &URLRequestHttpJob::OnHeadersReceivedCallback)), + ALLOW_THIS_IN_INITIALIZER_LIST(on_headers_received_callback_( + base::Bind(&URLRequestHttpJob::OnHeadersReceivedCallback, + base::Unretained(this)))), awaiting_callback_(false) { ResetTimer(); } @@ -305,7 +307,7 @@ void URLRequestHttpJob::DestroyTransaction() { void URLRequestHttpJob::StartTransaction() { if (request_->context() && request_->context()->network_delegate()) { int rv = request_->context()->network_delegate()->NotifyBeforeSendHeaders( - request_, ¬ify_before_headers_sent_callback_, + request_, notify_before_headers_sent_callback_, &request_info_.extra_headers); // If an extension blocks the request, we rely on the callback to // StartTransactionInternal(). @@ -714,7 +716,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { // |on_headers_received_callback_| or // |NetworkDelegate::URLRequestDestroyed()| has been called. int error = request_->context()->network_delegate()-> - NotifyHeadersReceived(request_, &on_headers_received_callback_, + NotifyHeadersReceived(request_, on_headers_received_callback_, headers, &override_response_headers_); if (error != net::OK) { if (error == net::ERR_IO_PENDING) { diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_request_http_job.h index 80decf8..b94b462 100644 --- a/net/url_request/url_request_http_job.h +++ b/net/url_request/url_request_http_job.h @@ -108,8 +108,7 @@ class URLRequestHttpJob : public URLRequestJob { OldCompletionCallbackImpl<URLRequestHttpJob> start_callback_; OldCompletionCallbackImpl<URLRequestHttpJob> read_callback_; - OldCompletionCallbackImpl<URLRequestHttpJob> - notify_before_headers_sent_callback_; + CompletionCallback notify_before_headers_sent_callback_; bool read_in_progress_; @@ -211,7 +210,7 @@ class URLRequestHttpJob : public URLRequestJob { ScopedRunnableMethodFactory<URLRequestHttpJob> method_factory_; base::WeakPtrFactory<URLRequestHttpJob> weak_ptr_factory_; - OldCompletionCallbackImpl<URLRequestHttpJob> on_headers_received_callback_; + CompletionCallback on_headers_received_callback_; // We allow the network delegate to modify a copy of the response headers. // This prevents modifications of headers that are shared with the underlying diff --git a/net/url_request/url_request_test_util.cc b/net/url_request/url_request_test_util.cc index 11d9e01..0e822f6 100644 --- a/net/url_request/url_request_test_util.cc +++ b/net/url_request/url_request_test_util.cc @@ -339,7 +339,7 @@ void TestNetworkDelegate::InitRequestStatesIfNew(int request_id) { int TestNetworkDelegate::OnBeforeURLRequest( net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, GURL* new_url ) { int req_id = request->identifier(); InitRequestStatesIfNew(req_id); @@ -358,7 +358,7 @@ int TestNetworkDelegate::OnBeforeURLRequest( int TestNetworkDelegate::OnBeforeSendHeaders( net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpRequestHeaders* headers) { int req_id = request->identifier(); InitRequestStatesIfNew(req_id); @@ -387,7 +387,7 @@ void TestNetworkDelegate::OnSendHeaders( int TestNetworkDelegate::OnHeadersReceived( net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpResponseHeaders* original_response_headers, scoped_refptr<net::HttpResponseHeaders>* override_response_headers) { int req_id = request->identifier(); diff --git a/net/url_request/url_request_test_util.h b/net/url_request/url_request_test_util.h index 11ab2b6..39e27c7 100644 --- a/net/url_request/url_request_test_util.h +++ b/net/url_request/url_request_test_util.h @@ -190,16 +190,16 @@ class TestNetworkDelegate : public net::NetworkDelegate { protected: // net::NetworkDelegate: virtual int OnBeforeURLRequest(net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, GURL* new_url) OVERRIDE; virtual int OnBeforeSendHeaders(net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpRequestHeaders* headers) OVERRIDE; virtual void OnSendHeaders(net::URLRequest* request, const net::HttpRequestHeaders& headers) OVERRIDE; virtual int OnHeadersReceived( net::URLRequest* request, - net::OldCompletionCallback* callback, + const net::CompletionCallback& callback, net::HttpResponseHeaders* original_response_headers, scoped_refptr<net::HttpResponseHeaders>* override_response_headers) OVERRIDE; diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc index e02c3fc..b4be49e 100644 --- a/net/url_request/url_request_unittest.cc +++ b/net/url_request/url_request_unittest.cc @@ -17,6 +17,7 @@ #include "base/compiler_specific.h" #include "base/file_util.h" #include "base/format_macros.h" +#include "base/memory/weak_ptr.h" #include "base/message_loop.h" #include "base/path_service.h" #include "base/process_util.h" @@ -131,7 +132,7 @@ class BlockingNetworkDelegate : public TestNetworkDelegate { auth_retval_(NetworkDelegate::AUTH_REQUIRED_RESPONSE_IO_PENDING), auth_callback_retval_( NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION), - ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {} + ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {} void set_retval(int retval) { retval_ = retval; } void set_callback_retval(int retval) { callback_retval_ = retval; } @@ -145,10 +146,10 @@ class BlockingNetworkDelegate : public TestNetworkDelegate { } private: - // TestNetworkDelegate: + // TestNetworkDelegate implementation. virtual int OnBeforeURLRequest(net::URLRequest* request, - net::OldCompletionCallback* callback, - GURL* new_url) { + const net::CompletionCallback& callback, + GURL* new_url) OVERRIDE { if (redirect_url_ == request->url()) { // We've already seen this request and redirected elsewhere. return net::OK; @@ -164,8 +165,8 @@ class BlockingNetworkDelegate : public TestNetworkDelegate { MessageLoop::current()->PostTask( FROM_HERE, - method_factory_.NewRunnableMethod(&BlockingNetworkDelegate::DoCallback, - callback)); + base::Bind(&BlockingNetworkDelegate::DoCallback, + weak_factory_.GetWeakPtr(), callback)); return net::ERR_IO_PENDING; } @@ -186,16 +187,15 @@ class BlockingNetworkDelegate : public TestNetworkDelegate { case NetworkDelegate::AUTH_REQUIRED_RESPONSE_IO_PENDING: MessageLoop::current()->PostTask( FROM_HERE, - method_factory_.NewRunnableMethod( - &BlockingNetworkDelegate::DoAuthCallback, - callback, credentials)); + base::Bind(&BlockingNetworkDelegate::DoAuthCallback, + weak_factory_.GetWeakPtr(), callback, credentials)); break; } return auth_retval_; } - void DoCallback(net::OldCompletionCallback* callback) { - callback->Run(callback_retval_); + void DoCallback(const net::CompletionCallback& callback) { + callback.Run(callback_retval_); } void DoAuthCallback(const AuthCallback& callback, @@ -214,7 +214,7 @@ class BlockingNetworkDelegate : public TestNetworkDelegate { NetworkDelegate::AuthRequiredResponse auth_retval_; NetworkDelegate::AuthRequiredResponse auth_callback_retval_; AuthCredentials auth_credentials_; - ScopedRunnableMethodFactory<BlockingNetworkDelegate> method_factory_; + base::WeakPtrFactory<BlockingNetworkDelegate> weak_factory_; }; // A simple Interceptor that returns a pre-built URLRequestJob one time. |