summaryrefslogtreecommitdiffstats
path: root/layout/reftests/transform/partial-prerender-translate-9.html
blob: 2c6af406cb3282a74a1d496213b320fbee759fd6 (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<!DOCTYPE html>
<html reftest-async-scroll class="reftest-wait reftest-no-flush">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<!--
  A variant test of partial-prerender-translate-5.html but in this test the
  position:fixed element is inside an iframe.
  -->
<style>
html {
  overflow: hidden;
}
body {
  margin: 0px;
  padding: 0px;
}
</style>
<iframe style="width:800px; height:1000px; border: 0"
        srcdoc="<!DOCTYPE HTML>
                <html reftest-displayport-x='0' reftest-displayport-y='0'
                      reftest-displayport-w='800' reftest-displayport-h='2000'
                      reftest-async-scroll-x='0' reftest-async-scroll-y='1000'>
                <style>
                html {
                  overflow-x: hidden;
                }
                html, body {
                  margin: 0;
                  padding: 0;
                }
                @keyframes anim {
                  to { transform: translateY(-500px); }
                }
                #target {
                  width: 800px;
                  height: 1600px;
                  transform: translateY(-400px);
                }
                </style>
                <div style='width: 800px; height: 2000px'><!-- spacer --></div>
                <div style='position: fixed; top: 400px'>
                  <div id='target'>
                    <!--
                      Put an SVG element so that the transform display item has
                      a blob on WebRender which means this test properly fails
                      without the proper fix.
                      -->
                    <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 1600'>
                      <rect fill='green' y='0'    width='800' height='1000'></rect>
                      <rect fill='blue'  y='1000' width='800' height='125'></rect>
                      <rect fill='red'   y='1125' width='800' height='875'></rect>
                    </svg>
                  </div>
                </div>
                <script>
                window.addEventListener('message', () => {
                  if (event.data == 'start') {
                    target.style.animation = 'anim 100s 1s step-start';
                    target.addEventListener('animationstart', () => {
                      parent.postMessage('animationstart', '*');
                    });
                  }
                });
                </script></html>">
</iframe>
<script>
document.addEventListener("MozReftestInvalidate", () => {
  document.querySelector("iframe").contentWindow.postMessage("start", "*");
}, { once: true });

window.addEventListener("message", event => {
  if (event.data == "animationstart") {
    document.documentElement.classList.remove('reftest-wait');
  }
});
</script>
</html>