Closed
Bug 65243
Opened 24 years ago
Closed 24 years ago
nsEventQueueImpl::RevokeEvents does not always revoke pending PL_events
Categories
(Core :: DOM: UI Events & Focus Handling, defect, P1)
Core
DOM: UI Events & Focus Handling
Tracking
()
VERIFIED
FIXED
mozilla0.8
People
(Reporter: kmcclusk, Assigned: danm.moz)
References
Details
(Keywords: crash)
If the pending event was placed in a mElderQueue, RevokeEvents will not revoke
the event.
This may causing some seemly random crashes because reflow events may come
through for nsPresShell instances that have been destroyed.
This bug is causing periodic failures in a patch I have created to delay
invalidate events using PL_events.
Just an unfortunate oversight. This should fix it. Kevin: is there a somewhat
reliable way to verify?
Index: nsEventQueue.cpp
===================================================================
RCS file: /cvsroot/mozilla/xpcom/threads/nsEventQueue.cpp,v
retrieving revision 3.27
diff -u -r3.27 nsEventQueue.cpp
--- nsEventQueue.cpp 2000/09/13 23:56:13 3.27
+++ nsEventQueue.cpp 2001/01/16 18:49:08
@@ -303,6 +303,11 @@
nsEventQueueImpl::RevokeEvents(void* owner)
{
PL_RevokeEvents(mEventQueue, owner);
+ if (mElderQueue) {
+ nsCOMPtr<nsIEventQueue> elder(do_QueryInterface(mElderQueue));
+ if (elder)
+ elder->RevokeEvents(owner);
+ }
return NS_OK;
}
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.8
Reporter | ||
Comment 3•24 years ago
|
||
I don't have an easy and reliable way to verify your fix.
You can install the patch in bug 36849
You should never see the following assertion:
NS_ASSERTION(PR_FALSE, "bad view manager asked to process invalidate event");
In the past, I was able to trigger the assertion by doing a query in bugzilla
then clicking on a bug in the list of bugs displayed by the query. If I hit the
forward and back buttons the assertion was triggered - sometimes. You may have
to run with the patch for several hours to verify that it is no longer a problem.
Reporter | ||
Comment 4•24 years ago
|
||
The patch looks good.
I'll install it and run with it today. I'll let you know if there are any problems.
Reporter | ||
Comment 5•24 years ago
|
||
I applied the patch and I haven't seen any problems with it. I no longer trigger
the assert which used to occur when RevokeEvents was failing.
Reporter | ||
Comment 6•24 years ago
|
||
The patch for this bug should fix a crash in the FrameManager with this stack trace:
FrameManager::HandlePLEvent(CantRenderReplacedElementEvent * 0x0694ef70) line
939 + 19 bytes
PL_HandleEvent(PLEvent * 0x0694ef70) line 576 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x00ac54e0) line 509 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x007d0286, unsigned int 49331, unsigned int 0,
long 11293920) line 1054 + 9 bytes
USER32! 77e7124c()
00ac54e0()
CC'ing rickg since he added the null check to nsFrameManager in an attempt to
fix the crasher.
//adding a ptr check since talkback is complaining about a crash here.
//I suspect that if the event->owner is really null, bad things will happen
//elsewhere.
Reporter | ||
Comment 7•24 years ago
|
||
Patch looks good. Works for me. I haven't seen any of the crashes that could be
attributed to RevokeEvents since I installed the patch.
r=kmcclusk@netscape.com
sr=buster
Please get this in asap. I suspect it may be the root cause of other bugs that
people are spending lots of time on, like bug 65800.
Severity: normal → critical
Priority: -- → P1
patch is in
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Comment 10•24 years ago
|
||
Bug 66370 may be this same bug - this one may need reopening (it appears the
patch had been applied, and I got the Assert() "bad view manager asked to
process invalidate event" when closing a window.
Comment 11•24 years ago
|
||
Comment 12•24 years ago
|
||
Reassigning QA Contact for all open and unverified bugs previously under Lorca's
care to Gerardo as per phone conversation this morning.
QA Contact: lorca → gerardok
Comment 13•24 years ago
|
||
*** Bug 59906 has been marked as a duplicate of this bug. ***
Updated•6 years ago
|
Component: Event Handling → User events and focus handling
You need to log in
before you can comment on or make changes to this bug.
Description
•