blob: 98e6ef8e63c69cfde0d4ebb65e7afbff6891819f [file] [log] [blame]
<!DOCTYPE html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<div id="outer">
<div id="inner">
<div id="innermost">
</div>
</div>
</div>
<script>
test(function(t)
{
if (!window.internals)
assert_unreached('This test requires window.internals.');
outer.style.fontSize = "16px";
innermost.style.fontSize = "1em";
inner.offsetTop; // Force recalc.
assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 0);
assert_equals(getComputedStyle(outer).fontSize, "16px");
assert_equals(getComputedStyle(inner).fontSize, "16px");
assert_equals(getComputedStyle(innermost).fontSize, "16px");
inner.offsetTop; // Force recalc.
outer.style.fontSize = '10px';
assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 3);
assert_equals(getComputedStyle(outer).fontSize, "10px");
assert_equals(getComputedStyle(inner).fontSize, "10px");
assert_equals(getComputedStyle(innermost).fontSize, "10px");
inner.offsetTop; // Force recalc.
inner.style.fontSize = '16px';
assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 2);
assert_equals(getComputedStyle(outer).fontSize, "10px");
assert_equals(getComputedStyle(inner).fontSize, "16px");
assert_equals(getComputedStyle(innermost).fontSize, "16px");
}, "Changing font-size (a non-independent inherited property) in a way that results in an identical ComputedStyle still triggers a style recalc for its children.");
test(function(t)
{
if (!window.internals)
assert_unreached('This test requires window.internals.');
outer.style.fontWeight = "normal";
innermost.style.fontWeight = "lighter";
inner.offsetTop; // Force recalc.
assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 0);
assert_equals(getComputedStyle(outer).fontWeight, "400");
assert_equals(getComputedStyle(inner).fontWeight, "400");
assert_equals(getComputedStyle(innermost).fontWeight, "100");
inner.offsetTop; // Force recalc.
inner.style.fontWeight = 'bolder';
assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 2);
assert_equals(getComputedStyle(outer).fontWeight, "400");
assert_equals(getComputedStyle(inner).fontWeight, "700");
assert_equals(getComputedStyle(innermost).fontWeight, "400");
inner.offsetTop; // Force recalc.
outer.style.fontWeight = 'bold';
assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 3);
assert_equals(getComputedStyle(outer).fontWeight, "700");
assert_equals(getComputedStyle(inner).fontWeight, "900");
assert_equals(getComputedStyle(innermost).fontWeight, "700");
}, "Changing font-weight (a non-independent inherited property) in a way that results in an identical ComputedStyle still triggers a style recalc for its children.");
</script>