| <!DOCTYPE html> | |
| <script nonce="abc" src="/resources/testharness.js"></script> | |
| <script nonce="abc" src="/resources/testharnessreport.js"></script> | |
| <script nonce="abc" src="/common/utils.js"></script> | |
| <script nonce="abc" src="/preload/resources/preload_helper.js"></script> | |
| <body> | |
| <script nonce="abc"> | |
| promise_test(async (t) => { | |
| verifyPreloadAndRTSupport(); | |
| const id = token(); | |
| const link = document.createElement("link"); | |
| link.as = "script"; | |
| link.rel = "preload"; | |
| link.href = stashPutUrl(id); | |
| link.nonce = "abc"; | |
| const load = new Promise((resolve) => { | |
| link.onload = resolve; | |
| }); | |
| link.onerror = t.unreached_func("link.onerror"); | |
| document.body.appendChild(link); | |
| await load; | |
| const arrived = await hasArrivedAtServer(id); | |
| assert_true(arrived, "The preload should've arrived at the server."); | |
| }, "link preload with nonce attribute"); | |
| promise_test(async (t) => { | |
| verifyPreloadAndRTSupport(); | |
| const id = token(); | |
| const link = document.createElement("link"); | |
| link.as = "script"; | |
| link.rel = "preload"; | |
| link.href = stashPutUrl(id); | |
| const error = new Promise((resolve) => { | |
| link.onerror = resolve; | |
| }); | |
| link.onload = t.unreached_func("link.onload"); | |
| document.body.appendChild(link); | |
| await error; | |
| const arrived = await hasArrivedAtServer(id); | |
| assert_false(arrived, "The preload should've arrived at the server."); | |
| }, "link preload without nonce attribute"); | |
| </script> | |
| </body> |