W3C home > Mailing lists > Public > public-fx@w3.org > July to September 2016

[web-animations] Intent to publish: Updated WD of Web Animations

From: Brian Birtles <bbirtles@mozilla.com>
Date: Tue, 13 Sep 2016 13:19:16 +0900
To: "public-fx@w3.org" <public-fx@w3.org>
Message-ID: <a7a90b39-c454-4303-71ce-9fcba641a477@mozilla.com>

For the first time in history specberus and bikeshed agree on the format 
of the Web Animations spec AND I have a publication token. I intend to 
celebrate this occasion by publishing another working draft of this 

Furthermore, now that this more streamlined publication system is 
(hopefully) working, I intend to update the WD more frequently and use 
this mail as a standing group decision.

The version I intend to publish is here:


A summary of notable changes since the previous working draft is 
included at the end of this mail.

Best regards,


The following changes have been made since the 7 July 2015 Working Draft:

* Greatly simplified the procedure to set the timeline of an animation
   to be more predictable and consistent.
* Made the procedure to set the animation start time set the did seek
   flag to true.
* Made the procedure to play an animation take an auto-rewind flag so
   that CSS Animations can re-use this procedure without invoking the
   rewinding behavior.
* Made the procedure to pause an animation preserve the hold time when
   completing the pause operation if it is already set. This fixes a bug
   where pausing a finished animation would case the current time to
* Made the procedure to update an animation’s finished state
   conditionally check the finished state in an asynchronous manner based
   on the synchronously notify flag.
   - Also, made this procedure only replace the current finished promise
     if it has already been resolved.
   - Further fixed some bugs in the handling of negative playback rates.
* Made the procedure to finish an animation correctly handle
   pause-pending animations and delay updating the finished state until
   the end of the procedure.
* Reverted the change to the definition of an animation effect’s end
   time to no longer clamp the time to zero.
* Reworked the definition of animation phase boundaries to reflect the
   playback rate when at a phase boundary (see §3.6.5 Animation effect
   phases and states).
* Also reworked the definition of animation phase boundaries to make
   them line up with finish times to avoid a bug where a finished
   animation playing in reverse would ignore the fill mode (see §3.6.5
   Animation effect phases and states and issue #166).
* Significantly reworked the core animation effect timing calculations
   to operate on a fraction value instead of a time-based value. This
   makes a number of edge cases well-defined and simplifies a lot of the
   extra handling previously required for zero-duration animations.
* Updated the procedure to calculate the current iteration to correctly
   handle zero-duration animation effects that are in the after phase.
* Added §3.5.20 Animation events.
* Removed ability to animate DOM attributes since the number of SVG
   attributes that are commonly animated that have not been promoted to
   CSS properties is steadily shrinking and the remaining attributes are
   not well supported and introduce significant complexity (e.g. the
   class attribute).
* Replaced the originTime parameter to the DocumentTimeline()
   constructor with a DocumentTimelineOptions dictionary parameter so
   that the set of options can be more easily extended by other
* Removed the clone() method from KeyframeEffectReadOnly and added the
   KeyframeEffectReadOnly(source) and KeyframeEffect(source) constructors
* Renamed “animation behavior” to animation type (the existing
   “animation type” concept was simultaneously renamed to animation class
   as mentioned below).
* Specified the effect value of a keyframe effect when the iteration
   progress is unresolved (see §4.4.4 The effect value of a keyframe
* Renamed “animation type” to animation class.
* Updated the Animation interface:
   - Made the Animation interface inherit from EventTarget.
   - Updated the Animation() constructor so that if a timeline is not
     provided, the default document timeline of the active document is
   - Added the id attribute.
   - Added the onfinish and oncancel attributes for registering animation
     event handlers.
   - Removed the behavior that required currentTime to be null when the
     animation has a pending pause task.
* Replaced the computedTiming parameter on the AnimationEffectReadOnly
   interface with a getComputedTiming() method.
* Changed the handling of timing and options parameters such that
   invalid values are no longer stored but, instead, cause a TypeError
   exception to be thrown.
* Changed the type of the progress member of the
   ComputedTimingProperties dictionary from unrestricted double? to
* Renamed getFrames() and setKeyframes() on the KeyframeEffectReadOnly
   and KeyframeEffect interfaces to getKeyframes() and setKeyframes()
   respectively, and renamed the frames argument to keyframes.
* Rewrote the handling of keyframes arguments (see §5.10.3 Processing
   a keyframes argument and the definition of getKeyframes()) to be valid
   - In doing this the Keyframe, PropertyIndexedKeyframe and
     ComputedKeyframe dictionaries have been replaced with BaseKeyframe,
     BasePropertyIndexedKeyframe, and BaseComputedKeyframe respectively.
   - Handling of invalid values has been adjusted to preserve invalid
     values. The handling of these values was previously inconsistent.
* Made the composite member of BaseKeyframe and BaseComputedKeyframe is
   no longer nullable. Rather than using a null value, the absence of
   this member indicates that the keyframe effect’s composite operation
   should be used.
* Made the animate() method of the Animatable interface take
   a KeyframeAnimationOptions parameter so that the id of an Animation
   can be specified.
* Corrected the type of options parameter to the animate() method to use
   an unrestricted double rather than a double.
* Moved getAnimations() from the AnimationTimeline interface to the
   Document interface.
Received on Tuesday, 13 September 2016 04:19:44 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:49:57 UTC