| <html> |
| <body> |
| <div id="outer" style="position: absolute; top: 50px; overflow: hidden; width: 100px; height: 100px; background-color: red;"> |
| <!-- removing this will make 'outer' the layout root --> |
| <div style="position: absolute; top: 0;"></div> |
| <div style="position: absolute; overflow: hidden; width: 100px; height: 100px;"> |
| <!-- removing this will make its parent a candidate layout |
| root. Since 'outer' is already a root, only the chain |
| from the parent to 'outer' should be marked. There are two |
| chains, positioned and normal (because of the static Y). |
| The bug was that because the existing root was the parent, |
| rather than a more distant ancestor on the normal chain, it |
| was skipped over and marking continued up to the view. --> |
| <div></div> |
| </div> |
| </div> |
| <script> |
| function test() { |
| document.body.offsetTop; |
| document.getElementById("outer").style.display = "none"; |
| } |
| |
| test(); |
| </script> |
| </body> |
| </html> |