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

Reply via email to