moebius#138: Optimize operations on root of deeply-nested frame tree

https://github.com/MoonchildProductions/moebius/pull/138
This commit is contained in:
janekptacijarabaci 2018-04-24 21:39:13 +02:00 • committed by Roy Tam
commit 85692a1198
23 changed files with 651 additions and 40 deletions

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<title>
Reference case with body and html *independently* scrollable.
</title>
<style>
html {
overflow: scroll;
}
body {
overflow: scroll;
}
</style>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<title>
Testcase with body and html *independently* scrollable,
with body's "overflow" set dynamically.
</title>
<style>
html {
overflow: scroll;
}
</style>
<script>
function doTest() {
document.body.style.overflow = "scroll";
document.documentElement.removeAttribute("class");
}
window.addEventListener("MozReftestInvalidate", doTest);
</script>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<title>
Testcase with body and html *independently* scrollable,
with html's "overflow" set dynamically.
</title>
<style>
body {
overflow: scroll;
}
</style>
<script>
function doTest() {
document.documentElement.style.overflow = "scroll";
document.documentElement.removeAttribute("class");
}
window.addEventListener("MozReftestInvalidate", doTest);
</script>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<title>
Testcase with body and html *independently* scrollable,
with both html & body's "overflow" set dynamically.
</title>
<script>
function doTest() {
document.documentElement.style.overflow = "scroll";
document.body.style.overflow = "scroll";
document.documentElement.removeAttribute("class");
}
window.addEventListener("MozReftestInvalidate", doTest);
</script>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<title>
Reference case with the root viewport scrollable, via styles on html node.
</title>
<style>
html {
overflow: scroll;
}
</style>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<title>
Testcase with only one of [html,body] being scrollable,
after body's "overflow" is reset dynamically.
</title>
<style>
html {
overflow: scroll;
}
body {
overflow: scroll;
}
</style>
<script>
function doTest() {
document.body.style.overflow = "visible";
document.documentElement.removeAttribute("class");
}
window.addEventListener("MozReftestInvalidate", doTest);
</script>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<title>
Testcase with only one of [html,body] being scrollable,
after html's "overflow" is reset dynamically.
</title>
<style>
html {
overflow: scroll;
}
body {
overflow: scroll;
}
</style>
<script>
function doTest() {
document.documentElement.style.overflow = "visible";
document.documentElement.removeAttribute("class");
}
window.addEventListener("MozReftestInvalidate", doTest);
</script>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<title>
Testcase with only one of [html,body] being scrollable,
with their "overflow" styles being dynamically swapped.
</title>
<style>
html {
overflow: scroll;
}
</style>
<script>
function doTest() {
document.documentElement.style.overflow = "visible";
document.body.style.overflow = "scroll";
document.documentElement.removeAttribute("class");
}
window.addEventListener("MozReftestInvalidate", doTest);
</script>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<title>
Testcase with only one of [html,body] being scrollable,
with their "overflow" styles being dynamically swapped.
</title>
<style>
body {
overflow: scroll;
}
</style>
<script>
function doTest() {
document.documentElement.style.overflow = "scroll";
document.body.style.overflow = "visible";
document.documentElement.removeAttribute("class");
}
window.addEventListener("MozReftestInvalidate", doTest);
</script>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<title>
Testcase with the root viewport scrollable, via styles on body node.
</title>
<style>
body {
overflow: scroll;
}
</style>
</head>
<body>
</body>
</html>

View file

@ -85,3 +85,13 @@ fuzzy-if(asyncPan&&!layersGPUAccelerated,102,2420) == frame-scrolling-attr-2.htm
== fractional-scroll-area.html?top=0.4&outerBottom=99.6&innerBottom=200.4&scrollBefore=999 fractional-scroll-area.html?top=0&outerBottom=100&innerBottom=200&scrollBefore=999
== fractional-scroll-area.html?top=0.4&outerBottom=100.4&innerBottom=200.4&scrollBefore=999 fractional-scroll-area.html?top=0&outerBottom=100&innerBottom=200&scrollBefore=999
!= fractional-scroll-area-invalidation.html about:blank
# Tests for "overflow" styles that may be propagated to the viewport:
== propagated-overflow-style-1a.html propagated-overflow-style-1-ref.html
== propagated-overflow-style-1b.html propagated-overflow-style-1-ref.html
== propagated-overflow-style-1c.html propagated-overflow-style-1-ref.html
== propagated-overflow-style-2a.html propagated-overflow-style-2-ref.html
== propagated-overflow-style-2b.html propagated-overflow-style-2-ref.html
== propagated-overflow-style-2c.html propagated-overflow-style-2-ref.html
== propagated-overflow-style-2d.html propagated-overflow-style-2-ref.html
== propagated-overflow-style-2e.html propagated-overflow-style-2-ref.html