Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5f293ca29cb7201b048dd7b3f89296b1467c1567
      
https://github.com/WebKit/WebKit/commit/5f293ca29cb7201b048dd7b3f89296b1467c1567
  Author: Tyler Wilcock <[email protected]>
  Date:   2024-11-08 (Fri, 08 Nov 2024)

  Changed paths:
    M Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations
    M Source/WebCore/accessibility/AXCoreObject.h
    M Source/WebCore/accessibility/AXImage.cpp
    M Source/WebCore/accessibility/AXImage.h
    M Source/WebCore/accessibility/AXLogger.cpp
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AXObjectCache.h
    M Source/WebCore/accessibility/AXRemoteFrame.cpp
    M Source/WebCore/accessibility/AXRemoteFrame.h
    M Source/WebCore/accessibility/AXSearchManager.cpp
    M Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp
    M Source/WebCore/accessibility/AccessibilityARIAGridCell.h
    M Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp
    M Source/WebCore/accessibility/AccessibilityARIAGridRow.h
    M Source/WebCore/accessibility/AccessibilityARIATable.cpp
    M Source/WebCore/accessibility/AccessibilityARIATable.h
    M Source/WebCore/accessibility/AccessibilityAttachment.cpp
    M Source/WebCore/accessibility/AccessibilityAttachment.h
    M Source/WebCore/accessibility/AccessibilityImageMapLink.cpp
    M Source/WebCore/accessibility/AccessibilityImageMapLink.h
    M Source/WebCore/accessibility/AccessibilityLabel.cpp
    M Source/WebCore/accessibility/AccessibilityLabel.h
    M Source/WebCore/accessibility/AccessibilityList.cpp
    M Source/WebCore/accessibility/AccessibilityList.h
    M Source/WebCore/accessibility/AccessibilityListBox.cpp
    M Source/WebCore/accessibility/AccessibilityListBox.h
    M Source/WebCore/accessibility/AccessibilityListBoxOption.cpp
    M Source/WebCore/accessibility/AccessibilityListBoxOption.h
    M Source/WebCore/accessibility/AccessibilityMathMLElement.cpp
    M Source/WebCore/accessibility/AccessibilityMathMLElement.h
    M Source/WebCore/accessibility/AccessibilityMediaObject.cpp
    M Source/WebCore/accessibility/AccessibilityMediaObject.h
    M Source/WebCore/accessibility/AccessibilityMenuList.cpp
    M Source/WebCore/accessibility/AccessibilityMenuList.h
    M Source/WebCore/accessibility/AccessibilityMenuListOption.cpp
    M Source/WebCore/accessibility/AccessibilityMenuListOption.h
    M Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp
    M Source/WebCore/accessibility/AccessibilityMenuListPopup.h
    M Source/WebCore/accessibility/AccessibilityMockObject.cpp
    M Source/WebCore/accessibility/AccessibilityMockObject.h
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.h
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp
    M Source/WebCore/accessibility/AccessibilityProgressIndicator.h
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilityRenderObject.h
    M Source/WebCore/accessibility/AccessibilitySVGObject.cpp
    M Source/WebCore/accessibility/AccessibilitySVGObject.h
    M Source/WebCore/accessibility/AccessibilitySVGRoot.cpp
    M Source/WebCore/accessibility/AccessibilitySVGRoot.h
    M Source/WebCore/accessibility/AccessibilityScrollView.cpp
    M Source/WebCore/accessibility/AccessibilityScrollView.h
    M Source/WebCore/accessibility/AccessibilityScrollbar.cpp
    M Source/WebCore/accessibility/AccessibilityScrollbar.h
    M Source/WebCore/accessibility/AccessibilitySlider.cpp
    M Source/WebCore/accessibility/AccessibilitySlider.h
    M Source/WebCore/accessibility/AccessibilitySpinButton.cpp
    M Source/WebCore/accessibility/AccessibilitySpinButton.h
    M Source/WebCore/accessibility/AccessibilityTable.cpp
    M Source/WebCore/accessibility/AccessibilityTable.h
    M Source/WebCore/accessibility/AccessibilityTableCell.cpp
    M Source/WebCore/accessibility/AccessibilityTableCell.h
    M Source/WebCore/accessibility/AccessibilityTableColumn.cpp
    M Source/WebCore/accessibility/AccessibilityTableColumn.h
    M Source/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp
    M Source/WebCore/accessibility/AccessibilityTableHeaderContainer.h
    M Source/WebCore/accessibility/AccessibilityTableRow.cpp
    M Source/WebCore/accessibility/AccessibilityTableRow.h
    M Source/WebCore/accessibility/AccessibilityTree.cpp
    M Source/WebCore/accessibility/AccessibilityTree.h
    M Source/WebCore/accessibility/AccessibilityTreeItem.cpp
    M Source/WebCore/accessibility/AccessibilityTreeItem.h
    M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm
    M Source/WebCore/accessibility/win/AXObjectCacheWin.cpp

  Log Message:
  -----------
  AX: AXCoreObject::m_id should not be optional
https://bugs.webkit.org/show_bug.cgi?id=282788
rdar://problem/139475407

