diff options
author | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-23 13:28:16 +0000 |
---|---|---|
committer | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-23 13:28:16 +0000 |
commit | 4894438bb73e0a3c22fec3f36204b1f97b8cb104 (patch) | |
tree | 7198dcfb7d931648b77ed64ab8de663223b57d4f /net | |
parent | d347fa255cdc8b7b0893485285d97492ab1a5d07 (diff) | |
download | chromium_src-4894438bb73e0a3c22fec3f36204b1f97b8cb104.zip chromium_src-4894438bb73e0a3c22fec3f36204b1f97b8cb104.tar.gz chromium_src-4894438bb73e0a3c22fec3f36204b1f97b8cb104.tar.bz2 |
Implemented chrome.experimental.webRequest.onCompleted
BUG=60101
TEST=run browser_tests
Review URL: http://codereview.chromium.org/6883119
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82793 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/base/network_delegate.cc | 5 | ||||
-rw-r--r-- | net/base/network_delegate.h | 6 | ||||
-rw-r--r-- | net/url_request/url_request_job.cc | 16 | ||||
-rw-r--r-- | net/url_request/url_request_test_util.cc | 3 | ||||
-rw-r--r-- | net/url_request/url_request_test_util.h | 2 |
5 files changed, 12 insertions, 20 deletions
diff --git a/net/base/network_delegate.cc b/net/base/network_delegate.cc index bb176c1..3062c7b 100644 --- a/net/base/network_delegate.cc +++ b/net/base/network_delegate.cc @@ -46,11 +46,10 @@ void NetworkDelegate::NotifyBeforeRedirect(URLRequest* request, OnBeforeRedirect(request, new_location); } - -void NetworkDelegate::NotifyReadCompleted(URLRequest* request, int bytes_read) { +void NetworkDelegate::NotifyCompleted(URLRequest* request) { DCHECK(CalledOnValidThread()); DCHECK(request); - OnReadCompleted(request, bytes_read); + OnCompleted(request); } void NetworkDelegate::NotifyURLRequestDestroyed(URLRequest* request) { diff --git a/net/base/network_delegate.h b/net/base/network_delegate.h index b642282..86949a8 100644 --- a/net/base/network_delegate.h +++ b/net/base/network_delegate.h @@ -46,7 +46,7 @@ class NetworkDelegate : public base::NonThreadSafe { void NotifyBeforeRedirect(URLRequest* request, const GURL& new_location); void NotifyResponseStarted(URLRequest* request); - void NotifyReadCompleted(URLRequest* request, int bytes_read); + void NotifyCompleted(URLRequest* request); void NotifyURLRequestDestroyed(URLRequest* request); // Returns a URLRequestJob that will be used to handle the request if @@ -91,8 +91,8 @@ class NetworkDelegate : public base::NonThreadSafe { // This corresponds to URLRequestDelegate::OnResponseStarted. virtual void OnResponseStarted(URLRequest* request) = 0; - // This corresponds to URLRequestDelegate::OnReadCompleted. - virtual void OnReadCompleted(URLRequest* request, int bytes_read) = 0; + // Indicates that the URL request has been completed or failed. + virtual void OnCompleted(URLRequest* request) = 0; // 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 diff --git a/net/url_request/url_request_job.cc b/net/url_request/url_request_job.cc index 4306167..3073414 100644 --- a/net/url_request/url_request_job.cc +++ b/net/url_request/url_request_job.cc @@ -321,18 +321,10 @@ void URLRequestJob::NotifyReadComplete(int bytes_read) { int filter_bytes_read = 0; if (ReadFilteredData(&filter_bytes_read)) { postfilter_bytes_read_ += filter_bytes_read; - if (request_->context() && request_->context()->network_delegate()) { - request_->context()->network_delegate()->NotifyReadCompleted( - request_, filter_bytes_read); - } request_->delegate()->OnReadCompleted(request_, filter_bytes_read); } } else { postfilter_bytes_read_ += bytes_read; - if (request_->context() && request_->context()->network_delegate()) { - request_->context()->network_delegate()->NotifyReadCompleted( - request_, bytes_read); - } request_->delegate()->OnReadCompleted(request_, bytes_read); } } @@ -372,6 +364,11 @@ void URLRequestJob::NotifyDone(const URLRequestStatus &status) { g_url_request_job_tracker.OnJobDone(this, status); + if (request_ && request_->context() && + request_->context()->network_delegate()) { + request_->context()->network_delegate()->NotifyCompleted(request_); + } + // Complete this notification later. This prevents us from re-entering the // delegate if we're done because of a synchronous call. MessageLoop::current()->PostTask( @@ -388,9 +385,6 @@ void URLRequestJob::CompleteNotifyDone() { // OnResponseStarted yet. if (has_handled_response_) { // We signal the error by calling OnReadComplete with a bytes_read of -1. - if (request_->context() && request_->context()->network_delegate()) - request_->context()->network_delegate()->NotifyReadCompleted( - request_, -1); request_->delegate()->OnReadCompleted(request_, -1); } else { has_handled_response_ = true; diff --git a/net/url_request/url_request_test_util.cc b/net/url_request/url_request_test_util.cc index 4a27af1..f2a7b93 100644 --- a/net/url_request/url_request_test_util.cc +++ b/net/url_request/url_request_test_util.cc @@ -287,8 +287,7 @@ void TestNetworkDelegate::OnResponseStarted(net::URLRequest* request) { } } -void TestNetworkDelegate::OnReadCompleted(net::URLRequest* request, - int bytes_read) { +void TestNetworkDelegate::OnCompleted(net::URLRequest* request) { if (request->status().status() == net::URLRequestStatus::FAILED) { error_count_++; last_os_error_ = request->status().os_error(); diff --git a/net/url_request/url_request_test_util.h b/net/url_request/url_request_test_util.h index 37a17c6..0778e13 100644 --- a/net/url_request/url_request_test_util.h +++ b/net/url_request/url_request_test_util.h @@ -210,7 +210,7 @@ class TestNetworkDelegate : public net::NetworkDelegate { virtual void OnBeforeRedirect(net::URLRequest* request, const GURL& new_location); virtual void OnResponseStarted(net::URLRequest* request); - virtual void OnReadCompleted(net::URLRequest* request, int bytes_read); + virtual void OnCompleted(net::URLRequest* request); virtual void OnURLRequestDestroyed(net::URLRequest* request); virtual net::URLRequestJob* OnMaybeCreateURLRequestJob( net::URLRequest* request); |