summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-10 22:51:40 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-10 22:51:40 +0000
commitc192ea0ece21d496cf0caba87d09993eb1c326ce (patch)
treecf70fe375fef0df4cf98ebce168f569b1ee2ed91 /net
parent15d22afc2e5bb91184b5c1ced33fb79547cd27ef (diff)
downloadchromium_src-c192ea0ece21d496cf0caba87d09993eb1c326ce.zip
chromium_src-c192ea0ece21d496cf0caba87d09993eb1c326ce.tar.gz
chromium_src-c192ea0ece21d496cf0caba87d09993eb1c326ce.tar.bz2
Log cancellation error codes at the URLRequest level to NetLog.
In some cases this may result in redundant logging, but this is needed to log cancellations from third parties. R=eroman@chomium.org BUG=108055 Review URL: https://chromiumcodereview.appspot.com/10689142 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145975 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/base/net_log.cc7
-rw-r--r--net/url_request/url_request.cc7
2 files changed, 12 insertions, 2 deletions
diff --git a/net/base/net_log.cc b/net/base/net_log.cc
index f15ce95..c7b5360 100644
--- a/net/base/net_log.cc
+++ b/net/base/net_log.cc
@@ -359,9 +359,12 @@ void BoundNetLog::EndEvent(
void BoundNetLog::AddEventWithNetErrorCode(NetLog::EventType event_type,
int net_error) const {
- DCHECK_GT(0, net_error);
DCHECK_NE(ERR_IO_PENDING, net_error);
- AddEvent(event_type, NetLog::IntegerCallback("net_error", net_error));
+ if (net_error >= 0) {
+ AddEvent(event_type);
+ } else {
+ AddEvent(event_type, NetLog::IntegerCallback("net_error", net_error));
+ }
}
void BoundNetLog::EndEventWithNetErrorCode(NetLog::EventType event_type,
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
index 51c627a..8b82323 100644
--- a/net/url_request/url_request.cc
+++ b/net/url_request/url_request.cc
@@ -521,6 +521,13 @@ void URLRequest::DoCancel(int error, const SSLInfo& ssl_info) {
status_.set_status(URLRequestStatus::CANCELED);
status_.set_error(error);
response_info_.ssl_info = ssl_info;
+
+ // If the request hasn't already been completed, log a cancellation event.
+ if (!has_notified_completion_) {
+ // Don't log an error code on ERR_ABORTED, since that's redundant.
+ net_log_.AddEventWithNetErrorCode(NetLog::TYPE_CANCELLED,
+ error == ERR_ABORTED ? OK : error);
+ }
}
if (is_pending_ && job_)