Reviewed by Chris Fleizach.

The only time an AXCoreObject ever has a null m_id is in the short time after 
it's created, and before calling
AXObjectCache::getAXID(), at which point it was set and never made null again. 
With this PR, we assign the ID
in tandem with creating every object. This means we never allow an object to be 
in an invalid state (lacking an ID).
It's also more efficient to assign the ID during construction vs. setting it 
post-construction.

Most importantly, this makes our code way cleaner. Prior to this commit, there 
were hundreds of unchecked dereferences
on our objectID() calls, all of which are removed. This also allows us to 
remove a few runtime if-statements checking
for null AXIDs, which are now impossible with this commit.

* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::AXCoreObject::objectID const):
(WebCore::AXCoreObject::AXCoreObject):
(WebCore::axIDs):
(WebCore::AXCoreObject::setObjectID): Deleted.
* Source/WebCore/accessibility/AXImage.cpp:
(WebCore::AXImage::AXImage):
(WebCore::AXImage::create):
* Source/WebCore/accessibility/AXImage.h:
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
(WebCore::streamAXCoreObject):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::setIsolatedTreeFocusedObject):
(WebCore::AXObjectCache::createObjectFromRenderer):
(WebCore::AXObjectCache::createFromNode):
(WebCore::AXObjectCache::cacheAndInitializeWrapper):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::create):
(WebCore::AXObjectCache::generateNewObjectID):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::updateIsolatedTree const):
(WebCore::AXObjectCache::addRelation):
(WebCore::AXObjectCache::removeRelation):
(WebCore::AXObjectCache::isDescendantOfRelatedNode):
(WebCore::AXObjectCache::relatedObjectIDsFor):
(WebCore::createFromNode): Deleted.
(WebCore::AXObjectCache::generateNewObjectID const): Deleted.
(WebCore::AXObjectCache::getAXID): Deleted.
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/AXRemoteFrame.cpp:
(WebCore::AXRemoteFrame::AXRemoteFrame):
(WebCore::AXRemoteFrame::create):
* Source/WebCore/accessibility/AXRemoteFrame.h:
* Source/WebCore/accessibility/AXSearchManager.cpp:
(WebCore::AXSearchManager::matchForSearchKeyAtIndex):
(WebCore::AXSearchManager::findMatchingRange):
* Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::AccessibilityARIAGridCell):
(WebCore::AccessibilityARIAGridCell::create):
* Source/WebCore/accessibility/AccessibilityARIAGridCell.h:
* Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::AccessibilityARIAGridRow):
(WebCore::AccessibilityARIAGridRow::create):
* Source/WebCore/accessibility/AccessibilityARIAGridRow.h:
* Source/WebCore/accessibility/AccessibilityARIATable.cpp:
(WebCore::AccessibilityARIATable::AccessibilityARIATable):
(WebCore::AccessibilityARIATable::create):
* Source/WebCore/accessibility/AccessibilityARIATable.h:
* Source/WebCore/accessibility/AccessibilityAttachment.cpp:
(WebCore::AccessibilityAttachment::AccessibilityAttachment):
(WebCore::AccessibilityAttachment::create):
* Source/WebCore/accessibility/AccessibilityAttachment.h:
* Source/WebCore/accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::AccessibilityImageMapLink):
(WebCore::AccessibilityImageMapLink::create):
* Source/WebCore/accessibility/AccessibilityImageMapLink.h:
* Source/WebCore/accessibility/AccessibilityLabel.cpp:
(WebCore::AccessibilityLabel::AccessibilityLabel):
(WebCore::AccessibilityLabel::create):
* Source/WebCore/accessibility/AccessibilityLabel.h:
* Source/WebCore/accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::AccessibilityList):
(WebCore::AccessibilityList::create):
* Source/WebCore/accessibility/AccessibilityList.h:
* Source/WebCore/accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::AccessibilityListBox):
(WebCore::AccessibilityListBox::create):
* Source/WebCore/accessibility/AccessibilityListBox.h:
* Source/WebCore/accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
(WebCore::AccessibilityListBoxOption::create):
* Source/WebCore/accessibility/AccessibilityListBoxOption.h:
* Source/WebCore/accessibility/AccessibilityMathMLElement.cpp:
(WebCore::AccessibilityMathMLElement::AccessibilityMathMLElement):
(WebCore::AccessibilityMathMLElement::create):
* Source/WebCore/accessibility/AccessibilityMathMLElement.h:
* Source/WebCore/accessibility/AccessibilityMediaObject.cpp:
(WebCore::AccessibilityMediaObject::AccessibilityMediaObject):
(WebCore::AccessibilityMediaObject::create):
* Source/WebCore/accessibility/AccessibilityMediaObject.h:
* Source/WebCore/accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::AccessibilityMenuList):
(WebCore::AccessibilityMenuList::create):
* Source/WebCore/accessibility/AccessibilityMenuList.h:
* Source/WebCore/accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption):
(WebCore::AccessibilityMenuListOption::create):
* Source/WebCore/accessibility/AccessibilityMenuListOption.h:
* Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::AccessibilityMenuListPopup):
* Source/WebCore/accessibility/AccessibilityMenuListPopup.h:
* Source/WebCore/accessibility/AccessibilityMockObject.cpp:
(WebCore::AccessibilityMockObject::AccessibilityMockObject):
* Source/WebCore/accessibility/AccessibilityMockObject.h:
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
(WebCore::AccessibilityNodeObject::create):
* Source/WebCore/accessibility/AccessibilityNodeObject.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::dbg const):
(WebCore::AccessibilityObject::isIgnored const):
(WebCore::AccessibilityObject::isIgnoredWithoutCache const):
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::AccessibilityProgressIndicator):
(WebCore::AccessibilityProgressIndicator::create):
* Source/WebCore/accessibility/AccessibilityProgressIndicator.h:
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::create):
* Source/WebCore/accessibility/AccessibilityRenderObject.h:
* Source/WebCore/accessibility/AccessibilitySVGObject.cpp:
(WebCore::AccessibilitySVGObject::AccessibilitySVGObject):
(WebCore::AccessibilitySVGObject::create):
* Source/WebCore/accessibility/AccessibilitySVGObject.h:
* Source/WebCore/accessibility/AccessibilitySVGRoot.cpp:
(WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
(WebCore::AccessibilitySVGRoot::create):
* Source/WebCore/accessibility/AccessibilitySVGRoot.h:
* Source/WebCore/accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::AccessibilityScrollView):
(WebCore::AccessibilityScrollView::create):
* Source/WebCore/accessibility/AccessibilityScrollView.h:
* Source/WebCore/accessibility/AccessibilityScrollbar.cpp:
(WebCore::AccessibilityScrollbar::AccessibilityScrollbar):
(WebCore::AccessibilityScrollbar::create):
(WebCore::AccessibilityScrollbar::elementRect const):
(WebCore::AccessibilityScrollbar::document const):
(WebCore::AccessibilityScrollbar::orientation const):
(WebCore::AccessibilityScrollbar::isEnabled const):
(WebCore::AccessibilityScrollbar::valueForRange const):
(WebCore::AccessibilityScrollbar::setValue):
* Source/WebCore/accessibility/AccessibilityScrollbar.h:
* Source/WebCore/accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::AccessibilitySlider):
(WebCore::AccessibilitySlider::create):
(WebCore::AccessibilitySliderThumb::AccessibilitySliderThumb):
(WebCore::AccessibilitySliderThumb::create):
* Source/WebCore/accessibility/AccessibilitySlider.h:
* Source/WebCore/accessibility/AccessibilitySpinButton.cpp:
(WebCore::AccessibilitySpinButton::create):
(WebCore::AccessibilitySpinButton::AccessibilitySpinButton):
(WebCore::AccessibilitySpinButtonPart::AccessibilitySpinButtonPart):
(WebCore::AccessibilitySpinButtonPart::create):
* Source/WebCore/accessibility/AccessibilitySpinButton.h:
* Source/WebCore/accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::AccessibilityTable):
(WebCore::AccessibilityTable::create):
* Source/WebCore/accessibility/AccessibilityTable.h:
* Source/WebCore/accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::AccessibilityTableCell):
(WebCore::AccessibilityTableCell::create):
* Source/WebCore/accessibility/AccessibilityTableCell.h:
* Source/WebCore/accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::AccessibilityTableColumn):
(WebCore::AccessibilityTableColumn::create):
* Source/WebCore/accessibility/AccessibilityTableColumn.h:
* Source/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::AccessibilityTableHeaderContainer):
(WebCore::AccessibilityTableHeaderContainer::create):
* Source/WebCore/accessibility/AccessibilityTableHeaderContainer.h:
* Source/WebCore/accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::AccessibilityTableRow):
(WebCore::AccessibilityTableRow::create):
* Source/WebCore/accessibility/AccessibilityTableRow.h:
* Source/WebCore/accessibility/AccessibilityTree.cpp:
(WebCore::AccessibilityTree::AccessibilityTree):
(WebCore::AccessibilityTree::create):
* Source/WebCore/accessibility/AccessibilityTree.h:
* Source/WebCore/accessibility/AccessibilityTreeItem.cpp:
(WebCore::AccessibilityTreeItem::AccessibilityTreeItem):
(WebCore::AccessibilityTreeItem::create):
* Source/WebCore/accessibility/AccessibilityTreeItem.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::dbg const):
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::associatedAXObject const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::createEmptyContent):
(WebCore::AXIsolatedTree::reportLoadingProgress):
(WebCore::AXIsolatedTree::shouldCreateNodeChange):
(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueChange):
(WebCore::AXIsolatedTree::addUnconnectedNode):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updatePropertiesForSelfAndDescendants):
(WebCore::AXIsolatedTree::updateNodeProperties):
(WebCore::AXIsolatedTree::updateDependentProperties):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
(WebCore::AXIsolatedTree::relatedObjectIDsFor):
(WebCore::AXIsolatedTree::applyPendingChanges):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase attachAXObject:]):

Canonical link: https://commits.webkit.org/286366@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to