blob: 10caaa74118d087409743b1de49164369a30e3ec [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true ] -->
<html>
<head>
<title>Tests that with nested scrollers, we trigger geometry updates on relative layers within the correct ancestor to get backing store attachment right.</title>
<style>
main {
display: flex;
position: absolute;
width: 700px;
height: 500px;
border: 1px solid black;
}
.left {
flex-basis: 20%;
flex-grow: 0;
min-width: 16rem;
}
.main {
flex-grow: 1;
flex-shrink: 1;
min-width: 20rem;
}
.panel {
display: flex;
flex-direction: column;
flex-shrink: 0;
overflow: hidden;
}
.scroller {
overflow: scroll;
}
.article-content {
margin: 0 auto;
max-width: 60rem;
overflow: hidden;
}
.content {
position: relative;
background-color: silver;
height: 1000px;
}
.relative-box {
position: relative;
height: 200px;
margin: 300px 10px;
background-color: silver;
border: 1px solid gray;
}
</style>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
window.addEventListener('load', () => {
setTimeout(() => {
let scroller = document.getElementById('target');
scroller.scrollTo(0, 1000);
if (window.internals)
document.getElementById('layers').innerText = window.internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_CLIPPING + internals.LAYER_TREE_INCLUDES_BACKING_STORE_ATTACHED);
if (window.testRunner)
testRunner.notifyDone();
}, 0);
}, false);
</script>
</head>
<body>
<main>
<nav class="left panel">
<div class="scroller">
<div class="content">
</div>
</div>
</nav>
<article class="main panel">
<div id="target" class="scroller">
<div class="article-content">
<div class="relative-box">
</div>
<div class="relative-box">
</div>
<div class="relative-box">
</div>
<div class="relative-box">
</div>
<div class="relative-box">
</div>
</div>
</div>
</article>
</main>
<pre id="layers"></pre>
</body>
</html>