| Index: LayoutTests/fast/css/invalidation/webkit-any-universal.html | 
| diff --git a/LayoutTests/fast/css/invalidation/webkit-any-universal.html b/LayoutTests/fast/css/invalidation/webkit-any-universal.html | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..4f68f78452c4705420b36e9106ad249f3bc41c9c | 
| --- /dev/null | 
| +++ b/LayoutTests/fast/css/invalidation/webkit-any-universal.html | 
| @@ -0,0 +1,52 @@ | 
| +<!DOCTYPE html> | 
| +<script src="../../../resources/testharness.js"></script> | 
| +<script src="../../../resources/testharnessreport.js"></script> | 
| +<style> | 
| +.t1 :-webkit-any(*, .dummy), | 
| +.t2 :-webkit-any(:-webkit-any(.dummy, *), .dummy), | 
| +.t3 :-webkit-any(:hover, dummy) { background-color: rgb(0, 128, 0); } | 
| + | 
| +#r3 { width: 10px; height: 10px } | 
| +</style> | 
| +<div id="t1"> | 
| +    <div id="r1"></div> | 
| +</div> | 
| +<div id="t2"> | 
| +    <div id="r2"></div> | 
| +</div> | 
| +<div id="t3"> | 
| +    <div id="r3"></div> | 
| +</div> | 
| +<script> | 
| +document.body.offsetTop; | 
| + | 
| +test(function() { | 
| +    assert_true(!!window.internals, "This test only works with internals exposed present"); | 
| +    assert_equals(getComputedStyle(r1).backgroundColor, "rgba(0, 0, 0, 0)", "Background color should initially be transparent"); | 
| + | 
| +    t1.className = "t1"; | 
| +    assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 2, "Subtree style recalc"); | 
| +    assert_equals(getComputedStyle(r1).backgroundColor, "rgb(0, 128, 0)", "Background color is green after class change"); | 
| +}, ":-webkit-any() with universal selector"); | 
| + | 
| +test(function() { | 
| +    assert_true(!!window.internals, "This test only works with internals exposed present"); | 
| +    assert_equals(getComputedStyle(r2).backgroundColor, "rgba(0, 0, 0, 0)", "Background color should initially be transparent"); | 
| + | 
| +    t2.className = "t2"; | 
| +    assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 2, "Subtree style recalc"); | 
| +    assert_equals(getComputedStyle(r2).backgroundColor, "rgb(0, 128, 0)", "Background color is green after class change"); | 
| +}, "Nested :-webkit-any() with universal selector"); | 
| + | 
| +test(function() { | 
| +    assert_true(!!window.internals, "This test only works with internals exposed present"); | 
| +    assert_true(!!window.eventSender, "This test only works with eventSender present"); | 
| + | 
| +    eventSender.mouseMoveTo(r3.offsetLeft + 1, r3.offsetTop + 1); | 
| +    assert_equals(getComputedStyle(r3).backgroundColor, "rgba(0, 0, 0, 0)", "Background color should initially be transparent"); | 
| + | 
| +    t3.className = "t3"; | 
| +    assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 2, "Subtree style recalc"); | 
| +    assert_equals(getComputedStyle(r3).backgroundColor, "rgb(0, 128, 0)", "Background color is green after class change"); | 
| +}, ":-webkit-any() with universal :hover selector"); | 
| +</script> | 
|  |