[webkit-changes] [WebKit/WebKit] 92e91d: Cherry-pick 9cdd3b498e3e. rdar://problem/104018097

Tyler Wilcock noreply at github.com
Tue Jan 10 11:10:25 PST 2023


  Branch: refs/heads/safari-7615.1.18-branch
  Home:   https://github.com/WebKit/WebKit
  Commit: 92e91dbf3d57bbce3ce61259be28b03367f70113
      https://github.com/WebKit/WebKit/commit/92e91dbf3d57bbce3ce61259be28b03367f70113
  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:
  -----------
  Cherry-pick 9cdd3b498e3e. rdar://problem/104018097

    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

Canonical link: https://commits.webkit.org/258608.9@safari-7615.1.18-branch




More information about the webkit-changes mailing list