⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 269833 in webkit


Ignore:
Timestamp:
Nov 15, 2020, 1:03:32 PM (6 years ago)
Author:
Andres Gonzalez
Message:

Fix for infinite recursion crash in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=218961

Reviewed by Chris Fleizach.

Covered by existing tests.

[WebAccessibilityObjectWrapper attachmentView] can cause the
initialization of a new AXIsolatedObject which in turn can invoke
indirectly AccessibilityObject::accessibilityIgnoreAttachment, thus
creating an infinite recursion. This change avoids this problem and
makes this method more efficient even in those cases where there was no
infinite recursion.

  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::accessibilityIgnoreAttachment const):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r269830 r269833  
     12020-11-15  Andres Gonzalez  <andresg_22@apple.com>
     2
     3        Fix for infinite recursion crash in isolated tree mode.
     4        https://bugs.webkit.org/show_bug.cgi?id=218961
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Covered by existing tests.
     9
     10        [WebAccessibilityObjectWrapper attachmentView] can cause the
     11        initialization of a new AXIsolatedObject which in turn can invoke
     12        indirectly AccessibilityObject::accessibilityIgnoreAttachment, thus
     13        creating an infinite recursion. This change avoids this problem and
     14        makes this method more efficient even in those cases where there was no
     15        infinite recursion.
     16
     17        * accessibility/mac/AccessibilityObjectMac.mm:
     18        (WebCore::AccessibilityObject::accessibilityIgnoreAttachment const):
     19
    1202020-11-15  Youenn Fablet  <youenn@apple.com>
    221
  • trunk/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm

    r268610 r269833  
    106106
    107107    ALLOW_DEPRECATED_DECLARATIONS_BEGIN
    108     if ([wrapper() attachmentView])
    109         return [[wrapper() attachmentView] accessibilityIsIgnored];
     108    id attachmentView = widget ? NSAccessibilityUnignoredDescendant(widget->platformWidget()) : nil;
     109    if (attachmentView)
     110        return [attachmentView accessibilityIsIgnored];
    110111    ALLOW_DEPRECATED_DECLARATIONS_END
    111112
Note: See TracChangeset for help on using the changeset viewer.