summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/preload/dynamic-adding-preload-nonce.html
blob: 2a5bc1ae857adb9575b0be7351db7029ea564384 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!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>