diff options
Diffstat (limited to '')
-rw-r--r-- | gfx/tests/reftest/picture-caching-on-async-zoom.html | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/gfx/tests/reftest/picture-caching-on-async-zoom.html b/gfx/tests/reftest/picture-caching-on-async-zoom.html new file mode 100644 index 0000000000..f32ab02d3b --- /dev/null +++ b/gfx/tests/reftest/picture-caching-on-async-zoom.html @@ -0,0 +1,90 @@ +<!DOCTYPE html> +<html class="reftest-wait"> + <head> + <meta name="viewport" content="width=device-width"/> + <title>The Grid in an overflowing div</title> + <style type="text/css"> + html, body { + padding: 0; + border: 0; + margin: 0; + scrollbar-width: none; + } + table { + padding: 0; + margin: 0; + border-top: none; + border-left: none; + border-right: 1px solid black; + border-bottom: 1px solid black; + } + tr { + padding: 0; + border: 0; + margin: 0; + } + td { + /* top border counts as part of height, but + left border doesn't count as part of width. + go figure. + */ + min-height: 99px; + height: 99px; + max-height: 99px; + min-width: 99px; + width: 99px; + max-width: 99px; + padding: 0; + border-left: 1px solid black; + border-top: 1px solid black; + border-right: none; + border-bottom: none; + margin: 0; + font-size: 12px; + text-align: left; + vertical-align: top; + font-family: monospace; + } + </style> + </head> + <body> + <div style="color: red">this text is above the scrolling div. the div below is 300x400</div> + <div id="nest" style="overflow: scroll; scrollbar-width: none; height: 400px; width: 300px"> + <table cellspacing="0" cellpadding="0" border="0"> + <script type="text/javascript"> + var PAGE_SIZE = 2000; + var GRID_SIZE = 100; + + var cnt = (PAGE_SIZE / GRID_SIZE); + for (var y = 0; y < cnt; y++) { + document.writeln( "<tr>" ); + for (var x = 0; x < cnt; x++) { + var color = ((x + y) % 2) ? "blue" : "red"; + document.writeln( "<td style='background-color: " + color + "'></td>" ); + } + document.writeln( "</tr>" ); + } + </script> + </table> + </div> + <div style="color: red">this text is below the scrolling div</div> + <script> + if (location.search == "?ref") { + // In the reference case we use a CSS transform so that we don't use + // the async-zoom codepath (which is handled differently by WR). + document.documentElement.setAttribute("style", "transform: scale(1.1); transform-origin: top left"); + document.documentElement.classList.remove("reftest-wait"); + } else { + // In the test case, we want to first paint the unscaled content, so that + // WR populates the picture cache. Then we apply an async zoom and paint + // again for the final snapshot. The bug in this case was that WR wasn't + // properly invalidating the picture cache tiles and so things would + // appear incorrectly. + window.addEventListener("MozAfterPaint", () => { + document.documentElement.setAttribute("reftest-async-zoom", "1.1"); + document.documentElement.classList.remove("reftest-wait"); + }); + } + </script> + </body> +</html> |