[webkit-changes] [WebKit/WebKit] 9cdd3b: AX: With ITM enabled, reloading the page causes a ...
Tyler Wilcock
noreply at github.com
Tue Jan 10 10:40:56 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9cdd3b498e3e9cebc163b363f5f7c6d2354e5ce3
https://github.com/WebKit/WebKit/commit/9cdd3b498e3e9cebc163b363f5f7c6d2354e5ce3
Author: Tyler Wilcock <tyler_w at apple.com>
Date: 2023-01-10 (Tue, 10 Jan 2023)
Changed paths:
A LayoutTests/accessibility/page-reload-deadlock-expected.txt
A LayoutTests/accessibility/page-reload-deadlock.html
A LayoutTests/platform/glib/accessibility/page-reload-deadlock-expected.txt
M LayoutTests/platform/ios/TestExpectations
A LayoutTests/platform/ios/accessibility/page-reload-deadlock-expected.txt
M LayoutTests/platform/mac-wk1/TestExpectations
M LayoutTests/platform/win/TestExpectations
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
Log Message:
-----------
AX: With ITM enabled, reloading the page causes a deadlock
https://bugs.webkit.org/show_bug.cgi?id=250346
rdar://104018097
Reviewed by Chris Fleizach and Andres Gonzalez.
This was caused by:
https://bugs.webkit.org/show_bug.cgi?id=249480 (AX: Add AXID identification to both AXObjectCache and AXIsolatedTree so that instances of these classes can be retrieved by ID.)
The bug is that when `AXIsolatedTree::m_queuedForDestruction` is true, `AXIsolatedTree::applyPendingChanges`
takes `s_storeLock` and then calls `AXIsolatedTree::remove(treeID())`, which also takes `s_storeLock`, causing
a re-entrant deadlock on the secondary AX thread.
This patch fixes this by removing the acquisition of `s_storeLock` in `AXIsolatedTree::applyPendingChanges`
as it was unnecessary.
* LayoutTests/accessibility/page-reload-deadlock-expected.txt: Added.
* LayoutTests/accessibility/page-reload-deadlock.html: Added.
* LayoutTests/platform/ios/TestExpectations: Enable new test.
* LayoutTests/platform/mac-wk1/TestExpectations: Skip new test.
* LayoutTests/platform/win/TestExpectations: Skip new test.
* LayoutTests/platform/glib/accessibility/page-reload-deadlock-expected.txt: Added.
* LayoutTests/platform/ios/accessibility/page-reload-deadlock-expected.txt: Added.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::applyPendingChanges):
Canonical link: https://commits.webkit.org/258735@main
More information about the webkit-changes
mailing list