| OLD | NEW |
| 1 <!-- NOTE: Quirks mode document --> | 1 <!-- NOTE: Quirks mode document --> |
| 2 <style> | 2 <style> |
| 3 body { | 3 body { |
| 4 overflow: scroll; | 4 overflow: scroll; |
| 5 height: 500px; | 5 height: 500px; |
| 6 width: 500px; | 6 width: 500px; |
| 7 } | 7 } |
| 8 #spacer { | 8 #spacer { |
| 9 height: 10000px; | 9 height: 10000px; |
| 10 } | 10 } |
| 11 </style> | 11 </style> |
| 12 <html> | 12 <html> |
| 13 <body> | 13 <body> |
| 14 <div id=spacer></div> | 14 <div id=spacer></div> |
| 15 </body> | 15 </body> |
| 16 </html> | 16 </html> |
| 17 <script src="../../../resources/js-test.js"></script> | 17 <script src="../../../resources/js-test.js"></script> |
| 18 <script> | 18 <script> |
| 19 description('Verify that document.scrollingElement updates style in quirks m
ode without triggering layout'); | 19 description('Verify that document.scrollingElement updates style in quirks m
ode without triggering layout'); |
| 20 setPrintTestResultsLazily(); | 20 setPrintTestResultsLazily(); |
| 21 if (window.internals) | |
| 22 internals.settings.setScrollTopLeftInteropEnabled(true); | |
| 23 | 21 |
| 24 document.body.offsetTop; | 22 document.body.offsetTop; |
| 25 shouldBe("internals.needsLayoutCount()", "0"); | 23 shouldBe("internals.needsLayoutCount()", "0"); |
| 26 | 24 |
| 27 document.body.style.padding = "10px"; | 25 document.body.style.padding = "10px"; |
| 28 shouldBe("document.scrollingElement", "document.body"); | 26 shouldBe("document.scrollingElement", "document.body"); |
| 29 debug("Verifying layout hasn't been triggered"); | 27 debug("Verifying layout hasn't been triggered"); |
| 30 shouldBe("internals.needsLayoutCount()", "3"); | 28 shouldBe("internals.needsLayoutCount()", "3"); |
| 31 debug("But style update was"); | 29 debug("But style update was"); |
| 32 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "0"); | 30 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "0"); |
| 33 | 31 |
| 34 document.documentElement.style.overflow = "scroll"; | 32 document.documentElement.style.overflow = "scroll"; |
| 35 | 33 |
| 36 // Workaround crbug.com/486034 to foce body style to be considered dirty | 34 // Workaround crbug.com/486034 to foce body style to be considered dirty |
| 37 document.body.style.padding = "8px"; | 35 document.body.style.padding = "8px"; |
| 38 | 36 |
| 39 debug("Verify style change is reflected - body is now a real scrolling block
element"); | 37 debug("Verify style change is reflected - body is now a real scrolling block
element"); |
| 40 shouldBeNull("document.scrollingElement"); | 38 shouldBeNull("document.scrollingElement"); |
| 41 debug("Verifying layout still hasn't been triggered"); | 39 debug("Verifying layout still hasn't been triggered"); |
| 42 shouldBe("internals.needsLayoutCount()", "3"); | 40 shouldBe("internals.needsLayoutCount()", "3"); |
| 43 </script> | 41 </script> |
| OLD | NEW |