<!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="stylesheet" crossorigin href="resources/dummy.css?link-header-crossorigin-preload2">
<script src="resources/dummy.js?link-header-preload2"></script>
<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-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);
            done();
        } else {
            step_timeout(check_finished, 500);
        }
    }

    window.addEventListener("load", function() {
        verifyPreloadAndRTSupport();
        step_timeout(check_finished, 500);
    });
</script>
</body>
