Bug 1464288 - Make sure PreProcessDisplayLists logic for switching AGRs matches what ComputeRebuildRegion uses. r=miko

MozReview-Commit-ID: Ht11ul21PRO

--HG--
extra : rebase_source : 3bb7b0128f3932142b518490cef3ba814245b5d6
This commit is contained in:
Matt Woodrow 2018-05-25 16:21:18 +12:00
Родитель e2fc12b175
Коммит 6fdf0741d7
4 изменённых файлов: 80 добавлений и 1 удалений

Просмотреть файл

@ -75,7 +75,8 @@ MarkFramesWithItemsAndImagesModified(nsDisplayList* aList)
static AnimatedGeometryRoot* static AnimatedGeometryRoot*
SelectAGRForFrame(nsIFrame* aFrame, AnimatedGeometryRoot* aParentAGR) SelectAGRForFrame(nsIFrame* aFrame, AnimatedGeometryRoot* aParentAGR)
{ {
if (!aFrame->IsStackingContext()) { if (!aFrame->IsStackingContext() ||
!aFrame->IsFixedPosContainingBlock()) {
return aParentAGR; return aParentAGR;
} }

Просмотреть файл

@ -0,0 +1,55 @@
<!DOCTYPE html>
<html reftest-async-scroll
reftest-displayport-x="0" reftest-displayport-y="0"
reftest-displayport-w="800" reftest-displayport-h="2000"
reftest-async-scroll-x="0" reftest-async-scroll-y="400"
class="reftest-wait">
<head>
<style>
body {
margin: 0;
height: 4000px;
overflow:hidden;
}
div {
left: 200px;
top: 200px;
width: 200px;
height: 200px;
}
.scrolled {
position: absolute;
z-index: 1;
}
.fixed {
position: fixed;
background-color: red;
}
</style>
</head>
<body>
<div style="opacity:0.5">
<div class="scrolled" style="top: 200px; background-color: green"></div>
<div class="scrolled" style="top: 600px; background-color:blue" id="scrolled"></div>
<div class="fixed" style="top: 200px"></div>
<div class="fixed" id="fixed" style="top: 200px; width: 100px; height: 100px; z-index: 2; background-color: orange"></div>
</div>
</body>
<script>
function doTest() {
document.getElementById("fixed").style.backgroundColor = "red";
document.documentElement.removeAttribute("class");
}
window.addEventListener("MozReftestInvalidate", doTest);
</script>
</html>

Просмотреть файл

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<style>
body {
margin: 0;
}
div {
left: 200px;
top: 200px;
position:absolute;
}
</style>
</head>
<body>
<div style="opacity:0.5; position:static">
<div style="width: 200px; height: 200px; background-color: blue;"></div>
<div style="width: 100px; height: 100px; background-color: red;"></div>
</div>
</body>
</html>

Просмотреть файл

@ -34,3 +34,4 @@ skip-if(!asyncPan) == 1437374-1.html 1437374-1-ref.html
== 1453541-2.html 1453541-ref.html == 1453541-2.html 1453541-ref.html
== 1452805-1.html 1452805-ref.html == 1452805-1.html 1452805-ref.html
== 1461231-1.html about:blank == 1461231-1.html about:blank
fuzzy(2,40000) == 1464288-1.html 1464288-ref.html