summaryrefslogtreecommitdiffstats
path: root/layout/printing/crashtests/1758199-1.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/printing/crashtests/1758199-1.html')
-rw-r--r--layout/printing/crashtests/1758199-1.html54
1 files changed, 54 insertions, 0 deletions
diff --git a/layout/printing/crashtests/1758199-1.html b/layout/printing/crashtests/1758199-1.html
new file mode 100644
index 0000000000..3f7c9227a4
--- /dev/null
+++ b/layout/printing/crashtests/1758199-1.html
@@ -0,0 +1,54 @@
+<html class="reftest-wait">
+<script>
+let pp;
+let documentElements = [];
+documentElements.push(document.documentElement);
+
+window.onload = () => {
+ documentElements.push(document.documentElement);
+
+ let o = document.getElementById('a')
+ o.parentNode.appendChild(o)
+ pp = SpecialPowers.wrap(self).printPreview();
+ pp?.print()
+ window.requestIdleCallback(() => {
+ documentElements.push(document.documentElement);
+
+ document.write('');
+
+ setTimeout(finish, 100);
+ });
+}
+
+function finish() {
+
+ // The printPreview call above actually opens two print preview windows
+ // because the <embed src='#'> below causes a second one to open. At least
+ // we close the one window we can access, not sure if there is a way to get
+ // ahold of the other window to close it. So this test leaves a window open
+ // after it finishes.
+ try { pp.close(); } catch (e) {}
+
+ if (document.documentElement) {
+ try { document.documentElement.className = ""; } catch (e) {}
+ }
+
+ // The documentElement that the reftest harness looks at to determine if the
+ // test is done is not what document.documentElement points to when this code
+ // is run. So we save all the document.documentElement's we encounter while
+ // running this test and clear all of their class names.
+ for (let de of documentElements) {
+ if (de) {
+ try {
+ de.className = "";
+ } catch (e) {}
+ }
+ }
+}
+</script>
+<style>
+:first-of-type { padding-block-start: 99% }
+</style>
+<mark id='a'>
+<embed src='#'>
+</html>