Firefox3.1/SMIL Security Review: Difference between revisions

Line 131: Line 131:
* can specify lists of begin and end times
* can specify lists of begin and end times
** what if they don't have the same number of elements?
** what if they don't have the same number of elements?
*** <b>dholbert</b>: I misspoke about this during the security review.  What actually happens is this:
**** An animation needs one or more "begin" values and exactly one "dur" value. 
**** As time passes, we'll (re)start the animation each time we hit a "begin" value. 
**** If there's an "end" list, then each time we cross a time in the "end" list, we interrupt the current interval of the animation (if it's playing). (Upon interrupting, we either freeze the animation or remove its effects, depending on the value of the "fill" attribute)
**** Moreover, the largest "end" value defines a "final" end, at which point any subsequent "begin" values will not have any effect. (Note that you can get around this by putting the special string "indefinite" in the end list -- this value is never reached in time.)
*** So, the number of "begin" vs. number of "end" elements doesn't really matter.  Hopefully this is more clear.
** what if they are misordered? Do they match by index in the given lists or do the begins run until the next specified end?
** what if they are misordered? Do they match by index in the given lists or do the begins run until the next specified end?
*** <b>dholbert</b>: List-order doesn't matter in the begin / end lists -- only temporal order.  Basically, each begin runs until the next specified end, unless we're already past the latest-in-time end value. (See answer to previous question for more detail)
* integer overflows if images get too big? translated way offscreen?
* integer overflows if images get too big? translated way offscreen?
** SVG keeps things in floating point, cairo's interface is floating point
** SVG keeps things in floating point, cairo's interface is floating point
Confirmed users
489

edits