Open Bug 601012 Opened 11 years ago Updated 10 years ago

Allow reftests to request that timed SMIL samples be disabled


(Testing :: Reftest, defect)

Not set


(Not tracked)


(Reporter: dholbert, Unassigned)


It would be helpful if we had a way to write a reftest that explicitly requests that we have **no** timed samples at all.

 <svg class="reftest-wait reftest-noTimedSMILSamples">

This would be helpful in two situations:
 1. when we want to test that we do the right thing even if a SMIL sample is delayed an arbitrary amount of time (since the SMIL spec doesn't guarantee any particular framerate)

 2. when we want to test something that's confounded by the firing of SMIL samples firing.

MOTIVATION: I just ran into a version of situation 2 over in bug 600574, an invalidation bug.  I wrote two versions of a reftest -- one with a viewBox attribute on the <svg> node, and one with a viewBox that's animated into existence using SMIL.  I expected both versions to fail before that bug's patch was applied, but instead, the SMIL-animated one mysteriously passed.  It turned out that it passed because it gets an invalidation during every timed SMIL sample.

So, I'd like to be able to say "Turn off timed SMIL samples for this test" to get around that issue. We'd still have synchronous samples for things like setCurrentTime() calls and base-value changes, but timed SMIL samples would be disabled.
Note that you can partly achieve this by slowing the refresh driver via the "layout.frame_rate" about:config pref.

However, I don't think that's what I want here, because...
 (a) the slowest rate you can request there is 1 FPS
 (b) slowing down the refresh driver has wide-ranging repercussions (e.g. it seems to delay repaints after script has modified the DOM)
You need to log in before you can comment on or make changes to this bug.