Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 899dd99924a82b239242807fe962e5e526dcb294
      
https://github.com/WebKit/WebKit/commit/899dd99924a82b239242807fe962e5e526dcb294
  Author: Brady Eidson <[email protected]>
  Date:   2026-07-02 (Thu, 02 Jul 2026)

  Changed paths:
    M Source/WebCore/dom/messageports/MessagePortChannel.h
    M Source/WebCore/dom/messageports/MessagePortChannelRegistry.cpp
    M Source/WebCore/dom/messageports/MessagePortChannelRegistry.h
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp
    M 
Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp
    M Tools/TestWebKitAPI/Resources/cocoa/MessagePortSecurity.mm

  Log Message:
  -----------
  Guard against MessagePort confusion in the Network Process
rdar://175679886

Reviewed by Alex Christensen.

The Networking process is in charge of transferring message port ownership 
between web processes,
as well as sending/fetching messages for web processes.

This patch teaches it to keep track of web ports are being transferred to and 
from, which enables
much more thorough message checking of message port operations based on where 
they currently belong.

Covered by new API tests.

* Source/WebCore/dom/messageports/MessagePortChannel.h:
* Source/WebCore/dom/messageports/MessagePortChannelRegistry.cpp:
(WebCore::MessagePortChannelRegistry::messagePortChannelDestroyed):
(WebCore::MessagePortChannelRegistry::recordPendingTransferOrigin):
(WebCore::MessagePortChannelRegistry::claimPendingTransferOrigin):
(WebCore::MessagePortChannelRegistry::recordPendingTransferDestination):
(WebCore::MessagePortChannelRegistry::claimPendingTransferDestination):
* Source/WebCore/dom/messageports/MessagePortChannelRegistry.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createNewMessagePortChannel):
(WebKit::NetworkConnectionToWebProcess::entangleLocalPortInThisProcessToRemote):
(WebKit::NetworkConnectionToWebProcess::messagePortDisentangled):
(WebKit::NetworkConnectionToWebProcess::messagePortClosed):
(WebKit::NetworkConnectionToWebProcess::takeAllMessagesForPort):
(WebKit::NetworkConnectionToWebProcess::postMessageToRemote):
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
* 
Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp:
(WebKit::WebSharedWorkerServerToContextConnection::postConnectEvent):
* Source/WebKit/WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:
(WebKit::WebMessagePortChannelProvider::messagePortClosed):
* Tools/TestWebKitAPI/Resources/cocoa/MessagePortSecurity.mm:
((MessagePortSecurity, 
CrossProcessForcedCloseViaUnauthenticatedMessagePortIdentifier)):
((MessagePortSecurity, 
CrossProcessForcedDisentangleViaUnauthenticatedMessagePortIdentifier)):
((MessagePortSecurity, 
CrossProcessForcedEntangleViaUnauthenticatedMessagePortIdentifier)):
((MessagePortSecurity, CrossProcessChannelCreationWithForgedProcessIdentifier)):

Canonical link: https://commits.webkit.org/316423@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to