OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <div id="outerStrict" style="contain:strict;"> |
| 3 <div id="multicol" style="columns:1; writing-mode:vertical-lr;"> |
| 4 <div id="multicolChild"></div> |
| 5 <div id="notMarkedForLayout"> |
| 6 <div id="innerStrict" style="contain:strict;"> |
| 7 <table> |
| 8 <thead id="thead"></thead> |
| 9 <tbody> |
| 10 <tr></tr> |
| 11 </tbody> |
| 12 </table> |
| 13 </div> |
| 14 </div> |
| 15 </div> |
| 16 </div> |
| 17 <script src="../../resources/testharness.js"></script> |
| 18 <script src="../../resources/testharnessreport.js"></script> |
| 19 <script> |
| 20 test(() => { |
| 21 document.body.offsetTop; |
| 22 // Will mark everything from #thead up to #innerStrict for layout |
| 23 document.getElementById("thead").style.display = "none"; |
| 24 // Will mark everything from #multicolChild to #outerStrict for layout |
| 25 document.getElementById("multicolChild").style.display = "none"; |
| 26 |
| 27 // At this point #notMarkedForLayout will remain not marked for layout, |
| 28 // while both its parent and its child will be marked for |
| 29 // layout. #innerStrict and #outerStrict can be laid out as separate |
| 30 // subtrees in the next layout phase. #multicol establishes an |
| 31 // orthogonal writing mode root. Writing mode roots need to be laid out |
| 32 // before their ancestors (in order to get min/max intrinsic inline |
| 33 // sizes correct). It is now important that the three objects |
| 34 // (#innerStrict, #multicol, #outerStrict) be laid out in depth-first |
| 35 // order, so that we don't skip over subtrees that need layout. |
| 36 }, "no crash or assertion failure"); |
| 37 </script> |
OLD | NEW |