| Index: Source/core/accessibility/AXScrollView.cpp
|
| diff --git a/Source/core/accessibility/AXScrollView.cpp b/Source/core/accessibility/AXScrollView.cpp
|
| index 70a7c94cdceb56e03eb295fe453bf47c6fe67938..4a7ccc6f1ad37ff7523eba127dc18fa3b0c9e0c4 100644
|
| --- a/Source/core/accessibility/AXScrollView.cpp
|
| +++ b/Source/core/accessibility/AXScrollView.cpp
|
| @@ -143,11 +143,21 @@ void AXScrollView::clearChildren()
|
|
|
| bool AXScrollView::computeAccessibilityIsIgnored() const
|
| {
|
| + // We just want to match whatever's returned by our web area, which is a child of this
|
| + // object. Normally cached attribute values may only search up the tree. We can't just
|
| + // call accessibilityIsIgnored on the web area, because the web area may search up its
|
| + // ancestors and call this function recursively, and we'd loop until a stack overflow.
|
| +
|
| + // Instead, we first update the cached accessibilityIsIgnored value for this node to
|
| + // false, call accessibilityIsIgnored on the web area, then return the mathcing value.
|
| + m_cachedIsIgnored = false;
|
| + m_lastModificationCount = axObjectCache()->modificationCount();
|
| +
|
| AXObject* webArea = webAreaObject();
|
| - if (!webArea)
|
| - return true;
|
| + if (webArea)
|
| + return webArea->accessibilityIsIgnored();
|
|
|
| - return webArea->accessibilityIsIgnored();
|
| + return true;
|
| }
|
|
|
| void AXScrollView::addChildren()
|
|
|