diff options
Diffstat (limited to 'layout/reftests/transform/partial-prerender-translate-8.html')
-rw-r--r-- | layout/reftests/transform/partial-prerender-translate-8.html | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/layout/reftests/transform/partial-prerender-translate-8.html b/layout/reftests/transform/partial-prerender-translate-8.html new file mode 100644 index 0000000000..0fc633a532 --- /dev/null +++ b/layout/reftests/transform/partial-prerender-translate-8.html @@ -0,0 +1,73 @@ +<!DOCTYPE html> +<html class="reftest-wait reftest-no-flush"> +<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"> +<!-- + A test for a partial pre-rendered transform in an iframe, if the clip + rectangle of the transform animation were wrong, e.g. (800, 1000), the + transform animation janks at the initial position. + --> +<style> +html { + overflow: hidden; +} +body { + margin: 0px; + padding: 0px; +} +</style> + <!-- a half width of the view port --> +<iframe style="width:400px; height:1000px; border: 0" + srcdoc="<!DOCTYPE HTML> + <html> + <style> + html { + overflow: hidden; + scrollbar-width: none; + } + html, body { + margin: 0; + padding: 0; + } + @keyframes anim { + /* the partial prerender area is (1125, 1000), thus */ + /* translateX(-725px) is the position where the right edge */ + /* of the partial prerender is positioned at the right edge */ + /* of the clip rect (400, 1000). */ + to { transform: translateX(-725px); } + } + #target { + width: 1600px; + height: 1000px; + transform: translateX(0px); + } + </style> + <div id='target'> + <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 1000'> + <rect fill='green' x='0' width='800' height='1000'></rect> + <rect fill='blue' x='800' width='325' height='1000'></rect> + <rect fill='red' x='1125' width='675' height='1000'></rect> + </svg> + </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> |