Changeset 284769 in webkit
- Timestamp:
- Oct 24, 2021, 3:28:37 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 19 edited
-
ChangeLog (modified) (1 diff)
-
accessibility/AccessibilityARIAGrid.cpp (modified) (2 diffs)
-
accessibility/AccessibilityListBox.cpp (modified) (3 diffs)
-
accessibility/AccessibilityMenuList.cpp (modified) (1 diff)
-
accessibility/AccessibilityMenuListPopup.cpp (modified) (2 diffs)
-
accessibility/AccessibilityNodeObject.cpp (modified) (1 diff)
-
accessibility/AccessibilityObject.cpp (modified) (2 diffs)
-
accessibility/AccessibilityObject.h (modified) (2 diffs)
-
accessibility/AccessibilityObjectInterface.h (modified) (2 diffs)
-
accessibility/AccessibilityRenderObject.cpp (modified) (4 diffs)
-
accessibility/AccessibilityScrollView.cpp (modified) (1 diff)
-
accessibility/AccessibilitySlider.cpp (modified) (1 diff)
-
accessibility/AccessibilitySpinButton.cpp (modified) (3 diffs)
-
accessibility/AccessibilityTable.cpp (modified) (1 diff)
-
accessibility/AccessibilityTableColumn.cpp (modified) (1 diff)
-
accessibility/AccessibilityTableHeaderContainer.cpp (modified) (1 diff)
-
accessibility/isolatedtree/AXIsolatedObject.cpp (modified) (1 diff)
-
accessibility/isolatedtree/AXIsolatedObject.h (modified) (1 diff)
-
accessibility/isolatedtree/AXIsolatedTree.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r284767 r284769 1 2021-10-24 Tyler Wilcock <tyler_w@apple.com> 2 3 AX: AccessibilityObject::m_haveChildren and AXCoreObject::hasChildren() are misleadingly named 4 https://bugs.webkit.org/show_bug.cgi?id=232130 5 6 Reviewed by Chris Fleizach. 7 8 The names of `AccessibilityObject::m_haveChildren` and `AXCoreObject::hasChildren()` 9 imply that the given object has one or more children. However, what these 10 really indicate is whether the object has tried to initialize its children. 11 Both `m_haveChildren` and `hasChildren()` can be true for objects that have no children, 12 which is confusing. 13 14 This patch: 15 16 - Renames `m_haveChildren` to `m_childrenInitialized` and 17 `hasChildren()` to `childrenInitialized()`. 18 19 - Removes `AXPropertyName::HasChildren` rather than 20 renaming it because isolated object children are always initialized. 21 22 - Fixes a bug in `AccessibilityRenderObject::updateRoleAfterChildrenCreation` 23 caused by the poor names (we intended to change the role if there 24 were no children, not if `!hasChildren()`). 25 26 * accessibility/AccessibilityARIAGrid.cpp: 27 (WebCore::AccessibilityARIAGrid::addChildren): 28 * accessibility/AccessibilityListBox.cpp: 29 (WebCore::AccessibilityListBox::addChildren): 30 (WebCore::AccessibilityListBox::selectedChildren): 31 (WebCore::AccessibilityListBox::visibleChildren): 32 * accessibility/AccessibilityMenuList.cpp: 33 (WebCore::AccessibilityMenuList::addChildren): 34 * accessibility/AccessibilityMenuListPopup.cpp: 35 (WebCore::AccessibilityMenuListPopup::addChildren): 36 (WebCore::AccessibilityMenuListPopup::childrenChanged): 37 * accessibility/AccessibilityNodeObject.cpp: 38 (WebCore::AccessibilityNodeObject::addChildren): 39 * accessibility/AccessibilityObject.cpp: 40 (WebCore::AccessibilityObject::updateChildrenIfNecessary): 41 (WebCore::AccessibilityObject::clearChildren): 42 * accessibility/AccessibilityObject.h: 43 * accessibility/AccessibilityObjectInterface.h: 44 (WebCore::AXCoreObject::isDescendantOfObject const): 45 * accessibility/AccessibilityRenderObject.cpp: 46 (WebCore::AccessibilityRenderObject::addCanvasChildren): 47 (WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation): 48 (WebCore::AccessibilityRenderObject::addChildren): 49 (WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren): 50 * accessibility/AccessibilityScrollView.cpp: 51 (WebCore::AccessibilityScrollView::addChildren): 52 * accessibility/AccessibilitySlider.cpp: 53 (WebCore::AccessibilitySlider::addChildren): 54 * accessibility/AccessibilitySpinButton.cpp: 55 (WebCore::AccessibilitySpinButton::incrementButton): 56 (WebCore::AccessibilitySpinButton::decrementButton): 57 (WebCore::AccessibilitySpinButton::addChildren): 58 * accessibility/AccessibilityTable.cpp: 59 (WebCore::AccessibilityTable::addChildren): 60 * accessibility/AccessibilityTableColumn.cpp: 61 (WebCore::AccessibilityTableColumn::addChildren): 62 * accessibility/AccessibilityTableHeaderContainer.cpp: 63 (WebCore::AccessibilityTableHeaderContainer::addChildren): 64 * accessibility/isolatedtree/AXIsolatedObject.cpp: 65 Stop setting `AXPropertyName::HasChildren` because it no longer exists. 66 (WebCore::AXIsolatedObject::initializeAttributeData): 67 * accessibility/isolatedtree/AXIsolatedObject.h: 68 * accessibility/isolatedtree/AXIsolatedTree.h: 69 Delete `AXPropertyName::HasChildren`. 70 1 71 2021-10-24 Fujii Hironori <Hironori.Fujii@sony.com> 2 72 -
trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.cpp
r284760 r284769 95 95 void AccessibilityARIAGrid::addChildren() 96 96 { 97 ASSERT(!m_ haveChildren);97 ASSERT(!m_childrenInitialized); 98 98 99 99 if (!isExposable()) { … … 102 102 } 103 103 104 m_ haveChildren= true;104 m_childrenInitialized = true; 105 105 if (!m_renderer) 106 106 return; -
trunk/Source/WebCore/accessibility/AccessibilityListBox.cpp
r284760 r284769 72 72 return; 73 73 74 m_ haveChildren= true;74 m_childrenInitialized = true; 75 75 76 76 for (const auto& listItem : downcast<HTMLSelectElement>(*selectNode).listItems()) … … 106 106 ASSERT(result.isEmpty()); 107 107 108 if (! hasChildren())108 if (!childrenInitialized()) 109 109 addChildren(); 110 110 111 111 for (const auto& child : m_children) { 112 112 if (downcast<AccessibilityListBoxOption>(*child).isSelected()) … … 119 119 ASSERT(result.isEmpty()); 120 120 121 if (! hasChildren())121 if (!childrenInitialized()) 122 122 addChildren(); 123 123 -
trunk/Source/WebCore/accessibility/AccessibilityMenuList.cpp
r284760 r284769 82 82 } 83 83 84 m_ haveChildren= true;84 m_childrenInitialized = true; 85 85 addChild(list); 86 86 list->addChildren(); -
trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp
r284760 r284769 95 95 return; 96 96 97 m_ haveChildren= true;97 m_childrenInitialized = true; 98 98 99 99 for (const auto& listItem : downcast<HTMLSelectElement>(*selectNode).listItems()) { … … 117 117 118 118 m_children.clear(); 119 m_ haveChildren= false;119 m_childrenInitialized = false; 120 120 addChildren(); 121 121 } -
trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp
r284266 r284769 343 343 // If the need to add more children in addition to existing children arises, 344 344 // childrenChanged should have been called, leaving the object with no children. 345 ASSERT(!m_ haveChildren);345 ASSERT(!m_childrenInitialized); 346 346 347 347 if (!m_node) 348 348 return; 349 349 350 m_ haveChildren= true;350 m_childrenInitialized = true; 351 351 352 352 // The only time we add children from the DOM tree to a node with a renderer is when it's a canvas. -
trunk/Source/WebCore/accessibility/AccessibilityObject.cpp
r284760 r284769 1687 1687 void AccessibilityObject::updateChildrenIfNecessary() 1688 1688 { 1689 if (! hasChildren()) {1689 if (!childrenInitialized()) { 1690 1690 // Enable the cache in case we end up adding a lot of children, we don't want to recompute axIsIgnored each time. 1691 1691 AXAttributeCacheEnabler enableCache(axObjectCache()); … … 1701 1701 1702 1702 m_children.clear(); 1703 m_ haveChildren= false;1703 m_childrenInitialized = false; 1704 1704 } 1705 1705 -
trunk/Source/WebCore/accessibility/AccessibilityObject.h
r284760 r284769 496 496 497 497 bool canHaveChildren() const override { return true; } 498 bool hasChildren() const override { return m_haveChildren; }498 bool childrenInitialized() const override { return m_childrenInitialized; } 499 499 void updateChildrenIfNecessary() override; 500 500 void setNeedsToUpdateChildren() override { } … … 812 812 protected: // FIXME: Make the data members private. 813 813 AccessibilityChildrenVector m_children; 814 mutable bool m_ haveChildren{ false };814 mutable bool m_childrenInitialized { false }; 815 815 AccessibilityRole m_role { AccessibilityRole::Unknown }; 816 816 private: -
trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h
r284760 r284769 1250 1250 1251 1251 virtual bool canHaveChildren() const = 0; 1252 virtual bool hasChildren() const = 0;1252 virtual bool childrenInitialized() const = 0; 1253 1253 virtual void updateChildrenIfNecessary() = 0; 1254 1254 virtual void setNeedsToUpdateChildren() = 0; … … 1626 1626 inline bool AXCoreObject::isDescendantOfObject(const AXCoreObject* axObject) const 1627 1627 { 1628 return axObject && axObject-> hasChildren()1628 return axObject && axObject->childrenInitialized() 1629 1629 && Accessibility::findAncestor<AXCoreObject>(*this, false, [axObject] (const AXCoreObject& object) { 1630 1630 return &object == axObject; -
trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
r284760 r284769 3386 3386 3387 3387 // If it's a canvas, it won't have rendered children, but it might have accessible fallback content. 3388 // Clear m_ haveChildrenbecause AccessibilityNodeObject::addChildren will expect it to be false.3388 // Clear m_childrenInitialized because AccessibilityNodeObject::addChildren will expect it to be false. 3389 3389 ASSERT(!m_children.size()); 3390 m_ haveChildren= false;3390 m_childrenInitialized = false; 3391 3391 AccessibilityNodeObject::addChildren(); 3392 3392 } … … 3491 3491 m_role = AccessibilityRole::Group; 3492 3492 } 3493 if (role == AccessibilityRole::SVGRoot && ! hasChildren())3493 if (role == AccessibilityRole::SVGRoot && !children().size()) 3494 3494 m_role = AccessibilityRole::Image; 3495 3495 } … … 3499 3499 // If the need to add more children in addition to existing children arises, 3500 3500 // childrenChanged should have been called, leaving the object with no children. 3501 ASSERT(!m_ haveChildren);3502 3503 m_ haveChildren= true;3501 ASSERT(!m_childrenInitialized); 3502 3503 m_childrenInitialized = true; 3504 3504 3505 3505 if (!canHaveChildren()) … … 3690 3690 void AccessibilityRenderObject::ariaListboxVisibleChildren(AccessibilityChildrenVector& result) 3691 3691 { 3692 if (! hasChildren())3692 if (!childrenInitialized()) 3693 3693 addChildren(); 3694 3694 -
trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp
r284760 r284769 186 186 void AccessibilityScrollView::addChildren() 187 187 { 188 ASSERT(!m_ haveChildren);189 m_ haveChildren= true;188 ASSERT(!m_childrenInitialized); 189 m_childrenInitialized = true; 190 190 191 191 addChild(webAreaObject()); -
trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp
r284760 r284769 87 87 void AccessibilitySlider::addChildren() 88 88 { 89 ASSERT(!m_ haveChildren);89 ASSERT(!m_childrenInitialized); 90 90 91 m_ haveChildren= true;91 m_childrenInitialized = true; 92 92 93 93 AXObjectCache* cache = m_renderer->document().axObjectCache(); -
trunk/Source/WebCore/accessibility/AccessibilitySpinButton.cpp
r284760 r284769 46 46 AXCoreObject* AccessibilitySpinButton::incrementButton() 47 47 { 48 if (!m_ haveChildren)48 if (!m_childrenInitialized) 49 49 addChildren(); 50 if (!m_ haveChildren)50 if (!m_childrenInitialized) 51 51 return nullptr; 52 52 … … 58 58 AXCoreObject* AccessibilitySpinButton::decrementButton() 59 59 { 60 if (!m_ haveChildren)60 if (!m_childrenInitialized) 61 61 addChildren(); 62 if (!m_ haveChildren)62 if (!m_childrenInitialized) 63 63 return nullptr; 64 64 … … 87 87 return; 88 88 89 m_ haveChildren= true;89 m_childrenInitialized = true; 90 90 91 91 auto& incrementor = downcast<AccessibilitySpinButtonPart>(*cache->create(AccessibilityRole::SpinButtonPart)); -
trunk/Source/WebCore/accessibility/AccessibilityTable.cpp
r284760 r284769 382 382 } 383 383 384 ASSERT(!m_ haveChildren);385 386 m_ haveChildren= true;384 ASSERT(!m_childrenInitialized); 385 386 m_childrenInitialized = true; 387 387 if (!is<RenderTable>(renderer())) 388 388 return; -
trunk/Source/WebCore/accessibility/AccessibilityTableColumn.cpp
r284760 r284769 182 182 void AccessibilityTableColumn::addChildren() 183 183 { 184 ASSERT(!m_ haveChildren);185 186 m_ haveChildren= true;184 ASSERT(!m_childrenInitialized); 185 186 m_childrenInitialized = true; 187 187 if (!is<AccessibilityTable>(m_parent)) 188 188 return; -
trunk/Source/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp
r284760 r284769 64 64 void AccessibilityTableHeaderContainer::addChildren() 65 65 { 66 ASSERT(!m_ haveChildren);66 ASSERT(!m_childrenInitialized); 67 67 68 m_ haveChildren= true;68 m_childrenInitialized = true; 69 69 if (!is<AccessibilityTable>(m_parent)) 70 70 return; -
trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
r284760 r284769 164 164 setProperty(AXPropertyName::EstimatedLoadingProgress, object.estimatedLoadingProgress()); 165 165 setProperty(AXPropertyName::SupportsARIAOwns, object.supportsARIAOwns()); 166 setProperty(AXPropertyName::HasChildren, object.hasChildren());167 166 setProperty(AXPropertyName::HasPopup, object.hasPopup()); 168 167 setProperty(AXPropertyName::PopupValue, object.popupValue().isolatedCopy()); -
trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
r284760 r284769 611 611 void insertChild(AXCoreObject*, unsigned, DescendIfIgnored = DescendIfIgnored::Yes) override; 612 612 bool canHaveChildren() const override; 613 bool hasChildren() const override { return boolAttributeValue(AXPropertyName::HasChildren); }613 bool childrenInitialized() const override { return true; } 614 614 void setNeedsToUpdateChildren() override; 615 615 void setNeedsToUpdateSubtree() override; -
trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
r284529 r284769 119 119 HasApplePDFAnnotationAttribute, 120 120 HasBoldFont, 121 HasChildren,122 121 HasHighlighting, 123 122 HasItalicFont,
Note:
See TracChangeset
for help on using the changeset viewer.