diff options
Diffstat (limited to 'layout/reftests/layers/pull-background-animated-position-4.html')
-rw-r--r-- | layout/reftests/layers/pull-background-animated-position-4.html | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/layout/reftests/layers/pull-background-animated-position-4.html b/layout/reftests/layers/pull-background-animated-position-4.html new file mode 100644 index 0000000000..c92f2fd3ee --- /dev/null +++ b/layout/reftests/layers/pull-background-animated-position-4.html @@ -0,0 +1,94 @@ +<!DOCTYPE html> +<html lang="en" class="reftest-wait"> +<meta charset="utf-8"> +<title>This test fails - layerization should respect overflow:hidden clips around things with animated position</title> + +<style> + +div { + min-height: 50px; + box-model: border-box; +} + +.first, .second { + border: 1px solid blue; + margin: 50px 0; + position: relative; +} + +.border { + border: 1px solid black; +} + +.clip { + height: auto; + overflow: hidden; + padding: 10px 0 20px; +} + +.animated-position { + position: relative; + left: 20px; + margin-left: 220px; + width: 100px; + height: 100px; + border-color: red; +} + +body { + margin: 0; + padding: 0 100px; + height: 3000px; +} + +</style> + +<div class="first" reftest-assigned-layer="page-background"> + <!-- + This is just a regular box, it should end up in the page background layer. + --> +</div> + +<div class="clip border"> + <div class="border animated-position reftest-no-paint reftest-opaque-layer"> + <!-- + The background of .clip is uniform and opaque, + .animated-position should be able to pull up that background color and + become opaque itself. + However, since this clip is not created by an animated geometry root that + is a scrollable frame, we currently fail to recognize it, so this test + will fail. + --> + </div> +</div> + +<div class="second" reftest-assigned-layer="page-background"> + <!-- + This should share a layer with .first and the page background. + However, since we don't recognize that .animated-position is contained in + a clip, .second gets its own layer above .animated-position, so this test + will fail. + --> +</div> + +<script> + +var animatedLeft = document.querySelector(".animated-position"); + +function doTest() { + animatedLeft.style.left = "-40px"; + document.documentElement.removeAttribute("class"); +} + +// Layerize #animatedLeft +animatedLeft.offsetLeft; +animatedLeft.style.left = "40px"; +animatedLeft.offsetLeft; +animatedLeft.style.left = "60px"; +animatedLeft.offsetLeft; + +document.addEventListener("MozReftestInvalidate", doTest); +setTimeout(doTest, 200); + +</script> + |