Closed Bug 401137 Opened 17 years ago Closed 17 years ago

###!!! ASSERTION: RefreshURIList timer callbacks should only be RefreshTimer objects: 'rt', file C:/mozilla/docshell/base/nsDocShell.cpp, line 4594

Categories

(Core :: DOM: Navigation, defect)

x86
Windows XP
defect
Not set
minor

Tracking

()

RESOLVED FIXED

People

(Reporter: neil, Assigned: sayrer)

References

()

Details

(Keywords: regression)

Attachments

(1 file, 1 obsolete file)

rt is null because the timer that nsDocShell is checking is the one that's currently firing which now is nulled out by virtue of bug 330128.
I can't reproduce this by visiting the URL. Are there specific steps to reproduce?
Assignee: nobody → sayrer
OK, I can see this now, just have to wait for the delay.
Flags: blocking1.9?
Attachment #286338 - Flags: review?(bzbarsky)
I smelled this one coming... should have glared harder at the last patch, sorry.

/be
Comment on attachment 286338 [details] [diff] [review]
keep nsITimerCallbacks around in case someone wants it during ::Fire

Looks reasonable
Attachment #286338 - Flags: review?(bzbarsky) → review+
Attachment #286338 - Flags: superreview?(brendan)
Flags: blocking1.9? → blocking1.9+
Comment on attachment 286338 [details] [diff] [review]
keep nsITimerCallbacks around in case someone wants it during ::Fire

>+  else if (mFiring && mTimerCallbackWhileFiring)

Test just mTimerCallbackWhileFiring (could assert mFiring if mTimerCallbackWhileFiring, but it's vacuous enough in my book given the same source file and small-world/you-must-be-this-tall-to-hack problem space) and sr=me.

/be
Attachment #286338 - Flags: superreview?(brendan) → superreview+
Attachment #286338 - Attachment is obsolete: true
Attachment #286366 - Flags: approvalM9?
Comment on attachment 286366 [details] [diff] [review]
address brendan's comments

a=endgame drivers for landing for M9
Attachment #286366 - Flags: approvalM9? → approvalM9+
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Btw, a possibly simpler solution to this would be to keep an mResetCallback flag set to true when firing and false in Init*, and only reset the callback after firing if mResetCallback is still true. That way you won't have to hassle with keeping the callback alive during the fire call, or making sure that it's available when GetCallback is called.
Flags: in-testsuite?
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: