| <!DOCTYPE html> | |
| <html> | |
| <title>Makes sure that preloaded resources reduce connection time to zero</title> | |
| <meta name="timeout" content="long"> | |
| <meta name="pac" content="/common/proxy-all.sub.pac"> | |
| <script src="/common/utils.js"></script> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <body> | |
| <script> | |
| const FAKE_PORT = 30303; | |
| promise_test(async t => { | |
| const fake_remote_origin = `http://${token()}.wpt:${FAKE_PORT}`; | |
| const link = document.createElement('link'); | |
| link.rel = "preconnect"; | |
| link.href = fake_remote_origin; | |
| document.head.appendChild(link); | |
| await new Promise(r => t.step_timeout(r, 1000)); | |
| const url = `${fake_remote_origin}/images/smiley.png`; | |
| const entryPromise = new Promise(resolve => { | |
| new PerformanceObserver(list => { | |
| const entries = list.getEntriesByName(url); | |
| if (entries.length) | |
| resolve(entries[0]); | |
| }).observe({type: "resource"}); | |
| }); | |
| const img = document.createElement('img'); | |
| img.src = url; | |
| document.body.appendChild(img); | |
| const entry = await entryPromise; | |
| assert_equals(entry.domainLookupStart, entry.domainLookupEnd); | |
| assert_equals(entry.domainLookupStart, entry.connectStart); | |
| assert_equals(entry.domainLookupStart, entry.connectEnd); | |
| }, "Test that preconnect reduces connection time to zero"); | |
| </script> | |
| </body> | |
| </html> |