<!
DOCTYPE HTML>
<
html>
<
head>
<
meta charset=
"utf-8">
<
title>Bug 1345615: Allow websocket schemes when using
'self' in CSP</
title>
<!-- Including SimpleTest.js so we can use waitForExplicitFinish !-->
<
script src=
"/tests/SimpleTest/SimpleTest.js"></
script>
<
link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css" />
</
head>
<
body>
<
iframe style=
"width:100%;" id=
"test_ws_self_frame"></
iframe>
<
iframe style=
"width:100%;" id=
"test_ws_explicit_frame"></
iframe>
<
script class=
"testbody" type=
"text/javascript">
/* Description of the test:
* We load an
iframe using connect-src
'self' and one
*
iframe using connect-src ws: and make
* sure that in both cases ws: as well as wss: is allowed to load.
*/
SimpleTest.waitForExplicitFinish();
function finishTest() {
window.removeEventListener(
"message", receiveMessage);
SimpleTest.finish();
}
const TOTAL_TESTS = 4;
var counter = 0;
function checkResults(result) {
counter++;
if (result ===
"self-ws-loaded" || result ===
"self-wss-loaded" ||
result ===
"explicit-ws-loaded" || result ===
"explicit-wss-loaded") {
ok(true,
"Evaluating: " + result);
}
else {
ok(false,
"Evaluating: " + result);
}
if (counter < TOTAL_TESTS) {
return;
}
finishTest();
}
window.addEventListener(
"message", receiveMessage);
function receiveMessage(event) {
checkResults(event.data.result);
}
const HOST =
"http://example.com/tests/dom/security/test/csp/";
var test_ws_self_frame = document.getElementById(
"test_ws_self_frame");
test_ws_self_frame.src = HOST +
"file_websocket_self.html";
var test_ws_explicit_frame = document.getElementById(
"test_ws_explicit_frame");
test_ws_explicit_frame.src = HOST +
"file_websocket_explicit.html";
</
script>
</
body>
</
html>