Bug 26024 - AX: possible to fail assertion because AXPostNotification calls accessibilityIsIgnored
Summary: AX: possible to fail assertion because AXPostNotification calls accessibility...
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: chris fleizach
Depends on:
Reported: 2009-05-26 10:04 PDT by chris fleizach
Modified: 2009-05-29 11:39 PDT (History)
0 users

See Also:

patch (14.77 KB, patch)
2009-05-26 10:16 PDT, chris fleizach
bdakin: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description chris fleizach 2009-05-26 10:04:22 PDT
ASSERTION FAILED: !m_layoutState
(/Volumes/data/Web/WebKit-2/WebCore/rendering/RenderView.cpp:115 virtual void WebCore::RenderView::layout())

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x00000000bbadbeef
0x0000000101afc46d in WebCore::RenderView::layout (this=0x119aaf898) at /Volumes/data/Web/WebKit-2/WebCore/rendering/RenderView.cpp:115
115	    ASSERT(!m_layoutState);
(gdb) bt
#0  0x0000000101afc46d in WebCore::RenderView::layout (this=0x119aaf898) at /Volumes/data/Web/WebKit-2/WebCore/rendering/RenderView.cpp:115
#1  0x0000000101cb92f7 in WebCore::RenderObject::layoutIfNeeded (this=0x119aaf898) at RenderObject.h:479
#2  0x000000010139ece4 in WebCore::AccessibilityRenderObject::updateBackingStore (this=0x119c21e80) at /Volumes/data/Web/WebKit-2/WebCore/page/AccessibilityRenderObject.cpp:2537
#3  0x000000010138f235 in -[AccessibilityObjectWrapper accessibilityIsIgnored] (self=0x119c1a230, _cmd=0x7fff820a67d8) at /Volumes/data/Web/WebKit-2/WebCore/page/mac/AccessibilityObjectWrapper.mm:1530
#4  0x00007fff819c0431 in NSAccessibilityPostNotificationForObservedElement ()
#5  0x00000001013889e1 in WebCore::AXObjectCache::postNotification (this=0x119ad5aa0, renderer=0x119c218d8, message=@0x7fff5fbf9950) at /Volumes/data/Web/WebKit-2/WebCore/page/mac/AXObjectCacheMac.mm:68
#6  0x0000000101ae2a18 in WebCore::RenderTextControl::setInnerTextValue (this=0x119c218d8, innerTextValue=@0x7fff5fbf99f0) at /Volumes/data/Web/WebKit-2/WebCore/rendering/RenderTextControl.cpp:176
#7  0x0000000101ae7d4e in WebCore::RenderTextControlSingleLine::updateFromElement (this=0x119c218d8) at /Volumes/data/Web/WebKit-2/WebCore/rendering/
Comment 1 chris fleizach 2009-05-26 10:16:25 PDT
Created attachment 30671 [details]

This patch fixes the problem where an AX notification can be posted while the render tree is being changed. this callout can cause other problems.

the fix is to have a one shot timer post all the notifications after rendering is done

this also consolidate postNotification and postNotificationToElement into one method
Comment 2 David Levin 2009-05-29 11:25:18 PDT
Assigned to cfleizach@apple.com for landing his own patch (simply to make this obvious in the commit queue).
Comment 3 chris fleizach 2009-05-29 11:33:49 PDT