summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-01 21:12:47 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-01 21:12:47 +0000
commit084262c6432c7f673f8342326e144660b40cb7d7 (patch)
tree4079e4b70856ba70e3ac0410496a81617cc58a13 /net
parent181962ea6224caa8e66d89b6885f27e13a6f2d06 (diff)
downloadchromium_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
Diffstat (limited to 'net')
-rw-r--r--net/base/network_delegate.cc20
-rw-r--r--net/base/network_delegate.h12
-rw-r--r--net/proxy/network_delegate_error_observer_unittest.cc8
-rw-r--r--net/url_request/url_request.cc8
-rw-r--r--net/url_request/url_request.h2
-rw-r--r--net/url_request/url_request_http_job.cc14
-rw-r--r--net/url_request/url_request_http_job.h5
-rw-r--r--net/url_request/url_request_test_util.cc6
-rw-r--r--net/url_request/url_request_test_util.h6
-rw-r--r--net/url_request/url_request_unittest.cc24
10 files changed, 54 insertions, 51 deletions
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_, &notify_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.