Closed Bug 548795 Opened 10 years ago Closed 8 years ago

SVG: <use>-clone of image does not appear on first pageload / full-reload, in SVG test "full-animate-elem-30-t"

Categories

(Core :: SVG, defect)

defect
Not set

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: wgianopoulos, Unassigned)

References

(Depends on 1 open bug, )

Details

Attachments

(1 file)

If you start with an empty cache, or do a shift-reload on this page:

http://www.w3.org/Graphics/SVG/Test/20061213/htmlObjectHarness/full-animate-elem-30-t.html

the jpeg image does not appear or animate.  If you then do a page reload the image appears and animates correctly.

I suspect the animation starts before the image has been decoded in the first case.

So, I guess animation start needs to be delayed until images are loaded and decoded.
Summary: SVG SMIL: Image file animation starts before image is decoded → SVG SMIL: Image animation starts before image is decoded
Bill, which build are you using?  Firefox 3.6, or current trunk?

It's not clear to me why exactly the animation would be delayed as you describe.  Can you cite the part of the spec that says that should happen?
(In reply to comment #1)
> Bill, which build are you using?  Firefox 3.6, or current trunk?

(I'm guessing current trunk, because 3.6 has SMIL disabled at build-time)
Using current trunk and my own trunk including the non-guarded patches in your SMIL patch queue I see this issue.

The first time i load the page the image does not appear but if i do a page reload it appears an correctly animates.
(In reply to comment #1)
> Bill, which build are you using?  Firefox 3.6, or current trunk?
> 
> It's not clear to me why exactly the animation would be delayed as you
> describe.  Can you cite the part of the spec that says that should happen?

This test, which is part of what i believe to be the official test suite does not display the image animation at all, but does if you merely reload the page.  I was not saying the spec says it should wait until the image is decoded before starting any animation, but it would seem that doing so would be a possible fix the issue i am seeing with the image animation portion of this test.

Please feel free to change the summary to more correctly describe the real issue here once that is determined.
Summary: SVG SMIL: Image animation starts before image is decoded → SVG SMIL: Image animation does not appear to work if image has not been decoded before the animation start time
I just changed the summary.  Does that seem to better describe the problem without jumping to a possibly incorrect solution?
(In reply to comment #3)
> The first time i load the page the image does not appear but if i do a page
> reload it appears an correctly animates.

Confirmed, using yesterday's m-c nightly:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.3a2pre) Gecko/20100225 Minefield/3.7a2pre

Image never appears on first page load, but it does on subsequent (non-full) reloads.
Actually, if I disable smil (via the 'svg.smil.enabled' about:config pref) and shift+reload that page, I get the same issue -- the image never appears -- while a normal reload shows the image.

So, I don't think this is a SMIL-related issue.  Updating summary.
Summary: SVG SMIL: Image animation does not appear to work if image has not been decoded before the animation start time → SVG: Image does not appear on first pageload / full-reload, in SVG test "full-animate-elem-30-t"
Summary: SVG: Image does not appear on first pageload / full-reload, in SVG test "full-animate-elem-30-t" → SVG: <use>-clone of image does not appear on first pageload / full-reload, in SVG test "full-animate-elem-30-t"
Here's a reduced testcase.  It just has an <image> element and a <use> element that references it.

The <image> shows up fine on a full-reload -- the <use> element does not.
Attachment #429178 - Attachment description: testcase 1 → testcase 1 (shift-reload after loading)
Interesting.  The <use> internally just clones the <image> so that we end up with another <image>, right?  And that second <image> should kick off its own load?
WARNING: Someone passed native anonymous content directly into frame construction.  Stop doing that!: file ../../../mozilla/layout/base/nsCSSFrameConstructor.cpp, line 5957

That's the <use>d image going from the "loading" state to a "know my size" state.  Timothy, weren't we going to make attempts to reframe native anon content just reframe the non-anonymous node?  That would help here, I think.
Yeah, that is bug 496011, which has landed. Without looking I think the problem here is the same problem as bug 536454, specifically bug 536454 comment 3.

We use the regular anonymous content creation path for SVG <use> except for one special case in that path where we don't set the native anonymous flag on the created content so bug 496011 can't catch this case.
Ah, indeed.  This is the same issue.
Depends on: 536454
Well it seems to be slightly different, in that the patch on bug 558663 fixes the issue here, whereas the testcase on bug 536454 crashes the browser with that patch installed.
(In reply to comment #13)
> Well it seems to be slightly different, in that the patch on bug 558663 fixes
> the issue here, whereas the testcase on bug 536454 crashes the browser with
> that patch installed.

Although that might be another underlying SMIL issue.
Depends on: 558663
Duplicate of this bug: 575210
Seems to work now both trunk and 7.0
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.