summaryrefslogtreecommitdiffstats
path: root/layout/reftests/bugs/1546856-1.html
blob: 1a503498994465bbc37a5f347fbee9c7f2684970 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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>