<!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 type="text/javascript" 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>