| Summary: | [css-transitions] setting transition-property to "none" does not disassociate CSS Transition from owning element | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Antoine Quint <graouts> |
| Component: | Animations | Assignee: | Antoine Quint <graouts> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | dino, graouts, koivisto, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar, WebExposed, WPTImpact |
| Version: | Safari Technology Preview | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Bug Depends on: | |||
| Bug Blocks: | 237331 | ||
Pull request: https://github.com/WebKit/WebKit/pull/6465 Committed 256666@main (7821448df0f4): <https://commits.webkit.org/256666@main> Reviewed commits have been landed. Closing PR #6465 and removing active labels. |
We are failing a subtest in web-animations/timing-model/timelines/update-and-send-events-replacement.html: promise_test(async t => { // Setup transition const div = createDiv(t); div.style.opacity = '0'; div.style.transition = 'opacity 1ms'; getComputedStyle(div).opacity; div.style.opacity = '1'; const cssTransition = div.getAnimations()[0]; cssTransition.effect.updateTiming({ fill: 'forwards' }); // Break tie to markup div.style.transitionProperty = 'none'; assert_equals(cssTransition.playState, 'idle'); // Restart transition cssTransition.play(); const scriptAnimation = div.animate( { opacity: 1 }, { duration: 1, fill: 'forwards', } ); await scriptAnimation.finished; assert_equals(cssTransition.replaceState, 'removed'); assert_equals(scriptAnimation.replaceState, 'active'); }, 'Removes a CSS transition no longer tied to markup'); We fail the second-to-last assertion because we do not correctly disassociate a CSS Transition from its owning element when transition-property is set to "none" and thus do not mark that transition as replaceable.