summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorbattre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-23 13:28:16 +0000
committerbattre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-23 13:28:16 +0000
commit4894438bb73e0a3c22fec3f36204b1f97b8cb104 (patch)
tree7198dcfb7d931648b77ed64ab8de663223b57d4f /net
parentd347fa255cdc8b7b0893485285d97492ab1a5d07 (diff)
downloadchromium_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.cc5
-rw-r--r--net/base/network_delegate.h6
-rw-r--r--net/url_request/url_request_job.cc16
-rw-r--r--net/url_request/url_request_test_util.cc3
-rw-r--r--net/url_request/url_request_test_util.h2
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);