Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[css-animations] Upstream test for WebKit bug 229437 #32641

Merged
merged 1 commit into from Feb 1, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -0,0 +1,36 @@
<!doctype html>
<meta charset=utf-8>
<title>Changes to @keyframes rules</title>
<link rel="help" href="https://drafts.csswg.org/css-animations-1/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/testcommon.js"></script>
<div id="log"></div>
<script>
'use strict';

test(t => {
const div = addDiv(t);

const originalStyleElement = document.createElement("style");
originalStyleElement.textContent = '@keyframes anim-custom { from, to { left: 100px } }';
document.head.appendChild(originalStyleElement);

t.add_cleanup(() => originalStyleElement.remove());

div.style.animation = 'anim-custom 100s';

const computedStyle = getComputedStyle(div);
assert_equals(computedStyle.left, "100px", "The initial @keyframes rule is applied");

// Remove the original style element and add a new one with an animation with the same name.
const newStyleElement = document.createElement("style");
newStyleElement.textContent = '@keyframes anim-custom { from, to { left: 200px } }';
originalStyleElement.replaceWith(newStyleElement);

t.add_cleanup(() => newStyleElement.remove());

assert_equals(computedStyle.left, "200px", "The new @keyframes rule is applied");
}, 'Replacing a <style> element with a new <style> element while both containing the different @keyframes rule with the same name dynamically updates running animations.');

</script>