Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a6b2961021cdb76fc1299d403e7088155110b114
https://github.com/WebKit/WebKit/commit/a6b2961021cdb76fc1299d403e7088155110b114
Author: Pouneh Bahrami <[email protected]>
Date: 2026-06-25 (Thu, 25 Jun 2026)
Changed paths:
A
LayoutTests/http/tests/websocket/tests/hybi/resources/websocket-blocked-sending-cookie-as-third-party-worker.js
A
LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-from-worker-expected.txt
A
LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-from-worker.html
M LayoutTests/ipc/create-socket-channel-invalid-url-crash.html
M Source/WebCore/Headers.cmake
A Source/WebCore/Modules/websockets/IsInitiatedByDedicatedWorker.h
M Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp
M Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.h
M Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp
M Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.h
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/loader/EmptyClients.cpp
M Source/WebCore/page/SocketProvider.h
M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
M Source/WebKit/NetworkProcess/NetworkSession.cpp
M Source/WebKit/NetworkProcess/NetworkSession.h
M Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp
M Source/WebKit/NetworkProcess/NetworkSocketChannel.h
M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h
M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
M Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h
M Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm
M Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp
M Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.h
M Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp
M Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h
M Source/WebKit/Shared/WebCoreArgumentCodersPlatform.serialization.in
M Source/WebKit/WebProcess/Network/WebSocketChannel.cpp
M Source/WebKit/WebProcess/Network/WebSocketChannel.h
M Source/WebKit/WebProcess/Network/WebSocketProvider.cpp
M Source/WebKit/WebProcess/Network/WebSocketProvider.h
M Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.cpp
M Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.h
Log Message:
-----------
Block third-party cookies for DedicatedWorker WebSocket connections.
https://bugs.webkit.org/show_bug.cgi?id=316361
rdar://176030553
Reviewed by Matthew Finkel.
DedicatedWorker WebSocket connections were not being subjected to ITP
third-party cookie blocking, unlike DedicatedWorker fetch requests which
already carried isInitiatedByDedicatedWorker through
NetworkResourceLoadParameters.
This patch threads a new isInitiatedByDedicatedWorker boolean from the worker
thread through WorkerThreadableWebSocketChannel::Bridge::initialize() where
it is derived via is<DedicatedWorkerGlobalScope>(scope) into the
WebSocketTaskCocoa
constructor, where it replaces the previous shouldBlockCookies() call with
thirdPartyCookieBlockingDecisionForRequest(..., isInitiatedByDedicatedWorker)
so that the same ITP cookie-blocking policy applied to worker fetch requests is
now also applied to worker WebSocket handshakes.
Test:
http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-from-worker.html
*
LayoutTests/http/tests/websocket/tests/hybi/resources/websocket-blocked-sending-cookie-as-third-party-worker.js:
Added.
(ws.onopen):
(ws.onerror):
*
LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-from-worker-expected.txt:
Added.
*
LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-from-worker.html:
Added.
* LayoutTests/ipc/create-socket-channel-invalid-url-crash.html:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Modules/websockets/IsInitiatedByDedicatedWorker.h: Copied from
Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.h.
* Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:
(WebCore::ThreadableWebSocketChannel::create):
* Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.h:
* Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
(WebCore::WorkerThreadableWebSocketChannel::Peer::create):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
* Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.h:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/loader/EmptyClients.cpp:
* Source/WebCore/page/SocketProvider.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::createWebSocketTask):
* Source/WebKit/NetworkProcess/NetworkSession.h:
* Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
* Source/WebKit/NetworkProcess/NetworkSocketChannel.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::createWebSocketTask):
* Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
(WebKit::WebSocketTask::create):
(WebKit::WebSocketTask::WebSocketTask):
* Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp:
(WebKit::NetworkSessionCurl::createWebSocketTask):
* Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.h:
* Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::createWebSocketTask):
* Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h:
* Source/WebKit/Shared/WebCoreArgumentCodersPlatform.serialization.in:
* Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::create):
(WebKit::WebSocketChannel::WebSocketChannel):
(WebKit::WebSocketChannel::connect):
* Source/WebKit/WebProcess/Network/WebSocketChannel.h:
* Source/WebKit/WebProcess/Network/WebSocketProvider.cpp:
(WebKit::WebSocketProvider::createWebSocketChannel):
* Source/WebKit/WebProcess/Network/WebSocketProvider.h:
* Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.cpp:
(LegacySocketProvider::createWebSocketChannel):
* Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.h:
Canonical link: https://commits.webkit.org/315848@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications