link-header-preload.html (3272B)
1 <!DOCTYPE html> 2 <meta charset=utf-8> 3 <title>Makes sure that Link headers preload resources</title> 4 <!-- 5 This and the line below ensure that the trailing crossorigin in the link 6 header is honored, otherwise we'd load this resource twice and the test would 7 fail. 8 --> 9 <link rel="preload" as="style" crossorigin href="resources/dummy.css?link-header-crossorigin-preload2"> 10 <link rel="preload" as="font" crossorigin="anonymous" href="resources/font.ttf?link-header-crossorigin-preload2"> 11 <link rel="stylesheet" crossorigin href="resources/dummy.css?link-header-crossorigin-preload2"> 12 <script src="resources/dummy.js?link-header-preload2"></script> 13 <style> 14 @font-face { 15 font-family: myFont; 16 src: url(resources/font.ttf?link-header-crossorigin-preload2); 17 } 18 .custom-font { font-family: myFont, sans-serif; } 19 </style> 20 <script src="/resources/testharness.js"></script> 21 <script src="/resources/testharnessreport.js"></script> 22 <script src="/preload/resources/preload_helper.js"></script> 23 <body> 24 <script> 25 setup({single_test: true}); 26 27 var iterations = 0; 28 29 function check_finished() { 30 if (numberOfResourceTimingEntries("resources/square.png?link-header-preload") == 1 && 31 numberOfResourceTimingEntries("resources/dummy.js?link-header-preload1") == 1 && 32 numberOfResourceTimingEntries("resources/dummy.js?link-header-preload2") == 1 && 33 numberOfResourceTimingEntries("resources/dummy.css?link-header-preload") == 1 && 34 numberOfResourceTimingEntries("resources/dummy.css?link-header-crossorigin-preload1") == 1 && 35 numberOfResourceTimingEntries("resources/dummy.css?link-header-crossorigin-preload1") == 1 && 36 numberOfResourceTimingEntries("resources/font.ttf?link-header-crossorigin-preload1") == 1 && 37 numberOfResourceTimingEntries("resources/font.ttf?link-header-crossorigin-preload2") == 1) { 38 done(); 39 } 40 iterations++; 41 if (iterations == 10) { 42 // At least one is expected to fail, but this should give details to the exact failure(s). 43 verifyNumberOfResourceTimingEntries("resources/square.png?link-header-preload", 1); 44 verifyNumberOfResourceTimingEntries("resources/dummy.js?link-header-preload1", 1); 45 verifyNumberOfResourceTimingEntries("resources/dummy.js?link-header-preload2", 1); 46 verifyNumberOfResourceTimingEntries("resources/dummy.css?link-header-preload", 1); 47 verifyNumberOfResourceTimingEntries("resources/dummy.css?link-header-crossorigin-preload1", 1); 48 verifyNumberOfResourceTimingEntries("resources/dummy.css?link-header-crossorigin-preload2", 1); 49 verifyNumberOfResourceTimingEntries("resources/font.ttf?link-header-crossorigin-preload1", 1); 50 verifyNumberOfResourceTimingEntries("resources/font.ttf?link-header-crossorigin-preload2", 1); 51 done(); 52 } else { 53 step_timeout(check_finished, 500); 54 } 55 } 56 57 window.addEventListener("load", function() { 58 verifyPreloadAndRTSupport(); 59 step_timeout(check_finished, 500); 60 }); 61 </script> 62 <span class="custom-font">PASS - this text is here just so that the browser will download the font.</span> 63 </body>