summaryrefslogtreecommitdiffstats
path: root/layout/reftests/layers/pull-background-animated-position-4.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/reftests/layers/pull-background-animated-position-4.html')
-rw-r--r--layout/reftests/layers/pull-background-animated-position-4.html94
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>
+