Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: extensions/browser/api/web_request/web_request_api.cc

Issue 2449913002: Support WebSocket in WebRequest API. (Closed)
Patch Set: Refactor tests; add test; update documentation. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698