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