Populate NetworkIsolationKey for websockets
Populate NIK for websocket requests to provide a TopFrameOrigin
for cookie access checks.
Bug: 989067
Change-Id: Ic3bceee832a33abea84d2f0fc5ab0291c5f30336
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1859986
Reviewed-by: Greg Kerr <[email protected]>
Reviewed-by: Alex Moshchuk <[email protected]>
Reviewed-by: Yutaka Hirano <[email protected]>
Reviewed-by: Maksim Orlovich <[email protected]>
Reviewed-by: Christian Dullweber <[email protected]>
Commit-Queue: Ehimare Okoyomon <[email protected]>
Cr-Commit-Position: refs/heads/master@{#708586}
diff --git a/net/websockets/websocket_channel.cc b/net/websockets/websocket_channel.cc
index a9be7da5..c95e822 100644
--- a/net/websockets/websocket_channel.cc
+++ b/net/websockets/websocket_channel.cc
@@ -265,10 +265,12 @@
const std::vector<std::string>& requested_subprotocols,
const url::Origin& origin,
const GURL& site_for_cookies,
+ const net::NetworkIsolationKey& network_isolation_key,
const HttpRequestHeaders& additional_headers) {
SendAddChannelRequestWithSuppliedCallback(
socket_url, requested_subprotocols, origin, site_for_cookies,
- additional_headers, base::Bind(&WebSocketStream::CreateAndConnectStream));
+ network_isolation_key, additional_headers,
+ base::Bind(&WebSocketStream::CreateAndConnectStream));
}
void WebSocketChannel::SetState(State new_state) {
@@ -407,11 +409,12 @@
const std::vector<std::string>& requested_subprotocols,
const url::Origin& origin,
const GURL& site_for_cookies,
+ const net::NetworkIsolationKey& network_isolation_key,
const HttpRequestHeaders& additional_headers,
const WebSocketStreamRequestCreationCallback& callback) {
- SendAddChannelRequestWithSuppliedCallback(socket_url, requested_subprotocols,
- origin, site_for_cookies,
- additional_headers, callback);
+ SendAddChannelRequestWithSuppliedCallback(
+ socket_url, requested_subprotocols, origin, site_for_cookies,
+ network_isolation_key, additional_headers, callback);
}
void WebSocketChannel::SetClosingHandshakeTimeoutForTesting(
@@ -429,6 +432,7 @@
const std::vector<std::string>& requested_subprotocols,
const url::Origin& origin,
const GURL& site_for_cookies,
+ const net::NetworkIsolationKey& network_isolation_key,
const HttpRequestHeaders& additional_headers,
const WebSocketStreamRequestCreationCallback& callback) {
DCHECK_EQ(FRESHLY_CONSTRUCTED, state_);
@@ -441,10 +445,10 @@
}
socket_url_ = socket_url;
auto connect_delegate = std::make_unique<ConnectDelegate>(this);
- stream_request_ =
- callback.Run(socket_url_, requested_subprotocols, origin,
- site_for_cookies, additional_headers, url_request_context_,
- NetLogWithSource(), std::move(connect_delegate));
+ stream_request_ = callback.Run(
+ socket_url_, requested_subprotocols, origin, site_for_cookies,
+ network_isolation_key, additional_headers, url_request_context_,
+ NetLogWithSource(), std::move(connect_delegate));
SetState(CONNECTING);
}