| 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);
|
| + return;
|
| + }
|
| +
|
| ExtensionsBrowserClient* client = ExtensionsBrowserClient::Get();
|
| if (!client) {
|
| // |client| could be NULL during shutdown.
|
|
|