summaryrefslogtreecommitdiffstats
path: root/net/url_request
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/url_request
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/url_request')
-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
7 files changed, 34 insertions, 31 deletions
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.