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

RESOLVED FIXED in mozilla2.0b7



Disability Access APIs
8 years ago
8 years ago


(Reporter: surkov, Assigned: surkov)


(Blocks: 1 bug, {access})

Dependency tree / graph
Bug Flags:
in-testsuite -

Firefox Tracking Flags

(Not tracked)


(Whiteboard: [fixed by bug 592193])



8 years ago
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.

 	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++


8 years ago
Blocks: 540399

Comment 1

8 years ago
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

Comment 2

8 years ago
actually this one was fixed by bug 592193: we don't use GetParent, we use mParent in NativeRole().
Last Resolved: 8 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.