Closed Bug 537987 Opened 15 years ago Closed 7 months ago

SMIL: Animating away from "display:none" doesn't update <use>-cloned elements

Categories

(Core :: SVG, defect)

defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: dholbert, Unassigned)

References

Details

Attachments

(5 files)

Attached image testcase 1
STEPS TO REPRODUCE: Load testcase EXPECTED RESULTS: There should be two blinking rects. ACTUAL RESULTS: The orange rect (a <use> clone of the other one) disappears, and then never blinks back.
Here's a reference case. It simulates animation by tweaking the 'style' attribute with javascript. This version shows expected results. (no bug)
Attached image testcase 2
Here's a simpler testcase -- here, the rect has style="display: none", and there's an animation that immediately takes effect to counteract that. However, the lower rect (the cloned one) is still missing.
Attachment #420140 - Attachment description: reference case 1 → reference case 1 (using javascript)
Here's a reference case for testcase 2. The only difference vs the testcase is that I use 'visibility' instead of 'display', and that fixes the bug.
Severity: normal → S3

Testcase 2 seems OK now. Testcase 1 however seems to have changed because neither return any more for me. Might be worth finding a regression range for that changed functionality, assuming I have it right and maybe obsoleting testcase 2.

Flags: needinfo?(dholbert)

For testcase 1, it's gone through several changes.

Originally, the blue rect would blink off and on, and the orange rect would stay visible (never blinking).

Between Nightly 2018-05-04 and 2018-05-05, we changed to have the blue rect simply blink out of existence and never come back (but the orange rect stayed solidly visible as before). Pushlog for that change:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=5207b1392b11db534550a5eb801302e6dbb58f95&tochange=9a2eac450781b026b42c44ca8f0f92bb0846b6e2
(Maybe from bug 1458814 or bug 1459436?)

Between Nightly 2018-07-19 and 2018-07-20, we changed to have the orange rect also blink out of existence and never come back (just like the blue rect does now). Pushlog for that change:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=690cb3015db6645b335ac4835a50073cb6a3e23c&tochange=6eec814dea789707d04f42bbb01097d44532e2a9
That was maybe from bug 1450250 (and seems like strictly an improvement, because now we're actually animating the use clone in the same way that we animate its target).

After that change (up to and including current Nightly 2024-04-17), both rects blink out of existence and never come back.

Flags: needinfo?(dholbert)

If I add an explicit from="initial" to the animation in testcase 3, then both rects blink off and on, matching EXPECTED RESULTS in comment 0 (rather than disappearing forever).

Firefox, Chromium, and WebKit are all interoperable on this behavior (and on having testcase 1's content disappear forever).

I'm not entirely sure why we've got this behavior when from= is omitted (i.e. I'd expect the underlying value for the implicit "from" to be accurately captured), but maybe it's just that we don't have a way to synthesize the underlying value when the frame is display:none?

Anyway, given that we're interoperable on all the testcases here, I'm tempted to just close this as WORKSFORME with a dependency on the bugs referenced above.

Status: NEW → RESOLVED
Closed: 7 months ago
Depends on: 1450250
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: