blob: 8973954615fca3d0ced921e3dd7098ecda7b48fb [file] [log] [blame]
<!-- quirks mode -->
<script src="../../resources/js-test.js"></script>
<style>
:root, body { width: 100%; height: 100%; margin: 0 }
#container.wide { width: 5000px; height: 10px; }
#container.tall { height: 5000px; width: 10px; }
</style>
<div id="container"></div>
<script>
description("Style recalc when reading clientWidth/clientHeight of body in quirks mode.");
shouldBeDefined(window.internals);
function runClientSizeTest(testClass, expectWidthChange, expectHeightChange, expectedRecalcCount) {
var origWidth = document.body.clientWidth;
var origHeight = document.body.clientHeight;
internals.updateStyleAndReturnAffectedElementCount();
container.classList.add(testClass)
var afterWidth = document.body.clientWidth;
var afterHeight = document.body.clientHeight;
shouldBe("internals.updateStyleAndReturnAffectedElementCount()", ""+expectedRecalcCount);
if (expectWidthChange)
shouldBeGreaterThan(""+origWidth, ""+afterWidth);
else
shouldBe(""+origWidth, ""+afterWidth);
if (expectHeightChange)
shouldBeGreaterThan(""+origHeight, ""+afterHeight);
else
shouldBe(""+origHeight, ""+afterHeight);
container.classList.remove(testClass)
}
var originalOverlayScrollbars = internals.runtimeFlags.overlayScrollbarsEnabled;
internals.runtimeFlags.overlayScrollbarsEnabled = true;
runClientSizeTest("wide", false, false, 1);
runClientSizeTest("tall", false, false, 1);
internals.runtimeFlags.overlayScrollbarsEnabled = false;
runClientSizeTest("wide", false, true, 0);
runClientSizeTest("tall", true, false, 0);
internals.runtimeFlags.overlayScrollbarsEnabled = originalOverlayScrollbars;
</script>