Index: extensions/browser/api/web_request/web_request_api.cc |
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc |
index dbfea31b3dffd7ed1692a044aa908b2c61668001..0967315916de7b04a33d6f848c02b0527d320dd8 100644 |
--- a/extensions/browser/api/web_request/web_request_api.cc |
+++ b/extensions/browser/api/web_request/web_request_api.cc |
@@ -869,12 +869,15 @@ void ExtensionWebRequestEventRouter::OnBeforeRedirect( |
void ExtensionWebRequestEventRouter::OnResponseStarted( |
void* browser_context, |
const InfoMap* extension_info_map, |
- net::URLRequest* request) { |
+ net::URLRequest* request, |
+ int net_error) { |
+ DCHECK_NE(net::ERR_IO_PENDING, net_error); |
+ |
if (ShouldHideEvent(browser_context, extension_info_map, request)) |
return; |
// OnResponseStarted is even triggered, when the request was cancelled. |
- if (request->status().status() != net::URLRequestStatus::SUCCESS) |
+ if (net_error != net::OK) |
return; |
int extra_info_spec = 0; |
@@ -892,10 +895,21 @@ void ExtensionWebRequestEventRouter::OnResponseStarted( |
DispatchEvent(browser_context, request, listeners, std::move(event_details)); |
} |
-void ExtensionWebRequestEventRouter::OnCompleted( |
+// Deprecated. |
+// TODO(maksims): Remove this. |
+void ExtensionWebRequestEventRouter::OnResponseStarted( |
void* browser_context, |
const InfoMap* extension_info_map, |
net::URLRequest* request) { |
+ OnResponseStarted(browser_context, extension_info_map, request, |
+ request->status().error()); |
+} |
+ |
+void ExtensionWebRequestEventRouter::OnCompleted( |
+ void* browser_context, |
+ const InfoMap* extension_info_map, |
+ net::URLRequest* request, |
+ int net_error) { |
// We hide events from the system context as well as sensitive requests. |
// However, if the request first became sensitive after redirecting we have |
// already signaled it and thus we have to signal the end of it. This is |
@@ -909,7 +923,7 @@ void ExtensionWebRequestEventRouter::OnCompleted( |
request_time_tracker_->LogRequestEndTime(request->identifier(), |
base::Time::Now()); |
- DCHECK(request->status().status() == net::URLRequestStatus::SUCCESS); |
+ DCHECK_EQ(net::OK, net_error); |
DCHECK(!GetAndSetSignaled(request->identifier(), kOnCompleted)); |
@@ -930,11 +944,22 @@ void ExtensionWebRequestEventRouter::OnCompleted( |
DispatchEvent(browser_context, request, listeners, std::move(event_details)); |
} |
+// Deprecated. |
+// TODO(maksims): Remove this. |
+void ExtensionWebRequestEventRouter::OnCompleted( |
+ void* browser_context, |
+ const InfoMap* extension_info_map, |
+ net::URLRequest* request) { |
+ OnCompleted(browser_context, extension_info_map, request, |
+ request->status().error()); |
+} |
+ |
void ExtensionWebRequestEventRouter::OnErrorOccurred( |
void* browser_context, |
const InfoMap* extension_info_map, |
net::URLRequest* request, |
- bool started) { |
+ bool started, |
+ int net_error) { |
// We hide events from the system context as well as sensitive requests. |
// However, if the request first became sensitive after redirecting we have |
// already signaled it and thus we have to signal the end of it. This is |
@@ -948,8 +973,8 @@ void ExtensionWebRequestEventRouter::OnErrorOccurred( |
request_time_tracker_->LogRequestEndTime(request->identifier(), |
base::Time::Now()); |
- DCHECK(request->status().status() == net::URLRequestStatus::FAILED || |
- request->status().status() == net::URLRequestStatus::CANCELED); |
+ DCHECK_NE(net::OK, net_error); |
+ DCHECK_NE(net::ERR_IO_PENDING, net_error); |
DCHECK(!GetAndSetSignaled(request->identifier(), kOnErrorOccurred)); |
@@ -968,12 +993,20 @@ void ExtensionWebRequestEventRouter::OnErrorOccurred( |
event_details->SetResponseSource(request); |
else |
event_details->SetBoolean(keys::kFromCache, request->was_cached()); |
- event_details->SetString(keys::kErrorKey, |
- net::ErrorToString(request->status().error())); |
+ event_details->SetString(keys::kErrorKey, net::ErrorToString(net_error)); |
DispatchEvent(browser_context, request, listeners, std::move(event_details)); |
} |
+void ExtensionWebRequestEventRouter::OnErrorOccurred( |
+ void* browser_context, |
+ const InfoMap* extension_info_map, |
+ net::URLRequest* request, |
+ bool started) { |
+ OnErrorOccurred(browser_context, extension_info_map, request, started, |
+ request->status().error()); |
+} |
+ |
void ExtensionWebRequestEventRouter::OnURLRequestDestroyed( |
void* browser_context, |
const net::URLRequest* request) { |