diff options
Diffstat (limited to 'testing/web-platform/tests/html/cross-origin-opener-policy/resources/resource-popup.html')
-rw-r--r-- | testing/web-platform/tests/html/cross-origin-opener-policy/resources/resource-popup.html | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/cross-origin-opener-policy/resources/resource-popup.html b/testing/web-platform/tests/html/cross-origin-opener-policy/resources/resource-popup.html new file mode 100644 index 0000000000..ee08bcb496 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-opener-policy/resources/resource-popup.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title></title> +<script> +'use strict'; +const params = new URL(location).searchParams; +const bc = new BroadcastChannel(params.get('channel_name')); +const win = open(params.get('resource'), params.get('resource_name')); + +bc.onmessage = () => { + win.close(); + close(); +}; +const id = setInterval(() => { + if (win.closed || win.location.href !== 'about:blank') { + clearInterval(id); + const winName = (() => { + try { + return win.name; + } catch (e) { + return null; + } + })(); + bc.postMessage({name: winName || null, closed: win.closed}); + } +}, 100); +</script> |