Closed
Bug 377470
Opened 18 years ago
Closed 18 years ago
Crash [@ nsAccessible::GetState] using accessibility api and moving stuff
Categories
(Core :: Disability Access APIs, defect)
Core
Disability Access APIs
Tracking
()
RESOLVED
FIXED
People
(Reporter: martijn.martijn, Assigned: MatsPalmgren_bugz)
References
Details
(Keywords: crash, regression, testcase, Whiteboard: [sg:critical?] destroyed frame, post 1.8-branch)
Crash Data
Attachments
(3 files, 1 obsolete file)
I'm marking this security sensitive, because this uses Mats' script from bug 376924 (thanks for that, Mats).
If it doesn't need to be security sensitive, please open the bug.
The testcase doesn't seem to crash on branch, so it seems like a regression.
Talkback ID: TB31175040E
nsAccessible::GetState [mozilla/accessible/src/base/nsaccessible.cpp, line 1018]
nsHTMLComboboxListAccessible::GetState [mozilla/accessible/src/html/nshtmlselectaccessible.cpp, line 1303]
nsAccessible::GetFinalState [mozilla/accessible/src/base/nsaccessible.cpp, line 2329]
nsAccessible::State [mozilla/accessible/src/base/nsaccessible.h, line 192]
nsAccessible::GetMultiSelectFor [mozilla/accessible/src/base/nsaccessible.cpp, line 1346]
nsHTMLSelectOptionAccessible::SelectionChangedIfOption [mozilla/accessible/src/html/nshtmlselectaccessible.cpp, line 761]
nsDocAccessible::ContentStatesChanged [mozilla/accessible/src/base/nsdocaccessible.cpp, line 1039]
nsHTMLOptionElement::SetSelectedInternal [mozilla/content/html/content/src/nshtmloptionelement.cpp, line 226]
nsHTMLSelectElement::OnOptionSelected [mozilla/content/html/content/src/nshtmlselectelement.cpp, line 1226]
nsHTMLSelectElement::SetOptionsSelectedByIndex [mozilla/content/html/content/src/nshtmlselectelement.cpp, line 1379]
nsHTMLSelectElement::SetSelectedIndex [mozilla/content/html/content/src/nshtmlselectelement.cpp, line 1175]
nsHTMLSelectElement::RemoveOptionsFromList [mozilla/content/html/content/src/nshtmlselectelement.cpp, line 732]
nsHTMLSelectElement::WillRemoveOptions [mozilla/content/html/content/src/nshtmlselectelement.cpp, line 899]
nsHTMLSelectElement::RemoveChildAt [mozilla/content/html/content/src/nshtmlselectelement.cpp, line 586]
nsGenericElement::InsertBefore [mozilla/content/base/src/nsgenericelement.cpp, line 2537]
nsGenericElement::AppendChild [mozilla/content/base/src/nsgenericelement.h, line 530]
XPCWrappedNative::CallMethod [mozilla/js/src/xpconnect/src/xpcwrappednative.cpp, line 2247]
Reporter | ||
Comment 1•18 years ago
|
||
The testcase uses enhanced privileges, so you need to download it to your computer to see the crash.
Assignee | ||
Comment 2•18 years ago
|
||
Assignee | ||
Updated•18 years ago
|
Assignee: aaronleventhal → mats.palmgren
OS: Windows XP → All
Hardware: PC → All
Assignee | ||
Comment 3•18 years ago
|
||
Attachment #261543 -
Flags: review?(aaronleventhal)
Assignee | ||
Updated•18 years ago
|
Whiteboard: [sg:critical?] destroyed frame
Comment 4•18 years ago
|
||
Comment on attachment 261543 [details] [diff] [review]
Patch rev. 1
I haven't tested what this does to our implementation, and whether we still return the right frame. Does it?
The constructor shouldn't take aListFrame any more should it? What is it used for now?
Attachment #261543 -
Flags: review?(aaronleventhal) → review-
Comment 5•18 years ago
|
||
Is the crash really because of bug 357583, and we're not getting notifications from layout because a11y is initialized by JS?
Assignee | ||
Comment 6•18 years ago
|
||
Now returning the right frame...
Attachment #261543 -
Attachment is obsolete: true
Attachment #261589 -
Flags: review?(aaronleventhal)
Comment 7•18 years ago
|
||
Comment on attachment 261589 [details] [diff] [review]
Patch rev. 2
Thanks for the fix!
Just a nit, s/f/frame. I prefer multiple letter variable names, because it makes it easier to search for them in the code, and are slightly more readable IMO.
Also, the code does slightly less work if you do:
+ if (frame) {
+ nsIComboboxControlFrame* comboBox;
+ CallQueryInterface(f, &comboBox);
+ if (comboBox) {
+ return comboBox->GetDropDown();
+ }
+ }
+ return nsnull;
}
Attachment #261589 -
Flags: review?(aaronleventhal) → review+
Comment 8•18 years ago
|
||
I checked it in with that change. Thanks for the fix Mats.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Comment 9•18 years ago
|
||
(In reply to comment #0)
> The testcase doesn't seem to crash on branch, so it seems like a regression.
Crashed for me in a debug FF2.0.0.4pre build. kinda hung, then crashed when I started typing in the input field. Stack is different so could be something else (in which case we should create a branch-only bug). mFirstChild in nsAccessible::Shutdown points at an object with a deleted vtbl (0xdddddddd).
> nsCOMPtr<nsIAccessible>::nsCOMPtr<nsIAccessible>() Line 627
nsAccessible::Shutdown() Line 455
nsAccessNode::ClearCacheEntry() Line 530
nsBaseHashtable<nsVoidHashKey,nsCOMPtr<nsIAccessNode>,nsIAccessNode *>::s_EnumStub() Line 346
PL_DHashTableEnumerate() Line 683
nsBaseHashtable<nsVoidHashKey,nsCOMPtr<nsIAccessNode>,nsIAccessNode *>::Enumerate() Line 221
nsAccessNode::ClearCache() Line 538
nsDocAccessible::Shutdown() Line 483
nsDocAccessibleWrap::Shutdown() Line 173
nsAccessNode::ClearCacheEntry() Line 530
nsBaseHashtable<nsVoidHashKey,nsCOMPtr<nsIAccessNode>,nsIAccessNode *>::s_EnumStub() Line 346
PL_DHashTableEnumerate() Line 683
nsBaseHashtable<nsVoidHashKey,nsCOMPtr<nsIAccessNode>,nsIAccessNode *>::Enumerate() Line 221
nsAccessNode::ClearCache() Line 538
nsAccessNode::ShutdownXPAccessibility() Line 214
nsAccessNodeWrap::ShutdownAccessibility() Line 588
nsAccessibilityService::Observe() Line 154
nsObserverService::NotifyObservers() Line 233
NS_ShutdownXPCOM_P() Line 812
ScopedXPCOMStartup::~ScopedXPCOMStartup() Line 742
XRE_main() Line 2743
main() Line 61
mainCRTStartup() Line 398
Flags: wanted1.8.1.x?
Flags: wanted1.8.0.x?
Updated•18 years ago
|
Flags: wanted1.8.1.x?
Flags: wanted1.8.1.x+
Flags: wanted1.8.0.x?
Flags: wanted1.8.0.x+
Comment 10•17 years ago
|
||
Created bug 386382 for the branch shutdown crash described in comment 9
Comment 11•17 years ago
|
||
This particular patch doesn't apply to the 1.8 branch; it tweaks some of the changes that were landed in bug 278034 which was post-1.8 only. Whatever is going on in bug 386382 is completely unrelated to what this bug is fixing, despite being discovered by the same testcase.
Blocks: 278034
Flags: wanted1.8.1.x-
Flags: wanted1.8.1.x+
Flags: wanted1.8.0.x-
Flags: wanted1.8.0.x+
Whiteboard: [sg:critical?] destroyed frame → [sg:critical?] destroyed frame, post 1.8-branch
Updated•17 years ago
|
Group: security
Flags: in-testsuite?
Updated•13 years ago
|
Crash Signature: [@ nsAccessible::GetState]
You need to log in
before you can comment on or make changes to this bug.
Description
•