summaryrefslogtreecommitdiffstats
path: root/layout/reftests/bugs/398682-1.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /layout/reftests/bugs/398682-1.html
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/reftests/bugs/398682-1.html')
-rw-r--r--layout/reftests/bugs/398682-1.html62
1 files changed, 62 insertions, 0 deletions
diff --git a/layout/reftests/bugs/398682-1.html b/layout/reftests/bugs/398682-1.html
new file mode 100644
index 0000000000..0e5793b352
--- /dev/null
+++ b/layout/reftests/bugs/398682-1.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ // Only this exact number of calls to bounce() triggers the bug,
+ // but changing the depth of the document changes the number of
+ // bounce() calls needed. For example, removing the 'p' tag
+ // makes it so one additional bounce() is needed.
+
+ for (var i = 0; i < 7; ++i)
+ bounce();
+
+ var tr = document.getElementById("tr");
+ tr.style.display = "none";
+ document.documentElement.offsetHeight;
+ bounce();
+ document.documentElement.offsetHeight;
+ tr.style.display = "";
+
+ document.documentElement.offsetHeight;
+
+ var td = document.getElementById("td");
+ td.style.display = "none";
+ document.documentElement.offsetHeight;
+ bounce();
+ document.documentElement.offsetHeight;
+ td.style.display = "";
+}
+
+
+function bounce()
+{
+ var docElem = document.documentElement;
+ var docElemChildren = [];
+ while (docElem.firstChild) {
+ docElemChildren.push(docElem.firstChild);
+ docElem.firstChild.remove();
+ }
+
+ for (var i = 0; i < docElemChildren.length; ++i)
+ docElem.appendChild(docElemChildren[i]);
+}
+
+</script>
+
+<style type="text/css">
+#a { color: orange; }
+#b { color: blue; }
+</style>
+
+</head>
+
+<body onload="boom();">
+ <table border="10"><tr id="tr"><td id="td">
+ <p><span id="a">a</span><span id="b">b</span></p>
+ </td></tr></table>
+</body>
+
+</html>