diff options
Diffstat (limited to 'testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/beforeunload-synchronous.html')
-rw-r--r-- | testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/beforeunload-synchronous.html | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/beforeunload-synchronous.html b/testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/beforeunload-synchronous.html new file mode 100644 index 0000000000..6806eaf7a3 --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/beforeunload-synchronous.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>beforeunload event is emitted synchronously</title> +<link rel="help" href="https://html.spec.whatwg.org/multipage/webappapis.html#the-event-handler-processing-algorithm"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<script> +'use strict'; +// "navigate a browsing context" synchronously calls "prompt to unload", which +// synchronously calls "dispatch an event". + +async_test(function(t) { + var iframe = document.createElement('iframe'); + + iframe.onload = t.step_func(function() { + var callCount = 0; + + iframe.contentWindow.onbeforeunload = function() { + callCount += 1; + }; + + iframe.contentWindow.location.href = '/common/blank.html'; + + assert_equals(callCount, 1, 'invoked synchronously exactly once'); + + t.done(); + }); + + document.body.appendChild(iframe); +}); +</script> +</body> |