Step 10 of the procedure to play an animation requires us to abort the procedure if:
animation’s hold time is unresolved, and
aborted pause is false, and
animation does not have a pending playback rate,
Step 6 of the procedure ensures that for animations associated with non-finite timelines that are not already playing and don't have a pending playback rate, we always have a hold time.
This is not the case for equivalent animations associated with finite timelines (where enable seek is always false), and we instead just set the auto align start time flag to true.
This means that running the procedure on an animation which is associated with a finite timeline, does not having a pending playback rate and where aborted pause is false, we will always abort at step 10, before we schedule a pending play task.
Chromium and WebKit handle this by adding an additional condition that:
a) the associated timeline is not finite or;
b) that we don't have a pending auto alignment of the start time (i.e. start time is unresolved but the auto align start time flag is true)
respectively
Step 10 of the procedure to play an animation requires us to abort the procedure if:
Step 6 of the procedure ensures that for animations associated with non-finite timelines that are not already playing and don't have a pending playback rate, we always have a hold time.
This is not the case for equivalent animations associated with finite timelines (where
enable seekis always false), and we instead just set theauto align start timeflag to true.This means that running the procedure on an animation which is associated with a finite timeline, does not having a pending playback rate and where aborted pause is false, we will always abort at step 10, before we schedule a pending play task.
Chromium and WebKit handle this by adding an additional condition that:
a) the associated timeline is not finite or;
b) that we don't have a pending auto alignment of the start time (i.e. start time is unresolved but the
auto align start timeflag is true)respectively