- From: Antoine Quint via GitHub <sysbot+gh@w3.org>
- Date: Mon, 02 Dec 2019 15:12:15 +0000
- To: public-css-archive@w3.org
graouts has just created a new issue for https://github.com/w3c/csswg-drafts:
== [web-animations-1] ==
The test [timing-model/timelines/update-and-send-events.html](https://github.com/web-platform-tests/wpt/blob/master/web-animations/timing-model/timelines/update-and-send-events.html) has this sub-test:
```javascript
promise_test(async t => {
createStyle(t, { '@keyframes anim': '' });
const div = createDiv(t);
let receivedEvents = [];
function receiveEvent(type, timeStamp) {
receivedEvents.push({ type, timeStamp });
}
div.onanimationcancel = event => receiveEvent(event.type, event.timeStamp);
div.ontransitioncancel = event => receiveEvent(event.type, event.timeStamp);
getComputedStyle(div).marginLeft;
div.style = 'animation: anim 100s; ' +
'transition: margin-left 100s; ' +
'margin-left: 100px;';
div.animate(null, 100 * MS_PER_SEC);
const animations = div.getAnimations();
animations.forEach(anim => {
anim.oncancel = event => {
receiveEvent(animationType(anim) + ':' + event.type, event.timeStamp);
};
});
await Promise.all(animations.map(anim => anim.ready));
const timeInAnimationReady = document.timeline.currentTime;
// Call cancel() in reverse composite order. I.e. canceling for script
// animation happen first, then for CSS animation and CSS transition.
// 'cancel' events for these animations should be sorted by composite
// order.
animations.reverse().forEach(anim => anim.cancel());
// requestAnimationFrame callback which is actually the _same_ frame since we
// are currently operating in the `ready` callbac of the animations which
// happens as part of the "Update animations and send events" procedure
// _before_ we run animation frame callbacks.
await waitForAnimationFrames(1);
assert_times_equal(timeInAnimationReady, document.timeline.currentTime,
'A rAF callback should happen in the same frame');
assert_array_equals(receivedEvents.map(event => event.type),
// This ordering needs more clarification in the spec, but the intention is
// that the cancel playback event fires before the equivalent CSS cancel
// event in each case.
[ 'CSSTransition:cancel', 'CSSAnimation:cancel', 'ScriptAnimation:cancel',
'transitioncancel', 'animationcancel' ],
'cancel events should be sorted by composite order');
}, 'Sorts cancel events by composite order');
```
This issue is about this comment:
```javascript
// This ordering needs more clarification in the spec, but the intention is
// that the cancel playback event fires before the equivalent CSS cancel
// event in each case.
```
I don't see any text in the Web Animations spec or the CSS Transitions and CSS Animations specs that specifies that, if I understand correctly, events of type `AnimationPlaybackEvent` sort before events of type `TransitionEvent` or `AnimationEvent`.
If that's the intention, we should make that clear.
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/4553 using your GitHub account
Received on Monday, 2 December 2019 15:12:17 UTC