<!DOCTYPE html> <meta charset=utf-8> <title>Makes sure that Link headers preload resources</title> <!-- This and the line below ensure that the trailing crossorigin in the link header is honored, otherwise we'd load this resource twice and the test would fail. --> <link rel="preload" as="style" crossorigin href="resources/dummy.css?link-header-crossorigin-preload2"> <link rel="preload" as="font" crossorigin="anonymous" href="resources/font.ttf?link-header-crossorigin-preload2"> <link rel="stylesheet" crossorigin href="resources/dummy.css?link-header-crossorigin-preload2"> <script src="resources/dummy.js?link-header-preload2"></script> <style> @font-face { font-family: myFont; src: url(resources/font.ttf?link-header-crossorigin-preload2); } .custom-font { font-family: myFont, sans-serif; } </style> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/preload/resources/preload_helper.js"></script> <body> <script> setup({single_test: true}); var iterations = 0; function check_finished() { if (numberOfResourceTimingEntries("resources/square.png?link-header-preload") == 1 && numberOfResourceTimingEntries("resources/dummy.js?link-header-preload1") == 1 && numberOfResourceTimingEntries("resources/dummy.js?link-header-preload2") == 1 && numberOfResourceTimingEntries("resources/dummy.css?link-header-preload") == 1 && numberOfResourceTimingEntries("resources/dummy.css?link-header-crossorigin-preload1") == 1 && numberOfResourceTimingEntries("resources/dummy.css?link-header-crossorigin-preload1") == 1 && numberOfResourceTimingEntries("resources/font.ttf?link-header-crossorigin-preload1") == 1 && numberOfResourceTimingEntries("resources/font.ttf?link-header-crossorigin-preload2") == 1) { done(); } iterations++; if (iterations == 10) { // At least one is expected to fail, but this should give details to the exact failure(s). verifyNumberOfResourceTimingEntries("resources/square.png?link-header-preload", 1); verifyNumberOfResourceTimingEntries("resources/dummy.js?link-header-preload1", 1); verifyNumberOfResourceTimingEntries("resources/dummy.js?link-header-preload2", 1); verifyNumberOfResourceTimingEntries("resources/dummy.css?link-header-preload", 1); verifyNumberOfResourceTimingEntries("resources/dummy.css?link-header-crossorigin-preload1", 1); verifyNumberOfResourceTimingEntries("resources/dummy.css?link-header-crossorigin-preload2", 1); verifyNumberOfResourceTimingEntries("resources/font.ttf?link-header-crossorigin-preload1", 1); verifyNumberOfResourceTimingEntries("resources/font.ttf?link-header-crossorigin-preload2", 1); done(); } else { step_timeout(check_finished, 500); } } window.addEventListener("load", function() { verifyPreloadAndRTSupport(); step_timeout(check_finished, 500); }); </script> <span class="custom-font">PASS - this text is here just so that the browser will download the font.</span> </body>