Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d9fc643371912867bb785334877cd0a836ef67cd
      
https://github.com/WebKit/WebKit/commit/d9fc643371912867bb785334877cd0a836ef67cd
  Author: Alex Christensen <[email protected]>
  Date:   2026-07-13 (Mon, 13 Jul 2026)

  Changed paths:
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources-output.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Scripts/webkit/model.py
    M Source/WebKit/Scripts/webkit/parser.py
    M Source/WebKit/Sources.txt
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in
    M Source/WebKit/UIProcess/WebFrameProxy.cpp
   
M
Source/WebKit/UIProcess/WebFrameProxy.h
    A Source/WebKit/UIProcess/WebFrameProxyFromNetworkProcess.messages.in

  Log Message:
  -----------
  REGRESSION(316854@main): [macOS Debug] ASSERTION FAILED: !m_waitingForMessage 
in 
imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html
https://bugs.webkit.org/show_bug.cgi?id=319273
rdar://182115695

Reviewed by Chris Dumez.

We sometimes hit Error::MultipleWaitingClients because 
WebFrameProxy::waitForCertificateInfoFromNetworkProcess
calls 
waitForAndDispatchImmediately<Messages::NetworkProcessProxy::ReceivedMainResourceResponseWithCertificateInfo>
which re-enters WebFrameProxy::waitForCertificateInfoFromNetworkProcess and 
then re-calls waitForAndDispatchImmediately
on the same stack frame if it fails more than once.

The solution is basically reverting the original solution to rdar://177670634 
originally
landed
at
https://flagged.apple.com:443/proxy?t2=Dt3G8E9tV6&o=aHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvMzA1NDEzLjkzNkBzYWZhcmktNzYyNC4zLjQtYnJhbmNo&emid=a97bf721-4b28-463a-a05b-8f43c3948bf8&c=11
 and doing it a better way, similar to my PR proposal in
that radar, but adding a new message receiver to eliminate the need for 
ExceptionForDispatchedFrom.  I do this
by adding a new message receiver WebFrameProxyFromNetworkProcess and a new 
attribute ReceiverName to have it
send messages to WebFrameProxy instead of looking for a non-existing class 
WebFrameProxyFromNetworkProcess.

* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveMainResourceResponse):
*
Source/WebKit/Scripts/webkit/messages.py:
(handler_function):
(generate_message_handler):
*
Source/WebKit/Scripts/webkit/model.py:
(MessageReceiver.__init__):
* Source/WebKit/Scripts/webkit/parser.py:
(parse):
* Source/WebKit/Sources.txt:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::dispatchMessage):
(WebKit::NetworkProcessProxy::receivedMainResourceResponseWithCertificateInfo): 
Deleted.
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in:
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::waitForCertificateInfoFromNetworkProcess):
* Source/WebKit/UIProcess/WebFrameProxy.h:
* Source/WebKit/UIProcess/WebFrameProxyFromNetworkProcess.messages.in: Added.

Canonical link: 
https://flagged.apple.com:443/proxy?t2=Dy9Z2D9Nq9&o=aHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvMzE3MDkwQG1haW4=&emid=a97bf721-4b28-463a-a05b-8f43c3948bf8&c=11



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

Reply via email to