<!DOCTYPE HTML> <html> <!-- --> <head> <title>Test for link rel=preconnect</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> <script type="text/javascript"> SimpleTest.waitForExplicitFinish(); const Cc = SpecialPowers.Cc, Ci = SpecialPowers.Ci, Cr = SpecialPowers.Cr; var remainder = 4; var observer; function doTest() { SpecialPowers.setBoolPref("network.http.debug-observations", true); observer = SpecialPowers.wrapCallback(function(subject, topic, data) { remainder--; ok(true, "observed remainder = " + remainder); if (!remainder) { SpecialPowers.removeObserver(observer, "speculative-connect-request"); SpecialPowers.setBoolPref("network.http.debug-observations", false); SimpleTest.finish(); } }); SpecialPowers.addObserver(observer, "speculative-connect-request", false); // test the link rel=preconnect element in the head for both normal // and crossOrigin=anonymous var link = document.createElement("link"); link.rel = "preconnect"; link.href = "//localhost:8888"; document.head.appendChild(link); link = document.createElement("link"); link.rel = "preconnect"; link.href = "//localhost:8888"; link.crossOrigin = "anonymous"; document.head.appendChild(link); // test the http link response header - the test contains both a // normal and anonymous preconnect link header var iframe = document.createElement('iframe'); iframe.src = 'rel_preconnect.sjs?//localhost:8888'; document.body.appendChild(iframe); } </script> </head> <body onload="doTest();"> <p id="display"></p> <div id="content" style="display: none"></div> <pre id="test"> </pre> </body> </html>