| <!DOCTYPE html> |
| <script src="/js-test-resources/testharness.js"></script> |
| <script src="/js-test-resources/testharnessreport.js"></script> |
| <script> |
| var t = async_test('Makes sure that preloaded resources are not downloaded again when used'); |
| </script> |
| <link rel=preload href="http://127.0.0.1:8000/resources/dummy.js" as=script> |
| <link rel=preload href="http://127.0.0.1:8000/resources/dummy.css" as=style> |
| <link rel=preload href="http://127.0.0.1:8000/resources/square100.png" as=image> |
| <link rel=preload href="http://127.0.0.1:8000/resources/square100.png?background" as=image> |
| <link rel=preload href="http://127.0.0.1:8000/resources/Ahem.woff" as=font crossorigin> |
| <link rel=preload href="http://127.0.0.1:8000/resources/test.mp4" as=video> |
| <link rel=preload href="http://127.0.0.1:8000/resources/test.oga" as=audio> |
| <link rel=preload href="http://127.0.0.1:8000/security/resources/captions.vtt" as=track> |
| <link rel=preload href="http://127.0.0.1:8000/resources/dummy.xml?foobar" as=foobarxmlthing> |
| <link rel=preload href="http://127.0.0.1:8000/resources/dummy.xml" as=fetch crossorigin> |
| <script src="http://127.0.0.1:8000/resources/slow-script.pl?delay=200"></script> |
| <style> |
| #background { |
| width: 200px; |
| height: 200px; |
| background-image: url(http://127.0.0.1:8000/resources/square100.png?background); |
| } |
| @font-face { |
| font-family:ahem; |
| src: url(http://127.0.0.1:8000/resources/Ahem.woff); |
| } |
| span { font-family: ahem, Arial; } |
| </style> |
| <link rel="stylesheet" href="http://127.0.0.1:8000/resources/dummy.css"> |
| <script src="http://127.0.0.1:8000/resources/dummy.js"></script> |
| <div id="background"></div> |
| <img src="http://127.0.0.1:8000/resources/square100.png"> |
| <video src="http://127.0.0.1:8000/resources/test.mp4"> |
| <track kind=subtitles src="http://127.0.0.1:8000/security/resources/captions.vtt" srclang=en> |
| </video> |
| <audio src="http://127.0.0.1:8000/resources/test.oga"></audio> |
| <script> |
| var xhr = new XMLHttpRequest(); |
| xhr.open("GET", "http://127.0.0.1:8000/resources/dummy.xml"); |
| xhr.send(); |
| |
| window.addEventListener("load", t.step_func(function() { |
| function verifyDownloadNumber(url, number) { |
| assert_equals(performance.getEntriesByName(url).length, number, url); |
| } |
| setTimeout(t.step_func(function() { |
| verifyDownloadNumber("http://127.0.0.1:8000/resources/dummy.js", 1); |
| verifyDownloadNumber("http://127.0.0.1:8000/resources/dummy.css", 1); |
| verifyDownloadNumber("http://127.0.0.1:8000/resources/square100.png", 1); |
| verifyDownloadNumber("http://127.0.0.1:8000/resources/square100.png?background", 1); |
| verifyDownloadNumber("http://127.0.0.1:8000/resources/Ahem.woff", 1); |
| verifyDownloadNumber("http://127.0.0.1:8000/resources/dummy.xml?foobar", 0); |
| verifyDownloadNumber("http://127.0.0.1:8000/security/resources/captions.vtt", 1); |
| // FIXME: XHR should trigger a single download, but it downloads 2 resources instead. |
| verifyDownloadNumber("http://127.0.0.1:8000/resources/dummy.xml", 2); |
| // FIXME: We should verify for video and audio as well, but they seem to (flakily?) trigger multiple partial requests. |
| var xhr = new XMLHttpRequest(); |
| xhr.open("GET", "../resources/dummy.xml"); |
| xhr.send(); |
| var xhr2 = new XMLHttpRequest(); |
| xhr2.open("GET", "../resources/dummy.xml?badvalue"); |
| xhr2.send(); |
| t.done(); |
| }), 100); |
| })); |
| </script> |