summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/mozilla/tests/css/bug1833279-001.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
commit40a355a42d4a9444dc753c04c6608dade2f06a23 (patch)
tree871fc667d2de662f171103ce5ec067014ef85e61 /testing/web-platform/mozilla/tests/css/bug1833279-001.html
parentAdding upstream version 124.0.1. (diff)
downloadfirefox-upstream/125.0.1.tar.xz
firefox-upstream/125.0.1.zip
Adding upstream version 125.0.1.upstream/125.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/mozilla/tests/css/bug1833279-001.html')
-rw-r--r--testing/web-platform/mozilla/tests/css/bug1833279-001.html38
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/web-platform/mozilla/tests/css/bug1833279-001.html b/testing/web-platform/mozilla/tests/css/bug1833279-001.html
new file mode 100644
index 0000000000..ecbdf934de
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/css/bug1833279-001.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML>
+<meta charset="utf-8">
+<title>Test for bug 1833279</title>
+<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1833279">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+ setup({ single_test: true });
+
+ // The following callback-function gets called twice by our iframe inner-doc:
+ // 1. when the iframe's document finishes printing.
+ // 2. when the iframe's document finishes loading its own <object> child-document.
+ // When those two steps have completed, we're past the situation that would
+ // trigger a fatal assertion when the object document gets cycle-collected.
+ // So at that point we remove our iframe, and (after a rAF tick) trigger a
+ // GC and CC, and then consider the test as having passed if we're still
+ // alive at that point.
+ const MAX_STEPS = 2;
+ let stepsComplete = 0;
+
+ function iframeStepComplete() {
+ stepsComplete++;
+ if (stepsComplete < MAX_STEPS) {
+ return;
+ }
+ requestAnimationFrame(()=> {
+ myIframe.remove();
+ requestAnimationFrame(()=> {
+ SpecialPowers.DOMWindowUtils.garbageCollect();
+ SpecialPowers.DOMWindowUtils.cycleCollect();
+ assert_true(true, "successfully completed without crashing");
+ done();
+ });
+ });
+ }
+</script>
+<iframe id="myIframe" src="resources/bug1833279-iframe.html"></iframe>