<!DOCTYPE html>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; default-src 'none'">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/preload/resources/preload_helper.js"></script>
<script>
    var t = async_test('Makes sure that preload requests respect CSP');
</script>
<link rel=preload href="{{host}}:{{ports[http][1]}}/preload/resources/dummy.js" as=style>
<link rel=preload href="resources/dummy.css" as=style>
<link rel=preload href="resources/square.png" as=image>
<link rel=preload href="/fonts/CanvasTest.ttf" as=font crossorigin>
<link rel=preload href="resources/white.mp4" as=video>
<link rel=preload href="resources/sound_5.oga" as=audio>
<link rel=preload href="resources/foo.vtt" as=track>
<link rel=preload href="resources/dummy.xml?foo=bar" as=foobarxmlthing>
<link rel=preload href="resources/dummy.xml">
<body>
<script>
    window.onload = t.step_func(function() {
        t.step_timeout(function() {
            verifyPreloadAndRTSupport();
            verifyNumberOfResourceTimingEntries("{{host}}:{{ports[http][1]}}/preload/resources/dummy.js", 0);
            verifyNumberOfResourceTimingEntries("resources/dummy.css", 0);
            verifyNumberOfResourceTimingEntries("resources/square.png", 0);
            verifyNumberOfResourceTimingEntries("/fonts/CanvasTest.ttf", 0);
            verifyNumberOfResourceTimingEntries("resources/white.mp4", 0);
            verifyNumberOfResourceTimingEntries("resources/sound_5.oga", 0);
            verifyNumberOfResourceTimingEntries("resources/foo.vtt", 0);
            verifyNumberOfResourceTimingEntries("resources/dummy.xml", 0);
            t.done();
        }, 5000);
    });
</script>

