improve spec compliance of window.close

This commit is contained in:
Gregory Terzian 2018-05-26 23:41:34 +08:00
parent f63284efc0
commit 2753e5efab
12 changed files with 123 additions and 39 deletions

View file

@ -0,0 +1,22 @@
<!doctype html>
<title>beforeunload and unload events fire after window.close() in script-closeable browsing context</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
beforeunload_fired = false;
var t = async_test();
onload = t.step_func(function() {
window.close();
});
onbeforeunload = t.step_func(function() {
beforeunload_fired = true;
});
onunload = t.step_func(function() {
assert_true(beforeunload_fired);
t.done()
});
</script>

View file

@ -0,0 +1,10 @@
<!doctype html>
script-uncloseable-1
<script>
onbeforeunload = function() {
parent.beforeunload_fired = true;
};
onunload = function() {
parent.unload_fired = true;
};
</script>

View file

@ -0,0 +1,24 @@
<!doctype html>
<title>beforeunload and unload events do not fire after window.close() in script-uncloseable browsing context</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
var beforeunload_fired = false;
var unload_fired = false;
var t = async_test();
onload = t.step_func(function() {
var iframe = document.getElementsByTagName("iframe")[0]
iframe.onload = t.step_func(function() {
iframe.contentWindow.close()
t.step_timeout(function() {
assert_false(beforeunload_fired);
assert_false(unload_fired);
t.done();
}, 1000);
});
iframe.src = "prompt-and-unload-script-uncloseable-1.html";
});
</script>
<iframe></iframe>