summaryrefslogtreecommitdiffstats
path: root/layout/reftests/bugs/1546856-1.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--layout/reftests/bugs/1546856-1.html61
1 files changed, 61 insertions, 0 deletions
diff --git a/layout/reftests/bugs/1546856-1.html b/layout/reftests/bugs/1546856-1.html
new file mode 100644
index 0000000000..1a50349899
--- /dev/null
+++ b/layout/reftests/bugs/1546856-1.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html class="reftest-wait"
+ reftest-displayport-x="0" reftest-displayport-y="0"
+ reftest-displayport-w="800" reftest-displayport-h="1500">
+<meta charset="utf-8">
+<title>Test for bug 1546856: When the first painted item in a layer is removed, invalidation takes the wrong last paint offset because it hasn't initialized the last paint offset for that layer yet for this paint</title>
+<style>
+html {
+ background: linear-gradient(white, white) 0 0 / 100vw 100vh no-repeat fixed;
+}
+
+body {
+ height: 4000px;
+ padding: 200px 0;
+}
+
+div {
+ width: 600px;
+ height: 200px;
+ box-sizing: border-box;
+ margin-bottom: -200px;
+}
+
+#main.fill {
+ background-color: rgba(255, 0, 0, 0.9);
+}
+
+#main.ownLayer {
+ will-change: opacity;
+}
+
+#layerBoundsMaintainer {
+ position: relative;
+ border: 1px solid black;
+}
+
+</style>
+
+<div id="main"></div>
+<div id="layerBoundsMaintainer"></div>
+
+<script>
+
+const mainElement = document.querySelector('#main');
+
+document.scrollingElement.scrollTop = 0;
+document.addEventListener('MozReftestInvalidate', () => {
+ requestAnimationFrame(() => {
+ document.scrollingElement.scrollTop = 200;
+ mainElement.className = 'fill';
+ requestAnimationFrame(() => {
+ mainElement.className = 'fill ownLayer';
+ requestAnimationFrame(() => {
+ mainElement.className = '';
+ document.documentElement.className = '';
+ });
+ });
+ });
+});
+
+</script>