Closed Bug 662186 Opened 13 years ago Closed 13 years ago

"###!!! ABORT: Expecting to be paused for pagehide before disconnect: 'mPauseState & nsSMILTimeContainer::PAUSE_PAGEHIDE', file content/smil/nsSMILAnimationController.cpp"...)

Categories

(Core :: SVG, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: smaug, Unassigned)

References

Details

The abort happens at least when using the patch for strong parent nodes.
The strong parent node is bug 335998
(This ABORT_IF_FALSE was added in bug 654015; marking dependency)
Blocks: 654015
layout/reftests/svg/as-image/limeInRed-noSVGDimensions-animViewBox.svg
calls the Disconnect() where the abort happens.
smaug initially asked in IRC if the assertion was bogus, given this comment in 
nsDocument::GetAnimationController():
> 5515   // [...](Skip this check for SVG-as-an-image documents, though,
> 5516   // because they don't get OnPageShow / OnPageHide calls).
http://mxr.mozilla.org/mozilla-central/source/content/base/src/nsDocument.cpp#5514

That comment is actually slightly misleading -- while it's true that SVG-as-an-image don't get the same OnPageShow/OnPageHide calls that other documents would get, we *do* actually fire one OnPageHide notification at image tear-down time, here:
>  99 SVGDocumentWrapper::DestroyViewer()
> 100 {
> 101   if (mViewer) {
> 102     mViewer->GetDocument()->OnPageHide(PR_FALSE, nsnull);
> 103     mViewer->Close(nsnull);
> 104     mViewer->Destroy();
http://mxr.mozilla.org/mozilla-central/source/modules/libpr0n/src/SVGDocumentWrapper.cpp#99

So I *think* this bug's ABORT_IF_FALSE should still hold for SVG-as-an-image documents...

I haven't been able to reproduce this, FWIW, with the latest patch (WIP v4) from bug 335998 applied.
Yup, that's the testcase I was using.  I loaded & reloaded &  shift-reloaded it repeatedly before comment 4, and I wasn't able to reproduce.  (though I did hit some "healthy" Disconnect() calls that satisfied the ABORT_IF_FALSE condition)

Can you reproduce from loading / reloading / shift-reloading background-resize-4?
I think I found the problem in my patch. I had wrong assumption that
I could unlink animationcontroller. I do need to do that, but apparently
I need to be more careful how.

I should still understand why pagehide isn't called before unlinking.
Is this then a security bug, or just a problem in your patch? Can you give it a security rating if the former?

Assuming this "blocks" bug 335998, one way or another you need to deal with it.
Blocks: strongparent
I think this is just a bug in my patch, and I've actually fixed it.
Sorry for the noise.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WORKSFORME
Group: core-security → core-security-release
Group: core-security-release
You need to log in before you can comment on or make changes to this bug.