2 <iframe id=
"frame" sandbox=
"allow-scripts allow-popups"></iframe>
3 <script type=
"application/javascript">
4 /* eslint-disable no-useless-concat */
6 onmessage = function(e) {
7 parent.postMessage(e.data, '*');
10 var ifr = document.getElementById('frame');
12 if (location.search == '?nested') {
13 let url = new URL(location);
16 } else if (location.search == '?popup') {
17 let url = new URL(location);
18 url.search =
"?opener";
20 ifr.srcdoc =
"<html><script>" +
21 "window.open('" + url
.href
+ "', 'foobar');" +
22 "onmessage = function(e) { " +
23 " parent.postMessage(e.data, '*'); " +
25 "</scr" + "ipt></html>";
26 } else if (location
.search
== '?opener') {
28 var socket
= new WebSocket('ws://mochi.test:8888/tests/dom/websocket/tests/file_websocket_basic');
29 socket
.onerror = function() {
30 opener
.postMessage('WS onerror', '*');
33 socket
.onopen = function() {
34 opener
.postMessage('WS onopen', '*');
38 if (e
.name
== 'SecurityError') {
39 opener
.postMessage('WS Throws!', '*');
41 opener
.postMessage('WS Throws something else!', '*');
49 var socket = new WebSocket('ws://mochi.test:8888/tests/dom/websocket/tests/file_websocket_basic');
50 socket.onerror = function(e) {
51 parent.postMessage('WS onerror', '*');
53 socket.onopen = function(event) {
54 parent.postMessage('WS onopen', '*');
57 if (e.name == 'SecurityError') {
58 parent.postMessage('WS Throws!', '*');
60 parent.postMessage('WS Throws something else!', '*');