Closed
Bug 408463
Opened 17 years ago
Closed 17 years ago
top crash @ nsAutoCompleteController::HandleStartComposition(), RevertTextValue() and HandleKeyNavigation()
Categories
(Firefox :: Address Bar, defect, P1)
Firefox
Address Bar
Tracking
()
VERIFIED
FIXED
Firefox 3 beta3
People
(Reporter: moco, Assigned: moco)
References
()
Details
(Keywords: crash)
Attachments
(2 files, 1 obsolete file)
1.10 KB,
patch
|
asaf
:
review+
|
Details | Diff | Splinter Review |
2.23 KB,
patch
|
asaf
:
review+
|
Details | Diff | Splinter Review |
top crash @ nsAutoCompleteController::HandleStartComposition() From a crash report: http://crash-stats.mozilla.com/report/index/27165375-a90f-11dc-99a5-001a4bd43e5c Looking at the code: 339 // Stop all searches in case they are async. 340 StopSearch(); 341 342 PRBool isOpen; 343 mInput->GetPopupOpen(&isOpen); From the stack: 0 nsAutoCompleteController::HandleStartComposition() mozilla/toolkit/components/autocomplete/src/nsAutoCompleteController.cpp:343 1 NS_InvokeByIndex_P mozilla/xpcom/reflect/xptcall/src/md/win32/xptcinvoke.cpp:101 2 XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) mozilla/js/src/xpconnect/src/xpcwrappednative.cpp:2347 3 XPC_WN_CallMethod(JSContext*, JSObject*, unsigned int, long*, long*) mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp:1467 This sounds familiar, right? (See bug #395344) After we call StopSearch(), we need to check mInput Something like: // Stop all searches in case they are async. StopSearch(); + if (!mInput) { + // StopSearch() can call PostSearchCleanup() which might result + // in a blur event, which could null out mInput, so we need to check it + // again. See bug #395344 for more details + return NS_OK; + }
Flags: blocking-firefox3?
Assignee | ||
Comment 1•17 years ago
|
||
Attachment #293276 -
Flags: review?(gavin.sharp)
Assignee | ||
Comment 2•17 years ago
|
||
From http://crash-stats.mozilla.com/?do_query=1&product=Firefox&query_search=signature&query_type=contains&query=nsAutoCompleteController&date=&range_value=1&range_unit=weeks, it looks like this is happening in a few other places: nsAutoCompleteController::RevertTextValue() 1136 nsresult 1137 nsAutoCompleteController::RevertTextValue() 1138 { 1139 nsAutoString oldValue(mSearchString); 1140 1141 PRBool cancel = PR_FALSE; 1142 mInput->OnTextReverted(&cancel); nsAutoCompleteController::EnterMatch() and nsAutoCompleteController::HandleKeyNavigation() I'll audit nsAutoCompleteController and add the check for !mInput after calls to StopSearch() where necessary.
Status: NEW → ASSIGNED
Priority: -- → P1
Comment 3•17 years ago
|
||
Comment on attachment 293276 [details] [diff] [review] patch r=mano
Attachment #293276 -
Flags: review?(gavin.sharp) → review+
Updated•17 years ago
|
Flags: blocking-firefox3? → blocking-firefox3+
Assignee | ||
Comment 4•17 years ago
|
||
Checking in nsAutoCompleteController.cpp; /cvsroot/mozilla/toolkit/components/autocomplete/src/nsAutoCompleteController.cpp,v <-- nsAutoCompleteController.cpp new revision: 1.73; previous revision: 1.72 done fixed checked in, but I still need to audit and the rest of the code for other instances and fix them. I'll do that in a follow up patch.
Assignee | ||
Comment 5•17 years ago
|
||
Assignee | ||
Comment 6•17 years ago
|
||
this patch contains the fix for crash in nsAutoCompleteController::RevertTextValue(), which makes sense as we are calling StopSearch() before calling RevertTextValue(). this patch contains another fix for a crash in nsAutoCompleteController::HandleKeyNavigation(), but I'm not seeing where StopSearch() is happening, so I've bulletproofed and added a warning. the crash in nsAutoCompleteController::EnterMatch() from crash-stat was from a long time ago, and was just once, so I'm not as worried about it, but I'll keep an eye on it: http://crash-stats.mozilla.com/?do_query=1&product=Firefox&query_search=signature&query_type=contains&query=nsAutoCompleteController&date=&range_value=1&range_unit=months
Assignee | ||
Updated•17 years ago
|
Attachment #293786 -
Flags: review?(mano)
Assignee | ||
Comment 7•17 years ago
|
||
I've logged a spin off bug #409902, per mano, to figure out why mInput is null in HandleKeyNavigation().
No longer blocks: 409902
Summary: top crash @ nsAutoCompleteController::HandleStartComposition() → top crash @ nsAutoCompleteController::HandleStartComposition(), RevertTextValue() and HandleKeyNavigation()
Assignee | ||
Comment 8•17 years ago
|
||
Attachment #293786 -
Attachment is obsolete: true
Attachment #294614 -
Flags: review?(mano)
Attachment #293786 -
Flags: review?(mano)
Comment 9•17 years ago
|
||
Comment on attachment 294614 [details] [diff] [review] updated bulletproofing r=mano
Attachment #294614 -
Flags: review?(mano) → review+
Assignee | ||
Comment 10•17 years ago
|
||
fixed. Checking in toolkit/components/autocomplete/src/nsAutoCompleteController.cpp; /cvsroot/mozilla/toolkit/components/autocomplete/src/nsAutoCompleteController.cpp,v <-- nsAutoCompleteController.cpp new revision: 1.74; previous revision: 1.73 done
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
I ran separate queries for the three methods listed in comment 6, and http://crash-stats.mozilla.com couldn't find any current crashers. Verified FIXED
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•