diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-01-25 16:25:39 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-01-29 15:43:13 +0000 |
commit | 2b94bfe47ccb6c08047959d1c26e392919550e86 (patch) | |
tree | 4a9cb6fb333ac7e0e5bfbdd3a8faa219880e193d /chromium/net/http/http_proxy_client_socket_wrapper.cc | |
parent | 51f6c2793adab2d864b3d2b360000ef8db1d3e92 (diff) |
BASELINE: Update Chromium to 71.0.3578.140
Change-Id: Ia85516cc06e245e449ca8a6652242b8a1bcace74
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium/net/http/http_proxy_client_socket_wrapper.cc')
-rw-r--r-- | chromium/net/http/http_proxy_client_socket_wrapper.cc | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/chromium/net/http/http_proxy_client_socket_wrapper.cc b/chromium/net/http/http_proxy_client_socket_wrapper.cc index f1cad81680a..b8361830009 100644 --- a/chromium/net/http/http_proxy_client_socket_wrapper.cc +++ b/chromium/net/http/http_proxy_client_socket_wrapper.cc @@ -285,12 +285,25 @@ int64_t HttpProxyClientSocketWrapper::GetTotalReceivedBytes() const { } void HttpProxyClientSocketWrapper::ApplySocketTag(const SocketTag& tag) { - // HttpProxyClientSocketPool only tags once connected, when transport_socket_ - // is set. Socket tagging is not supported with tunneling. Socket tagging is - // also not supported with proxy auth so ApplySocketTag() won't be called with - // a specific (non-default) tag when transport_socket_ is cleared by - // RestartWithAuth(). - if (tunnel_ || !transport_socket_) { + // Applying a socket tag to an HttpProxyClientSocketWrapper is done by simply + // applying the socket tag to the underlying socket. + + // In the case of a connection to the proxy using HTTP/2 or HTTP/3 where the + // underlying socket may multiplex multiple streams, applying this request's + // socket tag to the multiplexed session would incorrectly apply the socket + // tag to all mutliplexed streams. In reality this would hit the CHECK(false) + // in QuicProxyClientSocket::ApplySocketTag() or + // SpdyProxyClientSocket::ApplySocketTag(). Fortunately socket tagging is only + // supported on Android without the data reduction proxy, so only simple HTTP + // proxies are supported, so proxies won't be using HTTP/2 or HTTP/3. Detect + // this case (|ssl_params_| must be set for HTTP/2 and HTTP/3 proxies) and + // enforce that a specific (non-default) tag isn't being applied. + if (ssl_params_ || + // Android also doesn't support proxy auth, so RestartWithAuth() should't + // be called so |transport_socket_| shouldn't be cleared. If + // |transport_socket_| is cleared, enforce that a specific (non-default) + // tag isn't being applied. + !transport_socket_) { CHECK(tag == SocketTag()); } else { transport_socket_->ApplySocketTag(tag); |