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

Unified Diff: net/http/http_stream_factory_impl_job.cc

Issue 2642723008: Allow proxying plaintext websockets over http/2 proxy (Closed)
Patch Set: Fix codestyle Created 3 years, 11 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
« no previous file with comments | « net/http/http_network_transaction_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_stream_factory_impl_job.cc
diff --git a/net/http/http_stream_factory_impl_job.cc b/net/http/http_stream_factory_impl_job.cc
index 2cd3bcbe0b6c7cf73b0129896405537a9a92cfcb..cb6496e4d16d13a48a7b7224a6b6182db0e0ea24 100644
--- a/net/http/http_stream_factory_impl_job.cc
+++ b/net/http/http_stream_factory_impl_job.cc
@@ -1164,8 +1164,16 @@ int HttpStreamFactoryImpl::Job::DoCreateStream() {
if (connection_->socket() && !connection_->is_reused())
SetSocketMotivation();
- if (!using_spdy_) {
+ if (!using_spdy_)
DCHECK(!IsSpdyAlternative());
+
+ // While websockets over HTTP/2 are not supported, it is still valid to have
+ // websockets tunneled through HTTP/2 proxy (via CONNECT). If websockets are
+ // secure (wss://), ProxyClientSocket with established tunnel is wrapped with
+ // yet another socket (SSLClientSocket), and |using_spdy_| will be false, but
+ // for ws: scheme, ProxyClientSocket is not wrapped into anything.
+ if (!using_spdy_ ||
+ (using_spdy_ && proxy_info_.is_https() && delegate_->for_websockets())) {
// We may get ftp scheme when fetching ftp resources through proxy.
bool using_proxy = (proxy_info_.is_http() || proxy_info_.is_https()) &&
(request_info_.url.SchemeIs(url::kHttpScheme) ||
« no previous file with comments | « net/http/http_network_transaction_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698