blob: 711924e169d36b9233c6618765e08bc9f2f75fa0 [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, "normal");
assert_equals(getComputedStyle(inner).fontWeight, "normal");
assert_equals(getComputedStyle(innermost).fontWeight, "100");
inner.offsetTop; // Force recalc.
inner.style.fontWeight = 'bolder';
assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 2);
assert_equals(getComputedStyle(outer).fontWeight, "normal");
assert_equals(getComputedStyle(inner).fontWeight, "bold");
assert_equals(getComputedStyle(innermost).fontWeight, "normal");
inner.offsetTop; // Force recalc.
outer.style.fontWeight = 'bold';
assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 3);
assert_equals(getComputedStyle(outer).fontWeight, "bold");
assert_equals(getComputedStyle(inner).fontWeight, "900");
assert_equals(getComputedStyle(innermost).fontWeight, "bold");
}, "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>