Crash in AXIsolatedObject destruction.
authorandresg_22@apple.com <andresg_22@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 27 Jan 2020 21:31:01 +0000 (21:31 +0000)
committerandresg_22@apple.com <andresg_22@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 27 Jan 2020 21:31:01 +0000 (21:31 +0000)
commit43b7b928fbada0991f55f68213d214c593fa6780
treeea7b0c0e8ef9a94431302d1b1d309c1456af70d7
parent1f18abbd9d3a7b3bb091ba475a034f8544b414d7
Crash in AXIsolatedObject destruction.
https://bugs.webkit.org/show_bug.cgi?id=206828

Reviewed by Chris Fleizach.

- The previous AXCoreObject::detach method became detachRemoteParts,
since this method detaches all references to and from other objects.
- The new AXCoreObject::detach method performs three distinctive
operations:
1. Detaches the platform wrapper.
2. Detaches all remote references to and from other objects.
3. Sets the object ID to InvalidAXID.
- The detachPlatformWrapper method allows for platform-specific
customizations.
- Added accessibility/isolatedtree/mac/AXIsolatedobject.mm.

* PlatformMac.cmake:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::remove):
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::detachRemoteParts):
(WebCore::AccessibilityNodeObject::detach): Became detachRemoteParts.
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::detachRemoteParts):
(WebCore::AccessibilityObject::detach): Became detachRemoteParts.
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::detachWrapper):
(WebCore::AXCoreObject::detach):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::detachRemoteParts):
(WebCore::AccessibilityRenderObject::detach): Became detachRemoteParts.
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::detachRemoteParts):
(WebCore::AccessibilityScrollView::detach): Became detachRemoteParts.
* accessibility/AccessibilityScrollView.h:
* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::detachPlatformWrapper):
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::detachWrapper): Deleted, no longer used in COCOA platforms.
* accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::AccessibilityObject::detachPlatformWrapper):
* accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::detachRemoteParts):
(WebCore::AXIsolatedObject::detach): Became detachRemoteParts.
(WebCore::AXIsolatedObject::disconnect): Replaced with AXCoreObject::detach.
* accessibility/isolatedtree/AXIsolatedObject.h:
* accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::applyPendingChanges):
* accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:
(WebCore::AXIsolatedObject::detachPlatformWrapper):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::detachWrapper): Deleted, no longer used in COCOA platforms.
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::detachPlatformWrapper):
* accessibility/win/AccessibilityObjectWin.cpp:
(WebCore::AccessibilityObject::detachPlatformWrapper):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
25 files changed:
Source/WebCore/ChangeLog
Source/WebCore/PlatformMac.cmake
Source/WebCore/SourcesCocoa.txt
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/accessibility/AXObjectCache.cpp
Source/WebCore/accessibility/AXObjectCache.h
Source/WebCore/accessibility/AccessibilityNodeObject.cpp
Source/WebCore/accessibility/AccessibilityNodeObject.h
Source/WebCore/accessibility/AccessibilityObject.cpp
Source/WebCore/accessibility/AccessibilityObject.h
Source/WebCore/accessibility/AccessibilityObjectInterface.h
Source/WebCore/accessibility/AccessibilityRenderObject.cpp
Source/WebCore/accessibility/AccessibilityRenderObject.h
Source/WebCore/accessibility/AccessibilityScrollView.cpp
Source/WebCore/accessibility/AccessibilityScrollView.h
Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp
Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm
Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm
Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm [new file with mode: 0644]
Source/WebCore/accessibility/mac/AXObjectCacheMac.mm
Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
Source/WebCore/accessibility/win/AccessibilityObjectWin.cpp