On 04/18/2016 05:12 AM, Brian Birtles wrote:
In Firefox 48 I intend to turn Element.animate on by default.

We have been developing the Web Animations API behind the 
dom.animations-api.core.enabled preference and have introduced the
dom.animations-api.element-api.enabled preference for the subset of the API 
that we intend to ship at this time.

Chrome have been shipping a very similar subset of the API starting with Chrome 
36[1] and have recently updated their implementation to match the
subset we plan to ship.[2]

WebKit[3] and Edge[4] both list this as "under consideration" although some 
implementation work has begun in WebKit.[5]

This feature was previously discussed in this "intent to implement" thread: 
https://groups.google.com/d/topic/mozilla.dev.platform/3EXBgp26rJs/discussion

Bug to turn on by default: https://bugzilla.mozilla.org/show_bug.cgi?id=1245000
Link to standard: https://w3c.github.io/web-animations/#dom-animatable-animate

The subset of the API we intend to ship is described in the bug above, a 
summary of which I have copied to the end of this mail. We do not intend to
ship the 'finished' promise at this time due to concern that this should use a 
cancelable promise.[6]

Does blink ship 'finished' promise?

Are there good wpt tests where we pass the same tests as other implementers?



Best regards,

Brian

[1] https://www.chromestatus.com/features/4854343836631040, 
https://www.chromestatus.com/features/5633748733263872
[2] https://www.chromestatus.com/features/5650817352728576, 
https://www.chromestatus.com/features/5663463749713920
[3] https://webkit.org/status/#specification-web-animations
[4] 
https://developer.microsoft.com/en-us/microsoft-edge/platform/status/webanimationsjavascriptapi
[5] https://lists.webkit.org/pipermail/webkit-dev/2015-November/027771.html
[6] https://github.com/w3c/web-animations/issues/141


Proposed API subset:

enum AnimationPlayState { "idle", "pending", "running", "paused", "finished" };

// 'Animation' will not be exposed on the global unless Element.animate is 
called
What does this mean? Per spec 'Animation' should be exposed in the global.



interface Animation : EventTarget {
            attribute DOMString          id;
            attribute double?            startTime;
            attribute double?            currentTime;
            attribute double             playbackRate;
   readonly attribute AnimationPlayState playState;
   readonly attribute Promise<Animation> ready;
            attribute EventHandler       onfinish;
            attribute EventHandler       oncancel;
   void cancel ();
   void finish ();
   void play ();
   void pause ();
   void reverse ();
};

enum FillMode {
   "none",
   "forwards",
   "backwards",
   "both",
   "auto"
};

enum PlaybackDirection {
   "normal",
   "reverse",
   "alternate",
   "alternate-reverse"
};

dictionary AnimationEffectTimingProperties {
   double                              delay = 0.0;
   double                              endDelay = 0.0;
   FillMode                            fill = "auto";
   double                              iterationStart = 0.0;
   unrestricted double                 iterations = 1.0;
   (unrestricted double or DOMString)  duration = "auto";
   PlaybackDirection                   direction = "normal";
   DOMString                           easing = "linear";
};

// These members are read but not implemented
dictionary KeyframeEffectOptions : AnimationEffectTimingProperties {
   IterationCompositeOperation iterationComposite = "replace";
   CompositeOperation          composite = "replace";
   DOMString                   spacing = "distribute";
};

dictionary KeyframeAnimationOptions : KeyframeEffectOptions {
   DOMString id = "";
};

[NoInterfaceObject]
interface Animatable {
   Animation animate(object? frames,
                     optional (unrestricted double or KeyframeAnimationOptions)
                       options);
};

Element implements Animatable;

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to