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

  Changed paths:
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp
    M Tools/TestWebKitAPI/glib/TestExpectations.json

  Log Message:
  -----------
  REGRESSION(316670@main): [iOS macOS release] 
fast/css/getComputedStyle-font-variant-shorthand-crash.html is flaky crash
https://bugs.webkit.org/show_bug.cgi?id=318910
rdar://181743226

Reviewed by Simon Fraser.

316670@main moved the instantiation of a 
CheckedPtr<WebFullScreenManagerProxyClient> to before an async call
to WebPageProxy::nextPresentationUpdate, and the CheckedPtr is used after the 
call to nextPresentationUpdate.
If WebPageProxy::close is called before the next presentation update completes, 
then
WebFullScreenManagerProxy::detachFromClient is called before 
DrawingAreaProxy::stopReceivingMessages
completes everything waiting for a presentation update, which destroys the 
WebFullScreenManagerProxyClient
with an outstanding non-null CheckedPtr to it, which causes a crash.  This 
happens sometimes when running
whatever test WebKitTestRunner runs after 
fast/css/fullscreen-style-sharing-crash.html, causing the next test
to crash.

The fix is to only make a CheckedPtr synchronously immediately before it is 
going to be used, and destroy
the CheckedPtr immediately synchronously after it is done being used to not 
give any other async task a chance
to destroy the client with an outstanding CheckedPtr pointing to it.  Rather 
than setting client to nullptr,
I use an additional scope to make it more clear that the scope of the 
CheckedPtr is important and to make it
harder for future changes to re-introduce code paths that don't null out the 
CheckedPtr.

WebFullScreenManagerProxy::enterFullScreen had the same issue before 
316670@main, so the test run after
fast/css/fullscreen-style-sharing-crash.html was already a flaky crash.  This 
should fix all such crashes,
new and old.

* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::enterFullScreen):
(WebKit::WebFullScreenManagerProxy::exitFullScreen):
(WebKit::WebFullScreenManagerProxy::convertFromRootViewToScreenCoordinates):
(WebKit::WebFullScreenManagerProxy::beganEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::beganExitFullScreen):
* Tools/TestWebKitAPI/glib/TestExpectations.json:

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



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

Reply via email to