Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 226ab951753332583cb5104079fffbb5dd160aae
      
https://github.com/WebKit/WebKit/commit/226ab951753332583cb5104079fffbb5dd160aae
  Author: Tyler Wilcock <[email protected]>
  Date:   2024-11-27 (Wed, 27 Nov 2024)

  Changed paths:
    M Source/WebCore/accessibility/AXImage.h
    M Source/WebCore/accessibility/AXRemoteFrame.h
    M Source/WebCore/accessibility/AccessibilityARIAGridCell.h
    M Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp
    M Source/WebCore/accessibility/AccessibilityARIAGridRow.h
    M Source/WebCore/accessibility/AccessibilityAttachment.h
    M Source/WebCore/accessibility/AccessibilityImageMapLink.h
    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.h
    M Source/WebCore/accessibility/AccessibilityMenuList.cpp
    M Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp
    M Source/WebCore/accessibility/AccessibilityMenuListPopup.h
    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.h
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilityRenderObject.h
    M Source/WebCore/accessibility/AccessibilitySVGObject.h
    M Source/WebCore/accessibility/AccessibilitySVGRoot.h
    M Source/WebCore/accessibility/AccessibilityScrollView.cpp
    M Source/WebCore/accessibility/AccessibilityScrollView.h
    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/AccessibilitySpinButtonPart.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.h
    M Source/WebCore/accessibility/AccessibilityTreeItem.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h

  Log Message:
  -----------
  AX: Improve de-virtualization opportunities by ubiquitously using final and 
strengthening types from AXCoreObject to AccessibilityObject
https://bugs.webkit.org/show_bug.cgi?id=283685
rdar://140554675

Reviewed by Chris Fleizach.

Add final everywhere we can in accessibility, and strengthen types from 
AXCoreObject to AccessibilityObject, giving the
compiler the ability to de-virtualize more function calls.

Strengthening the types also makes our code more logical. An 
AccessibilityObject function that returns an AXCoreObject*
implicitly means it could return either an AccessibilityObject, or an 
AXIsolatedObject. Returning the latter would be
a major issue. By strengthening the types, this becomes impossible.

This patch also adds an overload of `addChildren` that takes an 
`AccessibilityObject&` to allow us to skip a null check
in contexts where we've already done a null check (which is most of them).

* Source/WebCore/accessibility/AXImage.h:
* Source/WebCore/accessibility/AXRemoteFrame.h:
* Source/WebCore/accessibility/AccessibilityARIAGridCell.h:
* Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::disclosedByRow const):
(WebCore::AccessibilityARIAGridRow::rowHeader):
* Source/WebCore/accessibility/AccessibilityARIAGridRow.h:
* Source/WebCore/accessibility/AccessibilityAttachment.h:
* Source/WebCore/accessibility/AccessibilityImageMapLink.h:
* Source/WebCore/accessibility/AccessibilityListBox.h:
* Source/WebCore/accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::node const): Deleted.
* Source/WebCore/accessibility/AccessibilityListBoxOption.h:
* Source/WebCore/accessibility/AccessibilityMathMLElement.cpp:
(WebCore::AccessibilityMathMLElement::addChildren):
(WebCore::AccessibilityMathMLElement::isMathScriptObject const):
(WebCore::AccessibilityMathMLElement::isMathMultiscriptObject const):
* Source/WebCore/accessibility/AccessibilityMathMLElement.h:
* Source/WebCore/accessibility/AccessibilityMediaObject.h:
* Source/WebCore/accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::AccessibilityMenuList):
* Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::addChildren):
* Source/WebCore/accessibility/AccessibilityMenuListPopup.h:
* Source/WebCore/accessibility/AccessibilityMockObject.h:
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::updateOwnedChildren):
(WebCore::AccessibilityNodeObject::internalLinkElement const):
(WebCore::AccessibilityNodeObject::isHovered const): Deleted.
* Source/WebCore/accessibility/AccessibilityNodeObject.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::insertChild):
(WebCore::AccessibilityObject::addChild): Deleted.
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::insertChild):
(WebCore::AccessibilityObject::addChild):
(WebCore::AccessibilityObject::isHovered const): Deleted.
* Source/WebCore/accessibility/AccessibilityProgressIndicator.h:
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::titleUIElement const):
(WebCore::AccessibilityRenderObject::computeIsIgnored const):
(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
(WebCore::AccessibilityRenderObject::addNodeOnlyChildren):
(WebCore::AccessibilityRenderObject::addChildren):
(WebCore::AccessibilityRenderObject::node const): Deleted.
* Source/WebCore/accessibility/AccessibilityRenderObject.h:
* Source/WebCore/accessibility/AccessibilitySVGObject.h:
* Source/WebCore/accessibility/AccessibilitySVGRoot.h:
* Source/WebCore/accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::addChildScrollbar):
(WebCore::AccessibilityScrollView::addRemoteFrameChild):
* Source/WebCore/accessibility/AccessibilityScrollView.h:
* Source/WebCore/accessibility/AccessibilityScrollbar.h:
* Source/WebCore/accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::addChildren):
* Source/WebCore/accessibility/AccessibilitySlider.h:
* Source/WebCore/accessibility/AccessibilitySpinButton.cpp:
(WebCore::AccessibilitySpinButton::AccessibilitySpinButton):
(WebCore::AccessibilitySpinButton::incrementButton):
(WebCore::AccessibilitySpinButton::decrementButton):
* Source/WebCore/accessibility/AccessibilitySpinButton.h:
* Source/WebCore/accessibility/AccessibilitySpinButtonPart.h:
(isType):
* Source/WebCore/accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::computeCellSlots):
(WebCore::AccessibilityTable::headerContainer):
* Source/WebCore/accessibility/AccessibilityTable.h:
* Source/WebCore/accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::parentRow const):
(WebCore::AccessibilityTableCell::ariaOwnedByParent const): Deleted.
* Source/WebCore/accessibility/AccessibilityTableCell.h:
* Source/WebCore/accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::columnHeader):
(WebCore::AccessibilityTableColumn::addChildren):
* Source/WebCore/accessibility/AccessibilityTableColumn.h:
* Source/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::addChildren):
* Source/WebCore/accessibility/AccessibilityTableHeaderContainer.h:
* Source/WebCore/accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::rowHeader):
(WebCore::AccessibilityTableRow::addChildren):
* Source/WebCore/accessibility/AccessibilityTableRow.h:
* Source/WebCore/accessibility/AccessibilityTree.h:
* Source/WebCore/accessibility/AccessibilityTreeItem.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:

Canonical link: https://commits.webkit.org/287130@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