Index: net/http/http_util_icu.cc |
diff --git a/net/http/http_util_icu.cc b/net/http/http_util_icu.cc |
index 4f38f84d75bac2bc52f005885f454a69ab5b1b2e..6f2af64efc96065ccfdc3cbd43ad7bfd08fe3e63 100644 |
--- a/net/http/http_util_icu.cc |
+++ b/net/http/http_util_icu.cc |
@@ -12,9 +12,14 @@ |
namespace net { |
+static bool SchemeIsWebSocket(const GURL& url) { |
+ return url.SchemeIs("ws") || url.SchemeIs("wss"); |
+} |
+ |
// static |
std::string HttpUtil::PathForRequest(const GURL& url) { |
- DCHECK(url.is_valid() && url.SchemeIsHTTPOrHTTPS()); |
+ DCHECK(url.is_valid() && (url.SchemeIsHTTPOrHTTPS() || |
+ SchemeIsWebSocket(url))); |
if (url.has_query()) |
return url.path() + "?" + url.query(); |
return url.path(); |
@@ -24,7 +29,8 @@ std::string HttpUtil::PathForRequest(const GURL& url) { |
std::string HttpUtil::SpecForRequest(const GURL& url) { |
// We may get ftp scheme when fetching ftp resources through proxy. |
DCHECK(url.is_valid() && (url.SchemeIsHTTPOrHTTPS() || |
- url.SchemeIs("ftp"))); |
+ url.SchemeIs("ftp") || |
+ SchemeIsWebSocket(url))); |
return SimplifyUrlForRequest(url).spec(); |
} |