summaryrefslogtreecommitdiffstats
path: root/layout/generic/crashtests/471360.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--layout/generic/crashtests/471360.html61
1 files changed, 61 insertions, 0 deletions
diff --git a/layout/generic/crashtests/471360.html b/layout/generic/crashtests/471360.html
new file mode 100644
index 0000000000..6beb5e5c80
--- /dev/null
+++ b/layout/generic/crashtests/471360.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<script type="text/javascript">
+
+var ta, f, tb, s, tc;
+var i = 0;
+
+// This test loops repeatedly through its "boom" functions. We place an upper
+// bound on how many loops we'll allow, in case the repeated mutations/paints
+// block the test harness from considering the test to be done.
+var loopCount = 0;
+const maxLoopCount = 20;
+
+function boom1()
+{
+ var r = document.body;
+ while(r.firstChild)
+ r.removeChild(r.firstChild);
+
+ ta = document.createTextNode("A \u06cc");
+ (document.body).appendChild(ta);
+ f = document.createElement("IFRAME");
+ f.style.height = "15em";
+ f.src = "data:text/html," + "Iteration " + ++i;
+ (document.body).appendChild(f);
+ tb = document.createTextNode(" B ");
+ (document.body).appendChild(tb);
+ s = document.createElement("span");
+ s.id = "s";
+ tc = document.createTextNode(" C ");
+ (document.body).appendChild(s);
+ s.appendChild(tc);
+
+ setTimeout(boom2, 10);
+}
+
+function boom2()
+{
+ var w = document.createElement("style");
+ w.setAttribute("type", "text/css");
+ w.appendChild(document.createTextNode("body { column-gap: 1px; column-width: 1px; }"));
+ document.body.appendChild(w);
+
+ setTimeout(boom3, 10);
+}
+
+function boom3()
+{
+ ta.data = " E " + ta.data;
+ document.body.removeChild(s);
+
+ if (++loopCount < maxLoopCount) {
+ setTimeout(boom1, 10);
+ }
+}
+
+</script>
+</head>
+
+<body onload="boom1();"></body>
+</html>