summaryrefslogtreecommitdiffstats
path: root/netwerk/cookie/test/mochitest/test_sharedWorker.html
blob: c29bf86a88c45c5acc3a103979493dc55b21d43b (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
<!DOCTYPE HTML>
<html>
<head>
  <title>Test for cookies + SharedWorker loading when the policy changes</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <script type="application/javascript" src="cookiesHelper.js"></script>
</head>
<body>
<script type="application/javascript">

runTests(async (w, state) => {
  w.document.cookie = "name=value";

  if (state == BLOCKED) {
    try {
      new w.SharedWorker("cookie.sjs?sharedworker&" + Math.random());
      ok(false, "SharedWorker should not be allowed!");
    } catch (ex) {
      ok(true, "SharedWorker should not be allowed!");
    }
    return;
  }

  let p = new w.SharedWorker("cookie.sjs?sharedworker&" + Math.random());
  await new w.Promise(resolve => { p.port.onmessage = resolve; });
  await checkLastRequest("sharedworker", state);

  await new w.Promise(resolve => {
    p.port.postMessage("subworker");
    p.port.onmessage = resolve;
  });
  await checkLastRequest("subworker", state);

  await new w.Promise(resolve => {
    p.port.postMessage("fetch");
    p.port.onmessage = resolve;
  });
  await checkLastRequest("fetch", state);

  await new w.Promise(resolve => {
    p.port.postMessage("xhr");
    p.port.onmessage = resolve;
  });
  await checkLastRequest("xhr", state);
});

</script>
</body>
</html>