summaryrefslogtreecommitdiffstats
path: root/image/test/crashtests/1676172-1.html
diff options
context:
space:
mode:
Diffstat (limited to 'image/test/crashtests/1676172-1.html')
-rw-r--r--image/test/crashtests/1676172-1.html57
1 files changed, 57 insertions, 0 deletions
diff --git a/image/test/crashtests/1676172-1.html b/image/test/crashtests/1676172-1.html
new file mode 100644
index 0000000000..08374a4772
--- /dev/null
+++ b/image/test/crashtests/1676172-1.html
@@ -0,0 +1,57 @@
+<html class="reftest-wait">
+<head>
+<script>
+function setup() {
+ setTimeout(finish, 1500);
+}
+function finish() {
+ window.stop();
+ document.documentElement.className = "";
+}
+</script>
+<style>
+ iframe {
+ width: 100px;
+ height: 100px;
+ }
+</style>
+</head>
+<body onload="setup();">
+<script>
+let numiframes = 30;
+
+const Cc = SpecialPowers.Cc;
+const Ci = SpecialPowers.Ci;
+let isDebugBuild =
+ Cc["@mozilla.org/xpcom/debug;1"].getService(Ci.nsIDebug2).isDebugBuild;
+let isMac =
+ navigator.appVersion.toLowerCase().includes("mac") ||
+ navigator.platform.toLowerCase().includes("mac");
+
+// On some platforms too many animating and reloading gifs means we don't ever
+// get enough time to serve paints so that there is never a period of time
+// where there are no paints pending, so the reftest harness can't end the
+// test. So we limit the number on those platforms, since we only need one
+// iframe to reproduce the bug this is okay, more iframes just give more
+// chance of reproducing it on any given run.
+if (navigator.appVersion.includes("Windows")) {
+ numiframes = 16;
+}
+if (navigator.platform.includes("Linux")) {
+ numiframes = 10;
+}
+if (navigator.appVersion.includes("Android")) {
+ numiframes = 2;
+}
+if (isMac && isDebugBuild) {
+ numiframes = 20;
+}
+for (let i = 0; i < numiframes; i++) {
+ let ifr = document.createElement("iframe");
+ document.body.appendChild(ifr)
+ ifr.src = "1676172-1-iframe.html?" + i;
+}
+setTimeout(finish, 1500);
+</script>
+</body>
+</html>