Commit fdd8ded2 authored by cfleizach@apple.com's avatar cfleizach@apple.com

Bug 25428: 5 crashes in DumpRenderTree at com.apple.WebCore •...

Bug 25428: 5 crashes in DumpRenderTree at com.apple.WebCore • -[AccessibilityObjectWrapper accessibilityAttributeValue:] + 830
https://bugs.webkit.org/show_bug.cgi?id=25428



git-svn-id: svn://svn.chromium.org/blink/trunk@42900 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 263e4cde
2009-04-27 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
Bug 25428: 5 crashes in DumpRenderTree at com.apple.WebCore • -[AccessibilityObjectWrapper accessibilityAttributeValue:] + 830
https://bugs.webkit.org/show_bug.cgi?id=25428
Re-enable test that was crashing
* platform/mac-snowleopard/Skipped:
2009-04-26 Sam Weinig <sam@webkit.org> 2009-04-26 Sam Weinig <sam@webkit.org>
Reviewed by Dan Bernstein. Reviewed by Dan Bernstein.
# <rdar://problem/6687808> Crash when running accessibility/table-modification-crash.html
accessibility/table-modification-crash.html
# <rdar://problem/6530010> NPN_SetException is not working # <rdar://problem/6530010> NPN_SetException is not working
plugins/netscape-throw-exception.html plugins/netscape-throw-exception.html
......
2009-04-27 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
Bug 25428: 5 crashes in DumpRenderTree at com.apple.WebCore • -[AccessibilityObjectWrapper accessibilityAttributeValue:] + 830
https://bugs.webkit.org/show_bug.cgi?id=25428
When marking children as changed in accessibility, we cannot rely on the accessibility parent chain existing.
Instead, the render chain needs to be consulted.
* page/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::childrenChanged):
2009-04-27 Alexey Proskuryakov <ap@webkit.org> 2009-04-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin Adler. Reviewed by Darin Adler.
...@@ -2276,16 +2276,14 @@ void AccessibilityRenderObject::childrenChanged() ...@@ -2276,16 +2276,14 @@ void AccessibilityRenderObject::childrenChanged()
markChildrenDirty(); markChildrenDirty();
// This object may not be accessible (and thus may not appear if (!m_renderer)
// in the hierarchy), which means we need to go up the parent return;
// chain and mark the parent's dirty. Ideally, we would want
// to only access the next object that is not ignored, but // Go up the render parent chain, marking children as dirty.
// asking an element if it's ignored can lead to an examination of the // We can't rely on the accessibilityParent() because it may not exist and we must not create an AX object here either
// render tree which is dangerous. for (RenderObject* renderParent = m_renderer->parent(); renderParent; renderParent = renderParent->parent()) {
// Only parents that already exist must be retrieved, otherwise objects can be created AccessibilityObject* parent = m_renderer->document()->axObjectCache()->get(renderParent);
// at bad times if (parent && parent->isAccessibilityRenderObject())
for (AccessibilityObject* parent = parentObjectIfExists(); parent; parent = parent->parentObjectIfExists()) {
if (parent->isAccessibilityRenderObject())
static_cast<AccessibilityRenderObject *>(parent)->markChildrenDirty(); static_cast<AccessibilityRenderObject *>(parent)->markChildrenDirty();
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment