This makes sure that for example the bounds of an opacity item are not empty if the opacity item contains a scroll frame whose contents are currently scrolled offscreen but still inside that scroll frame's display port. On its own, this changeset causes test failures due to missed optimizations because the bounds of many opacity items are now too large. That's because of the way we're setting scroll clips on opacity items at the moment: Even if the opacity is inside a scroll frame, we're currently only setting that scroll frame's scroll clip on the opacity item's contents, not on the opacity item itself, because the opacity item might also contain other items that are not scrolled by this scroll frame. The next patch in this bug will make us only do that when necessary. MozReview-Commit-ID: 9TtcJ7eQE7U
40 lines
783 B
HTML
40 lines
783 B
HTML
<!DOCTYPE html>
|
|
<html reftest-async-scroll>
|
|
<meta charset="utf-8">
|
|
<title>Active opacity should be rendered if it's inside the display port, even if it's currently offscreen</title>
|
|
|
|
<style>
|
|
|
|
.scrollbox {
|
|
border: 1px solid black;
|
|
width: 200px;
|
|
height: 200px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.scrolledContent {
|
|
height: 1000px;
|
|
}
|
|
|
|
.opacity {
|
|
will-change: opacity;
|
|
opacity: 0.5;
|
|
margin-top: 250px;
|
|
width: 100px;
|
|
height: 100px;
|
|
box-sizing: border-box;
|
|
border: 1px solid blue;
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
<div class="scrollbox"
|
|
reftest-displayport-x="0" reftest-displayport-y="0"
|
|
reftest-displayport-w="200" reftest-displayport-h="1000"
|
|
reftest-async-scroll-x="0" reftest-async-scroll-y="150">
|
|
<div class="scrolledContent">
|
|
<div class="opacity"></div>
|
|
</div>
|
|
</div>
|