Closed Bug 592189 Opened 14 years ago Closed 14 years ago

creation the menu button accessible asserts "wrong children repair!"

Categories

(Core :: Disability Access APIs, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla2.0b7

People

(Reporter: surkov, Assigned: surkov)

References

(Blocks 1 open bug)

Details

(Keywords: access, Whiteboard: [fixed by bug 592193])

Let's we have toolbar containing menu button, children caching for toolbar accessible creates accessible for menu button and initialize it before it's attached to the tree. Button initialization starts popup menu generation what results in DOM attribute change event, what are handled and we operate with menuitem, menupopup accessibles, their roles what results in GetParent() call at some point for unattached accessible.

stack:
 	xul.dll!NS_DebugBreak_P(unsigned int aSeverity, const char * aStr, const char * aExpr, const char * aFile, int aLine)  Line 371 + 0xc bytes	C++
 	xul.dll!nsAccessible::GetParent()  Line 2806 + 0x32 bytes	C++
 	xul.dll!nsXULMenupopupAccessible::GetRoleInternal(unsigned int * aRole)  Line 684 + 0x12 bytes	C++
 	xul.dll!nsAccessible::GetRole(unsigned int * aRole)  Line 1312	C++
 	xul.dll!nsAccUtils::Role(nsIAccessible * aAcc)  Line 297	C++
 	xul.dll!nsXULMenuitemAccessible::GetRoleInternal(unsigned int * aRole)  Line 491 + 0x2f bytes	C++
 	xul.dll!nsAccessible::GetRole(unsigned int * aRole)  Line 1312	C++
 	xul.dll!nsAccUtils::Role(nsIAccessible * aAcc)  Line 297	C++
 	xul.dll!nsXULMenuitemAccessible::GetStateInternal(unsigned int * aState, unsigned int * aExtraState)  Line 333 + 0x21 bytes	C++
 	xul.dll!nsAccessible::GetState(unsigned int * aState, unsigned int * aExtraState)  Line 1562 + 0x19 bytes	C++
 	xul.dll!AccStateChangeEvent::AccStateChangeEvent(nsINode * aNode, unsigned int aState, int aIsExtraState)  Line 288	C++
 	xul.dll!nsDocAccessible::AttributeChangedImpl(nsIContent * aContent, int aNameSpaceID, nsIAtom * aAttribute)  Line 978 + 0x26 bytes	C++

......

 	xul.dll!nsIContent::SetAttr(int aNameSpaceID, nsIAtom * aName, const nsAString_internal & aValue, int aNotify)  Line 356	C++
 	xul.dll!nsCoreUtils::GeneratePopupTree(nsIContent * aContent, int aIsAnon)  Line 1129 + 0x2a bytes	C++
>	xul.dll!nsXULButtonAccessible::Init()  Line 120 + 0x13 bytes	C++
 	xul.dll!nsAccessibilityService::InitAccessible(nsAccessible * aAccessible, nsRoleMapEntry * aRoleMapEntry)  Line 745 + 0xd bytes	C++
 	xul.dll!nsAccessibilityService::GetOrCreateAccessible(nsINode * aNode, nsIPresShell * aPresShell, nsIWeakReference * aWeakShell, int * aIsHidden)  Line 1092 + 0x18 bytes	C++
 	xul.dll!nsAccTreeWalker::GetNextChildInternal(int aNoWalkUp)  Line 117 + 0x2d bytes	C++
Blocks: treea11y
this one is related with bug 545465, at least they have root problem: nsAccessible::Init() is called when accessible is not in a tree.
Version: unspecified → Trunk
Depends on: 545465
actually this one was fixed by bug 592193: we don't use GetParent, we use mParent in NativeRole().
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Assignee: nobody → surkov.alexander
Depends on: 592193
Flags: in-testsuite-
Whiteboard: [fixed by bug 592193]
Target Milestone: --- → mozilla2.0b7
No longer depends on: 545465
You need to log in before you can comment on or make changes to this bug.