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 ebe0c124f60d94d265035f5025fc78b9bed2f52f..ec5ceb409b6328cf9c3b90f731f9c5587ecd2f33 100644 |
--- a/extensions/browser/api/web_request/web_request_api.cc |
+++ b/extensions/browser/api/web_request/web_request_api.cc |
@@ -491,10 +491,10 @@ bool ExtensionWebRequestEventRouter::RequestFilter::InitFromValue( |
return false; |
for (size_t i = 0; i < urls_value->GetSize(); ++i) { |
std::string url; |
- URLPattern pattern( |
- URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS | |
- URLPattern::SCHEME_FTP | URLPattern::SCHEME_FILE | |
- URLPattern::SCHEME_EXTENSION); |
+ URLPattern pattern(URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS | |
+ URLPattern::SCHEME_FTP | URLPattern::SCHEME_FILE | |
+ URLPattern::SCHEME_EXTENSION | |
+ URLPattern::SCHEME_WS | URLPattern::SCHEME_WSS); |
if (!urls_value->GetString(i, &url) || |
pattern.Parse(url) != URLPattern::PARSE_SUCCESS) { |
*error = ErrorUtils::FormatErrorMessage( |
@@ -940,7 +940,7 @@ void ExtensionWebRequestEventRouter::OnCompleted( |
request_time_tracker_->LogRequestEndTime(request->identifier(), |
base::Time::Now()); |
- DCHECK_EQ(net::OK, net_error); |
+ DCHECK(net_error == net::OK || net_error == net::ERR_WS_UPGRADE); |
DCHECK(!GetAndSetSignaled(request->identifier(), kOnCompleted)); |
@@ -978,6 +978,11 @@ void ExtensionWebRequestEventRouter::OnErrorOccurred( |
net::URLRequest* request, |
bool started, |
int net_error) { |
+ if (net_error == net::ERR_WS_UPGRADE) { |
+ OnCompleted(browser_context, extension_info_map, request, net_error); |
Devlin
2017/02/14 01:21:38
Document why we do this?
pkalinnikov
2017/02/14 13:49:51
Done.
|
+ return; |
+ } |
+ |
ExtensionsBrowserClient* client = ExtensionsBrowserClient::Get(); |
if (!client) { |
// |client| could be NULL during shutdown. |