diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-synchronously-discard.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-synchronously-discard.html | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-synchronously-discard.html b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-synchronously-discard.html new file mode 100644 index 0000000000..c339525ebd --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-synchronously-discard.html @@ -0,0 +1,32 @@ +<!doctype html> +<meta charset=utf-8> +<title>IFrame discards are processed synchronously</title> +<body></body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + async_test(function(t) { + var child = document.createElement("iframe"); + child.src = "support/blank.htm?1"; + child.onload = t.step_func(function () { + var childWindow = child.contentWindow; + var grandchild = childWindow.document.createElement("iframe"); + grandchild.src = "blank.htm?2"; + grandchild.onload = t.step_func(function () { + var grandchildWindow = grandchild.contentWindow; + assert_equals(child.contentWindow, childWindow, "child window"); + assert_equals(childWindow.parent, window, "child parentage"); + assert_equals(grandchild.contentWindow, grandchildWindow, "grandchild window"); + assert_equals(grandchildWindow.parent, childWindow, "grandchild parentage"); + document.body.removeChild(child); + assert_equals(child.contentWindow, null, "child should be discarded"); + assert_equals(childWindow.parent, null, "child window should be discarded"); + assert_equals(grandchild.contentWindow, null, "grandchild should be discarded"); + assert_equals(grandchildWindow.parent, null, "grandchild window should be discarded"); + t.done(); + }); + childWindow.document.body.appendChild(grandchild); + }); + document.body.appendChild(child); + }); +</script> |