Index: third_party/WebKit/LayoutTests/animations/add-keyframes-in-shadow-recalc.html |
diff --git a/third_party/WebKit/LayoutTests/animations/add-keyframes-in-shadow-recalc.html b/third_party/WebKit/LayoutTests/animations/add-keyframes-in-shadow-recalc.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ef481a3d5a0a7ca0426abc059fdda08c33120d7a |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/animations/add-keyframes-in-shadow-recalc.html |
@@ -0,0 +1,30 @@ |
+<!DOCTYPE html> |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+<div id="host"></div> |
+<div></div> |
+<div></div> |
+<div></div> |
+<div></div> |
+<script> |
+ test(() => assert_not_equals(window.internals, undefined, "Needs window.internals for testing."), "Check that window.internals is defined"); |
+ |
+ var root = host.attachShadow({mode:"open"}); |
+ root.innerHTML = "<div></div><div></div><div></div>"; |
+ host.offsetTop; |
+ |
+ test(() => { |
+ var sheet = document.createElement("style"); |
+ sheet.appendChild(document.createTextNode(` |
+ @keyframes unused { |
+ from { color: pink } |
+ to { color: orange } |
+ }`)); |
+ root.appendChild(sheet); |
+ // TODO(rune@opera.com): This count should be 1 when async stylesheet |
+ // update with RuleSet invalidations land. Currently we always do a |
+ // subtree recalc for stylesheet mutations in shadow trees. |
+ assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 5, |
+ "Recalc for shadow tree, including host and inserted style element."); |
+ }, "Check that adding @keyframes does not cause a style recalc of the host element when no animations are running."); |
+</script> |