зеркало из https://github.com/mozilla/gecko-dev.git
66 строки
1.7 KiB
HTML
66 строки
1.7 KiB
HTML
<html><body>
|
|
<iframe id="frame" sandbox="allow-scripts allow-popups"></iframe>
|
|
<script type="application/javascript">
|
|
onmessage = function(e) {
|
|
parent.postMessage(e.data, '*');
|
|
}
|
|
|
|
var ifr = document.getElementById('frame');
|
|
|
|
if (location.search == '?nested') {
|
|
var url = new URL(location);
|
|
url.search = "";
|
|
ifr.src = url.href;
|
|
} else if (location.search == '?popup') {
|
|
var url = new URL(location);
|
|
url.search = "?opener";
|
|
|
|
ifr.srcdoc = "<html><script>" +
|
|
"window.open('" + url.href + "', 'foobar');" +
|
|
"onmessage = function(e) { " +
|
|
" parent.postMessage(e.data, '*'); " +
|
|
"}" +
|
|
"</scr" + "ipt></html>";
|
|
} else if (location.search == '?opener') {
|
|
try{
|
|
var socket = new WebSocket('ws://mochi.test:8888/tests/dom/websocket/tests/file_websocket_basic');
|
|
socket.onerror = function(e) {
|
|
opener.postMessage('WS onerror', '*');
|
|
close();
|
|
};
|
|
socket.onopen = function(event) {
|
|
opener.postMessage('WS onopen', '*');
|
|
close();
|
|
};
|
|
} catch(e) {
|
|
if (e.name == 'SecurityError') {
|
|
opener.postMessage('WS Throws!', '*');
|
|
} else {
|
|
opener.postMessage('WS Throws something else!', '*');
|
|
}
|
|
close();
|
|
}
|
|
} else {
|
|
ifr.srcdoc = `
|
|
<html><script>
|
|
try{
|
|
var socket = new WebSocket('ws://mochi.test:8888/tests/dom/websocket/tests/file_websocket_basic');
|
|
socket.onerror = function(e) {
|
|
parent.postMessage('WS onerror', '*');
|
|
};
|
|
socket.onopen = function(event) {
|
|
parent.postMessage('WS onopen', '*');
|
|
};
|
|
} catch(e) {
|
|
if (e.name == 'SecurityError') {
|
|
parent.postMessage('WS Throws!', '*');
|
|
} else {
|
|
parent.postMessage('WS Throws something else!', '*');
|
|
}
|
|
}
|
|
</scr`+`ipt>
|
|
</html>`;
|
|
}
|
|
</script>
|
|
</body></html>
|