Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/fast/dom/body-quirk-client-size.html |
| diff --git a/third_party/WebKit/LayoutTests/fast/dom/body-quirk-client-size.html b/third_party/WebKit/LayoutTests/fast/dom/body-quirk-client-size.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2a417777b2300ca843d050f724d04a5d9b6c4866 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/fast/dom/body-quirk-client-size.html |
| @@ -0,0 +1,52 @@ |
| +<script src="../../resources/js-test.js"></script> |
|
esprehn
2016/05/02 19:02:12
Can you add a comment at the top like <!-- quirks
rune
2016/05/02 22:48:21
Done.
|
| +<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.settings.setOverlayScrollbarsEnabled(true); |
| + |
| + runClientSizeTest("wide", false, false, 1); |
| + runClientSizeTest("tall", false, false, 1); |
| + |
| + internals.settings.setOverlayScrollbarsEnabled(false); |
| + |
| + runClientSizeTest("wide", false, true, 0); |
| + runClientSizeTest("tall", true, false, 0); |
| + |
| + internals.settings.setOverlayScrollbarsEnabled(originalOverlayScrollbars); |
| +</script> |