test_rel_preconnect.html 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <!DOCTYPE HTML>
  2. <html>
  3. <!--
  4. -->
  5. <head>
  6. <title>Test for link rel=preconnect</title>
  7. <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  8. <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
  9. <script type="text/javascript">
  10. SimpleTest.waitForExplicitFinish();
  11. const Cc = SpecialPowers.Cc, Ci = SpecialPowers.Ci, Cr = SpecialPowers.Cr;
  12. var remainder = 4;
  13. var observer;
  14. function doTest()
  15. {
  16. SpecialPowers.setBoolPref("network.http.debug-observations", true);
  17. observer = SpecialPowers.wrapCallback(function(subject, topic, data) {
  18. remainder--;
  19. ok(true, "observed remainder = " + remainder);
  20. if (!remainder) {
  21. SpecialPowers.removeObserver(observer, "speculative-connect-request");
  22. SpecialPowers.setBoolPref("network.http.debug-observations", false);
  23. SimpleTest.finish();
  24. }
  25. });
  26. SpecialPowers.addObserver(observer, "speculative-connect-request", false);
  27. // test the link rel=preconnect element in the head for both normal
  28. // and crossOrigin=anonymous
  29. var link = document.createElement("link");
  30. link.rel = "preconnect";
  31. link.href = "//localhost:8888";
  32. document.head.appendChild(link);
  33. link = document.createElement("link");
  34. link.rel = "preconnect";
  35. link.href = "//localhost:8888";
  36. link.crossOrigin = "anonymous";
  37. document.head.appendChild(link);
  38. // test the http link response header - the test contains both a
  39. // normal and anonymous preconnect link header
  40. var iframe = document.createElement('iframe');
  41. iframe.src = 'rel_preconnect.sjs?//localhost:8888';
  42. document.body.appendChild(iframe);
  43. }
  44. </script>
  45. </head>
  46. <body onload="doTest();">
  47. <p id="display"></p>
  48. <div id="content" style="display: none"></div>
  49. <pre id="test">
  50. </pre>
  51. </body>
  52. </html>